量角器click() - 获取元素不可点击

时间:2018-02-06 10:58:14

标签: angular protractor wait clickable

element.all(By.id(psearchResult.ptpID, psearchResult.mueResCardHeader))
  .filter((mueElementColClick, index) => {
    return mueElementColClick.getText().then((mueElementColClickText) => {
      mueElementColClickText = stestDataResultsets.expectedPTPHeader[index];
      console.log('mueElementColClickText '+mueElementColClickText);
      browser.waitForAngular();
      return mueElementColClickText;
    });
  }).click();

页面上有3行文字,每个链接都可以点击以展开下面的文字。上面的代码将单击前两行文本并将它们展开 - 但是当涉及第三行时,当它尝试单击它时,它表示它不可单击。

3 个答案:

答案 0 :(得分:0)

该行应该做什么:

mueElementColClickText = stestDataResultsets.expectedPTPHeader[index];

mueElementColClickText是已定义的变量。你正试图为它设定新的价值,不是吗?

也许您希望将mueElementColClickTextstestDataResultsets.expectedPTPHeader[index];进行比较?

另一件事:filter会返回ElementArrayFinder [请参阅文档:http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.filter]

在最后一行,您应该将.click();更改为.first().click();

答案 1 :(得分:0)

mueElementColClickText未定义 - 但用于从promise中获取值。

我没有看到比较中的值,因为我为它赋值,所以它们应该相等。

。首先()点击(); - 正如我所说,页面上有3个链接 - 如果我这样做.first()。click(); - 始终点击第一个链接。

感谢您的回复 - 我可以在点击之前检查它是否可点击?

答案 2 :(得分:0)

我认为可能会发生什么:

我将3个链接点击进入element.all数组。

然后,我只需点击一下即可花费所有3个链接。

因此,单击第一个链接,在其下面打开20行表格。此时浏览器正试图找到第二个链接点击但不能 - 其他人有这个问题或如何解决? THKS