我没有得到原生硒错误,如'未找到元素'或'元素不可点击'。相反,我在量角器中得到超时错误

时间:2017-06-07 20:54:28

标签: javascript selenium protractor

我在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;
 });
}; 
}

1 个答案:

答案 0 :(得分:0)

您获得TimeoutError: Wait timed out after 10002ms的原因是您使用的方法browser.wait(EC.visibilityOf(element), milliseconds)

该方法没有No Such Element Found之类的“硬”失败,只是等待元素与预期条件匹配,在您等待的情况下:

  1. 显示元素
  2. 并且高度和宽度大于0
  3. 如果在给定的秒数内没有发生这种情况,则条件失败,并显示元素在给定时间内与条件不匹配的消息。

    您使用browser.wait(EC.presenceOf(element), milliseconds)会发生什么,是DOM中真正存在的元素吗?