我在Protractor黄瓜框架中工作。如果在页面中找不到元素,我不会得到“未找到元素”或“找不到这样的元素”或“元素不可点击”等原生硒错误clickable.Instead我得到“TimeoutError:10002ms后等待超时”
只有当我得到这些错误时,我才会知道我在我的元素xpath中犯了一些错误,或者我试图点击一个禁用的按钮等。
超时等常规错误无法帮助我轻松修复失败的测试用例。
下面是我的code.contactPage.js是implementation.util.js是我框架中的一些帮助方法
文件contactPage.js
var contact = element(by.xpath("//p[contains(text(),'Contact Me')]"));
function clickUserGuide() {
return util.isDisplayed(contact, 10000).then(() => {
return util.clickElement(contact, 10000);
});
File util.js
function isDisplayed(element, milliseconds) {
return browser.wait(EC.visibilityOf(element), milliseconds).then(() => {
return element.isDisplayed();
});
};
function clickElement(element, milliseconds) {
return browser.wait(EC.visibilityOf(element), milliseconds).then(() => {
element.click();
return true;
});
};
}
答案 0 :(得分:0)
您获得TimeoutError: Wait timed out after 10002ms
的原因是您使用的方法browser.wait(EC.visibilityOf(element), milliseconds)
。
该方法没有No Such Element Found
之类的“硬”失败,只是等待元素与预期条件匹配,在您等待的情况下:
如果在给定的秒数内没有发生这种情况,则条件失败,并显示元素在给定时间内与条件不匹配的消息。
您使用browser.wait(EC.presenceOf(element), milliseconds)
会发生什么,是DOM中真正存在的元素吗?