browser.driver.wait与browser.wait

时间:2019-06-21 10:17:18

标签: angular protractor

我已经开始为量角器编写测试用例,并且发现了browser.wait方法,该方法可以等待直到满足某些条件。有时我可以在代码段中看到browser.driver.wait而不是browser.wait

有什么区别?

我一直在寻找答案,但我只发现量角器中sleepwait之间的区别。

这里是我的配置(我使用黄瓜框架):

        "protractor": "5.4.1",
        "protractor-cucumber-framework": "6.1.1",
        "cucumber":"5.0.2"

1 个答案:

答案 0 :(得分:1)

答案将取决于您的量角器版本。

当我编写测试用例时,量角器固有地实现了一个队列来保存异步任务。但是此队列仅容纳来自量角器的异步任务(例如:element(by.partialLinkText('Doge')).click(), etc),并且每个任务都一个接一个地运行。当您编写browser.wait()时,您可能正在将等待添加到量角器队列中,但是通过browser.driver.wait()您将直接访问selenium驱动程序,并且该任务不会进入队列。这意味着driver.wait()在执行自身之前不会等待队列中的先前任务执行。

我不认为当前版本的量角器仍然存在队列,它会促进async/await的使用,如果没有队列,那么当我们使用时,一个人比另一个人有什么好处?与driver相关的任何事物都意味着我们正在直接访问Selenium驱动程序API。