Jor*_*cat 2 javascript angularjs protractor angular
[测试angular 2 web应用程序]
browser.ignoreSynchronization = false当设置为true时会发生此错误,不会发生此错误,为什么会这样?
我也useAllAngular2AppRoots: true设置了我的量角器配置.
量角器在WebDriverJS之上运行.WebDriverJS是一个Javascript接口,相当于Java的Webdriver,让你以编程方式控制浏览器,从而有助于编写自动化测试用例
使用WebDriverJS测试Angular应用程序的问题是Angular有自己的事件循环与浏览器分开.这意味着当您执行WebDriverJS命令时,Angular可能仍在执行其操作.
解决这个问题的方法是告诉WebDriverJS等待任意数量的时间(即3000ms),以便Angular完成其渲染工作,但这不是正确的做事方式.因此创建了Protractor以使您的测试与Angular同步事件循环,通过延迟运行您的下一个命令,直到Angular完成处理前一个命令之后.
但是这里有一个问题,当你测试非角度应用程序时,这会成为问题,即使没有Angular来完成它的循环,Protractor也会一直等待角度同步,并且会抛出你正在观察的错误!
因此,对于非Angular页面,您可以告诉Protractor不要通过设置来查找Angular browser.ignoreSynchronization = true- 实际上这意味着您只是使用WebDriverJS.
因此,当Protractor在您的页面上找不到Angular时,通过将其添加到您的配置中,您将放弃所有使得测试Angular应用程序比使用简单的WebDriverJS更容易的方法.是的,在所有命令可能正常工作之后添加browser.sleep,但是它很麻烦,只要Angular占用的时间超过你设置的暂停,就会中断,并使你的测试花费的时间过长.
结论:仅browser.ignoreSynchronization = true在测试不使用Angular的页面时使用.
参考: https ://vincenttunru.com/Error-Error-while-waiting-for-Protractor-to-sync-with-the-page/
| 归档时间: |
|
| 查看次数: |
2921 次 |
| 最近记录: |