场景:
问题: 有时候元素需要一次点击并且测试通过,但是如果我再次运行它,则同一元素需要双击
这导致我的测试失败
我通过更改命令以在量角器中双击并验证它来验证这一点。
这导致不一致,因为我不知道该元素何时需要单击或双击。
任何建议都表示赞赏?
答案 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())