角度量角器如何使用findElements(by.tagName)获取tr中的所有td



我是 Angular + 量角器自动化测试的新手。我正在尝试遍历 html 表的行,并希望获取该行的每一列值。使用以下代码但不起作用。

$$('#mat-tab-content-0-2 > div > app-pick-loss-method > div.data-table-container.table > table > tbody').$$('tr').each(function (el, index) {
if (index > 0) {
el.findElements(by.tagName('td')).then(function (cols) {
console.log('Subline: ', cols[0].getText());
console.log('Cat Indicator: ', cols[1].getText());
console.log('Method: ', cols[2].getText());
console.log('ELC: ', cols[3].getText());
console.log('Selected CV: ', cols[4].getText());
console.log('Weight: ', cols[5].getText());
});
}
})

任何人都可以帮助什么正确的方法可以做到这一点而没有错误?

谢谢

如果你想找到所有的HTML标签,我认为你不能通过tagName((找到它。尝试这样的事情:

el = element.all(by.css('#mat-tab-content-0-2 td'));
el.getText().then((text) => {
for (let i=0; i < text.lenght; i++){
console.log(text[i]);
}
})
您将从所有内容中获取文本(如果 css 选择器正常(

如果您包含代码中遇到的错误,将会很有帮助,但无论如何,请尝试更改以下行:

.findElements>.all


el.findElements(by.tagName('td')).then(function (cols) {应该是:
el.all(by.tagName('td')).then(function (cols) {

只要停止使用.then()语法,使用async/await,一切都会变得简单明了。像这样的东西

let tableRows = $$('#mat-tab-content-0-2 > div > app-pick-loss-method > div.data-table-container.table > table > tbody tr');
let rowCount = await tableRows.count();
for (let i = 0; i < rowCount; i++) {
let cells = tableRows.get(i).all(by.css("td"));
let cellCount = await cells.count();
for (let j = 0; j < cellCount; j++) {
console.log('Cell ' + j + " " + await cells.get(j).getText())
}
}

最新更新