首页 > 解决方案 > 量角器:如何在运行时动态地将元素分配给变量

问题描述

我有桌子。我必须单击与特定文本匹配的 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;
            }

         })
     }

   });

标签: javascriptprotractor

解决方案


推荐阅读