gpt4 book ai didi

javascript - Protractor - 如何跳转到网格中的下一行并返回找到的值

转载 作者:行者123 更新时间:2023-12-03 01:27:55 25 4
gpt4 key购买 nike

需要有关 Protractor 的快速帮助。

我需要获取第一个不为 0 的单元格文本,然后从该行的第 0 列和第 4 列获取数据

在这里我能够正确地从第 4 列获取第一个值

var resultsTableSummary = element(by.id('lvTable')); //Results table
var rows = resultsTableSummary.all(by.tagName("tr")); // get rows
var cells = rows.all(by.tagName("td")); // get cell values

cells.get(4).getText().then(function(result)
{
if (result > 0)
{
console.log('for Result value '+ result);
}
})

但我想知道两件事:

1 - 如果第一行没有值,如何移动到下一个 tr(行)?我尝试用元素创建一个数组,但不太成功,请问有什么想法吗?

2 - 我如何从这个 promise 中返回值?该函数正在从第 4 列获取值并显示在屏幕上,但我想在代码的后续步骤中使用它

谢谢!!

最佳答案

我建议只保留行元素并根据您的需要过滤它们。然后您将始终可以访问每一行,因为您总是逐行处理。如下:

getFirstValidRowData(rows: ElementArrayFinder): promise.Promise<string[]> {
return rows.filter(function (row) {
// filter rows by its values. IF one value is greater than 0 row is valid
return row.all(by.tagName('td')).filter(function (cell) {
// filter a row by valid cells
return cell.getText().then(function (text) {
return parseInt(text) > 0;
});
// if there are cells found row is valid
}).then(function (cells) {
return cells.length > 0;
});
// take valid row and get cells 1 and 4
}).first().all(by.css('td')).filter(function (cell, index) {
return index === 0 || index === 3;
// return values of these cells
}).map(function (cell) {
return cell.getText();
});
}

在测试中,您可以执行以下操作:

it('should have one valid row', async function() {
var resultsTableSummary = element(by.id('lvTable')); //Results table
var rows = resultsTableSummary.all(by.tagName("tr"));
var validRowsData = await getFirstValidRowData(rows);
// do whatever you want with your data from cell 1-4
});

我没有测试这个,但从语法上来说它是正确的。这应该符合您的需求。

关于javascript - Protractor - 如何跳转到网格中的下一行并返回找到的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51436701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com