Protractor中的SELENIUM_PROMISE_MANAGER,browser.ignoreSynchronization和browser.waitForAngularEnabled()有什么区别?

时间:2018-07-31 17:30:29

标签: automation protractor

有人能告诉我量角器中SELENIUM_PROMISE_MANAGERbrowser.ignoreSynchronizationbrowser.waitForAngularEnabled()有什么区别吗?

谢谢

1 个答案:

答案 0 :(得分:2)

1)SELENIUM_PROMISE_MANAGER

SELENIUM_PROMISE_MANAGER是用于启用/禁用量角器自身的控制流(承诺)实现的开关。在ES6之前,javascript不提供本机的Promise API,并且量角器自己实现Promise和Promise管理(称为控制流)。

现在,ES6支持本地承诺API和通过await/async进行承诺管理,并且量角器打算更改其代码以使用本地承诺。这样SELENIUM_PROMISE_MANAGER就出来了。

更多详细信息,请参见herehere

2)browser.ignoreSynchronizationbrowser.waitForAngularEnabled()

两者都切换以告诉量角器browser.get()是否检测到打开的页面是否为角形页面。 browser.ignoreSynchronization在早期版本中进行了介绍,它也可以在高版本量角器上使用。

browser.waitForAngularEnabled()是在较高版本中引入的,不能在较低版本的量角器上使用。

今后将使用browser.waitForAngularEnabled()这个想法。 &browser.ignoreSynchronization`已弃用。

文档:http://www.protractortest.org/#/api?view=ProtractorBrowser.prototype.waitForAngularEnabled