- 为什么我们需要使用
element(...).getWebElement()
而不是element(...)
,尽管两者的功能完全相同 - 为什么会有两个API提供相同的功能
element(...).getWebElement()
而不是element(...)
,尽管两者的功能完全相同Protractor
是围绕WebDriverJS
的JavaScript Selenium绑定的方便包装。
element(...)
将导致在Protractor中引入的 ElementFinder
实例element(...).getWebElement()
将导致从WebDriverJS
中获得一个 WebElement
实例。这基本上让你访问纯粹的 "裸金属" WebElement
。使用getWebElement()
最常见的用例是当你需要将 ElementFinder
作为 脚本参数 传递的时候 - 目前必须调用getWebElement()
才能让它起作用:
var elm = element(by.id("myid"));
browser.executeScript("arguments[0].click()", elm.getWebElement());
有一个开放的功能请求,可以直接传递 ElementFinder
:
browser.executeScript("arguments[0].click()", elm); // not gonna work as of now