量angular器:使用浏览器或browser.driver方法?
当使用protractor
,全局variablesbrowser
似乎具有browser.driver
所有function。
我具体问这是因为我不确定是否使用browser.wait
或browser.driver.wait
因为它们看起来都是相同的方法,而且我也看到browser.driver
中有很多browser.driver
方法可用如果不是全部)。
那么推荐使用这些方法的方法是browser.method
还是browser.driver.method
?
从理论上讲,区别很简单: 如果这是一个testing的Angular应用程序 – 使用浏览器,否则 – browser.driver。
更多的故事:
量angular器环绕WebDriverJS
– JavaScript Selenium绑定 – 作为它包装selenium驱动程序对象本身的一部分,让您通过browser.driver
访问纯WebDriverJS驱动程序。
还有其他的一些要求,请看看这个相关的线程:
- 量angular器browser.driver.getCurrentUrl vs browser.getCurrentUrl
- browser.driver与浏览器。 哪一个使用?
一些浏览器方法是相同的…
浏览器对象由WebDriver方法和Protractor特定方法组成。 所以像sleep
, wait
和getCurrentUrl
wait
方法从WebDriver被复制(请参阅browser.ts )。 那么你应该使用browser
还是browser.driver
? 那么,如果它在上面的链接中列出,他们是完全一样的东西。
一些浏览器方法不是…
但是,并不是每个方法都被复制过来。 对于像get
这样的方法,浏览器在Protractor和Selenium-webdriver中的实现是不同的。 对于Angular页面,你应该使用browser.get
。 在移动到其他命令之前,这将等待Angular稳定下来,然后继续执行其他命令。
如有疑问,请查看文档
所以当你浏览到protractortest.org/#/api时 ,你会看到一个browser
方法的列表,这些browser
方法是特定于量angular器的 ,并且是“从webdriver.WebDriverinheritance的”。 如果您决定使用browser
或browser.driver
,“inheritance自webdriver.WebDriver”的方法是相同的方法。