javascript - 量角器:如何在运行时动态地将元素分配给变量
问题描述
我有桌子。我必须单击与特定文本匹配的 td 的“编辑”按钮。
我正在做的是获取所有 td 并迭代它们中的每一个以匹配文本。找到文本后,我会找到它 tr 然后单击其编辑按钮。
var tdModule = element.all(by.cssContainingText('td', strnewUserName));
var elem;
tdModule.each((value) => {
value.getText().then((text) => {
console.log(text);
if (text == strnewUserName) {
var tr = value.element(by.xpath('ancestor::tr'));
elem= tr.element(by.css('[ng-click="vm.edit(row)"]'));
}
});
});
elem.click();
现在这里的问题是代码抛出错误:“无法读取未定义的属性'click'”。我认为这是因为未分配变量 elem 。我是JS的初学者。
我还有另一个选择,那就是打破循环。但是 .each 循环不能被打破。我也试过'for'循环。但它也给出了错误。
这是带有 for 循环的代码。
tdModule.count().then((count)=>{
console.log("c = "+ count)
for(let i = 0 ; i< count ; i++)
{
tdModule.get(i).getText().then((text)=>{
if(text == strnewUserName){
var tr = value.element(by.xpath('ancestor::tr'));
tr.element(by.css('[ng-click="vm.edit(row)"]')).click();
break;
}
})
}
});