使用protractor
时,全局变量browser
似乎具有browser.driver
的所有功能。
我特别提出这个问题,因为我不确定是使用browser.wait
还是browser.driver.wait
,因为它们看起来都是相同的方法,而且我也看到了很多{{1} browser.driver
(如果不是全部)中提供了方法。
那么调用这些方法的推荐方法是什么browser
或browser.method
?
答案 0 :(得分:6)
理论上区别很简单:如果这是一个正在测试的Angular应用程序 - 使用浏览器,否则 - browser.driver。
更多关于这个故事:
量角器包裹WebDriverJS
- javascript selenium绑定 - 作为其中包含selenium驱动程序对象本身的一部分,让您通过browser.driver
访问纯WebDriverJS驱动程序。
除了其他内容之外,请看一下这个相关主题:
答案 1 :(得分:4)
有些浏览器方法是相同的......
浏览器对象由WebDriver方法和Protractor特定方法的组合构成。因此,sleep
,wait
和getCurrentUrl
等方法会从WebDriver中复制(请参阅browser.ts)。那么您应该使用browser
还是browser.driver
?好吧,如果它列在上面的链接中,它们就完全相同了。
某些浏览器方法不是......
然而,并非每个方法都被复制过来。对于get
等方法,浏览器在Protractor vs selenium-webdriver中的实现方式不同。对于Angular页面,您应该使用browser.get
。在转移到其他命令之前,这将等待Angular保持稳定。
如有疑问,请查看文档
因此,当您导航到protractortest.org/#/api时,您将看到一个browser
方法列表,这些方法是特定于Protractor的并且是“从webdriver.WebDriver继承的”。如果您决定使用browser
或browser.driver
,则“继承自webdriver.WebDriver”后面的方法是相同的方法。