One Click vs Two Clicks

时间:2016-07-07 14:48:25

标签: protractor

场景:

  • 使用Protractor测试Web应用程序
  • 需要点击元素才能打开另一页
  • 设计测试以点击元素

问题: 有时候元素需要一次点击并且测试通过,但是如果我再次运行它,则同一元素需要双击

这导致我的测试失败

我通过更改命令以在量角器中双击并验证它来验证这一点。

这导致不一致,因为我不知道该元素何时需要单击或双击。

任何建议都表示赞赏?

3 个答案:

答案 0 :(得分:0)

您可能只需要通过mouseMove()明确地将元素置于焦点,然后发出click()动作:

browser.actions().mouseMove(elm).click().perform();

答案 1 :(得分:0)

不一致可能是因为元素尚未准备好点击。因此,您需要等到元素变为可点击并单击它。下面的代码将帮助您实现一致性。

 Code Snippet:

  var EC = protractor.ExpectedConditions;
  var elementToBeClick=element(locator);
  var timeOut=10000;

  browser.wait(EC.elementToBeClickable(elementToBeClick), timeOut).
      thenCatch(function () {
                assert.fail(' target element is not clickable');
             });
  elementToBeClick.click();

答案 2 :(得分:0)

您可以使用browser.executeScripts将原生javascript代码注入浏览器并单击所需按钮。这将在您传递给函数

的必需元素上执行click事件

尝试以下代码,

var elementToBeClick=element(locator);
browser.executeScript("arguments[0].click()",elementToBeClick.getWebElement())