isElementPresent和elementFinders

时间:2016-06-27 15:12:48

标签: javascript protractor

如果我定义页面对象myPage

return { 
  myButton: element(by.css('#my-button'))
};

然后在其他地方执行isElementPresent检查:

return browser.driver
        .isElementPresent(myPage.myButton);

我收到了以下错误:

Error: Failed: Invalid locator

为什么?

我怀疑如果删除element调用,这会有效。 element返回elementFinder IIUC。但isElementPresent显然不适用于elementFinder。为什么呢?

1 个答案:

答案 0 :(得分:2)

.isElementPresent()仅支持定位器或网络元素,您可以调用.getWebElement()从元素查找器对象获取Web元素:

return browser.isElementPresent(myPage.myButton.getWebElement());

您还可以get the locator back from an element finder

return browser.isElementPresent(myPage.myButton.locator());

或者,您可以改为使用isPresent()方法:

return myPage.myButton.isPresent();

另见: