问题
- Why we need
element(...).getWebElement()overelement(...)when both works exactly the same - Why two APIs for the same functionality
回答1:
Protractor is a convenient wrapper around WebDriverJS - javascript selenium bindings.
element(...)would result into an ElementFinder instance introduced in Protractor- element(...).getWebElement() would result into a
WebElementinstance fromWebDriverJS. Basically, this gives you access to the pure "bare-metal"WebElement.
The most common use-case for using getWebElement() is when you need to pass an ElementFinder as a script argument - currently you have to call getWebElement() for this to work:
var elm = element(by.id("myid"));
browser.executeScript("arguments[0].click()", elm.getWebElement());
There is an open feature-request to be able to pass ElementFinder directly:
browser.executeScript("arguments[0].click()", elm); // not gonna work as of now
来源:https://stackoverflow.com/questions/39026997/difference-between-element-and-element-getwebelement-in-protractor