我想在我的测试中注入(inject)一个 Protractor 实例,然后用它来执行导航和元素选择,但似乎卡在 Protractor
对象上的功能都是异步的,并且browser
和 element
上的功能是同步的。
有没有办法通过 Protractor
对象访问同步行为?
此外:我已经看到在开始时调用以下内容的测试:
protractor.getInstance()
...而且我已经看到直接使用全局可用的 browser
和 element
对象的测试。
这两种方法之间的重要区别是什么?
最佳答案
Protractor 中没有任何东西是同步的。在 jasmine 被修补(由 jasminewd)以等待异步代码之前,它看起来就是这样,这样它更容易使用。
请阅读https://code.google.com/p/selenium/wiki/WebDriverJs查看控制流如何使 webdriver 中的所有内容看起来同步。然后阅读 https://github.com/angular/protractor/blob/master/docs/control-flow.md看看 Protractor 是如何用 jasminewd 做的。
@glepretre (stackoverflow.com/q/25496379/3049002) 共享的链接告诉您 ptor.get 和 browser.get 之间的区别。简而言之,使用 browser.get()
关于testing - 通过 Protractor 实例访问同步行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25511524/