量angular器:使用浏览器或browser.driver方法?

当使用protractor ,全局variablesbrowser似乎具有browser.driver所有function。

我具体问这是因为我不确定是否使用browser.waitbrowser.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特定方法组成。 所以像sleepwaitgetCurrentUrl wait方法从WebDriver被复制(请参阅browser.ts )。 那么你应该使用browser还是browser.driver ? 那么,如果它在上面的链接中列出,他们是完全一样的东西。

一些浏览器方法不是…

但是,并不是每个方法都被复制过来。 对于像get这样的方法,浏览器在Protractor和Selenium-webdriver中的实现是不同的。 对于Angular页面,你应该使用browser.get 。 在移动到其他命令之前,这将等待Angular稳定下来,然后继续执行其他命令。

如有疑问,请查看文档

所以当你浏览到protractortest.org/#/api时 ,你会看到一个browser方法的列表,这些browser方法是特定于量angular器的 ,并且是“从webdriver.WebDriverinheritance的”。 如果您决定使用browserbrowser.driver ,“inheritance自webdriver.WebDriver”的方法是相同的方法。