Javascript isElementPresent和elementFinders

Javascript isElementPresent和elementFinders,javascript,protractor,Javascript,Protractor,如果我定义页面对象myPage: return { myButton: element(by.css('#my-button')) }; 然后在别处执行isElementPresent检查: return browser.driver .isElementPresent(myPage.myButton); 我得到以下错误: Error: Failed: Invalid locator 为什么? 我怀疑如果我删除元素调用,这会起作用。元素返回一个elementFinde

如果我定义页面对象
myPage

return { 
  myButton: element(by.css('#my-button'))
};
然后在别处执行
isElementPresent
检查:

return browser.driver
        .isElementPresent(myPage.myButton);
我得到以下错误:

Error: Failed: Invalid locator
为什么?

我怀疑如果我删除
元素
调用,这会起作用。元素返回一个
elementFinder
IIUC。但是,
isElementPresent
显然不是为配合
elementFinder
s而设计的。为什么?

仅支持定位器或web元素,您可以调用从元素查找器对象获取web元素:

return browser.isElementPresent(myPage.myButton.getWebElement());
您还可以:

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

return myPage.myButton.isPresent();
另见:


好的,编辑完毕,很抱歉回答了多个版本。
return myPage.myButton.isPresent();