隐式等待在 webdriver javascript 中不起作用
implicitlyWait does not work in webdriver javascript
我想等待错误消息出现。但是,当我使用browser.driver.manage().timeouts().implicitlyWait()时,但我必须使用browser.driver.sleep()
this.getErrorMessage = function () {
var defer = protractor.promise.defer();
browser.driver.sleep(2000); //This works
browser.driver.manage().timeouts().implicitlyWait(2000); // This does not work
browser.driver.findElement(By.xpath(_error_msg_xpath)).getText().then(function (errorMsg) {
defer.fulfill(errorMsg);
});
return defer.promise;
};
据我了解,在这种情况下您需要一个browser.wait()
:
this.getErrorMessage = function () {
var EC = protractor.ExpectedConditions;
var elm = element(by.xpath(_error_msg_xpath));
browser.wait(EC.presenceOf(elm), 2000);
return elm.getText();
};
这将等待元素的存在长达 2 秒,返回带有元素文本的承诺,以防找到该元素,如果该元素在 2 秒内不存在,您将收到超时错误。
已更新
Xpath是一种较慢的位置策略。使用显式等待,可能会增加到 3 秒。
var aElement
try {
aElement = driver.wait(until.elementLocated(By.xpath(_error_msg_xpath)), 3000);
aElement.getText().then(function (errorMsg) {
defer.fulfill(errorMsg);
});
catch (err) {
message.innerHTML = "Error: " + err + ".";
}
或类似的东西。 将等待时间(上面的 AKA 3000)设置为要等待错误的时间。 如果首先找到该元素,则退出直到。
相关文章:
- 幻灯片滚动javascript不起作用
- 当我在浏览器中打开HTML文件时,javascript不起作用
- 来自MDN的循环示例的JavaScript不起作用
- 在IE中切换javascript不起作用的复选框
- 在SVG中创建带有外来对象的文本区域的Javascript不起作用
- 寻呼<李>javascript不起作用
- 想制作一个基于URL的音频播放器,但Javascript不起作用
- 从Android设备浏览时Javascript不起作用
- 在 Javascript 不起作用的情况下为数字添加逗号
- 获取PHP变量的JavaScript不起作用
- 有些JavaScript不起作用
- 保存HTML文件后,Javascript不起作用
- onClick javascript不起作用
- 在Wicket ModalWindow中使用Panel时,HTML中的Javascript不起作用
- Jquery顶部的两行Javascript不起作用
- 当我通过Node服务器提供HTML时,为什么我的页面Javascript不起作用
- Javascript不起作用,但当放置断点并从chrome调试器工具中单击文件时,它可以正常工作
- 为不同的屏幕分辨率加载css样式的Javascript不起作用
- 在IE9中javascript不起作用,但在打开控制台后它就起作用了
- 为什么Javascript不起作用