Protractor 一次点击vs两次点击
情景:Protractor 一次点击vs两次点击,protractor,Protractor,情景: 使用量角器测试web应用程序 需要单击元素以打开另一个页面 将测试设计为在元素上单击一次 问题: 有时元素需要单击一次,测试就通过了,但是如果我再次运行它,同样的元素需要双击 这导致我的测试随机失败 我通过将命令更改为在量角器中双击来验证这一点,并将其传递 这导致了不一致性,因为我不知道该元素何时需要单击一次或双击 有什么建议吗 您可能只需要通过mouseMove()显式地将元素置于焦点,然后发出click()操作: browser.actions().mouseMove(elm).
- 使用量角器测试web应用程序
- 需要单击元素以打开另一个页面
- 将测试设计为在元素上单击一次
有什么建议吗 您可能只需要通过
mouseMove()
显式地将元素置于焦点,然后发出click()
操作:
browser.actions().mouseMove(elm).click().perform();
您可能只需要通过
mouseMove()
显式地将元素置于焦点,然后发出click()
操作:
browser.actions().mouseMove(elm).click().perform();
不一致可能是因为元素尚未准备好单击。所以你们需要等到元素变成可点击的,然后点击它。下面的代码将帮助您实现一致性
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();
不一致可能是因为元素尚未准备好单击。所以你们需要等到元素变成可点击的,然后点击它。下面的代码将帮助您实现一致性
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();
您可以使用browser.executeScripts将本机javascript代码注入浏览器,然后单击所需按钮。这将对传递到函数中的所需元素执行click事件 试试下面的代码
var elementToBeClick=element(locator);
browser.executeScript("arguments[0].click()",elementToBeClick.getWebElement())
您可以使用browser.executeScripts将本机javascript代码注入浏览器,然后单击所需按钮。这将对传递到函数中的所需元素执行click事件 试试下面的代码
var elementToBeClick=element(locator);
browser.executeScript("arguments[0].click()",elementToBeClick.getWebElement())
@alecxe:我们一直都是这样做的,现在仍然是这样problem@Kevin好的,您可以引入一个并这样做:
browser.actions().mouseMove(elm).sleep(50).单击().perform()代码>。当然,这并不理想,但看看它是否真的有用。@alecxe:这就是我们一直在做的事情,现在仍然如此problem@Kevin好的,您可以引入一个并这样做:browser.actions().mouseMove(elm).sleep(50).单击().perform()代码>。当然,这并不理想,但看看它是否真的有用。请注意,它与常规单击不同:。我同意。但在某些情况下,用户可以单击按钮,但selenium不能。这些情况可以使用本机单击事件处理注意,它与常规单击不同:。我同意。但在某些情况下,用户可以单击按钮,但selenium不能。这些情况可以使用本机单击事件处理