我正在测试AngularJS应用程序,并且对量角器非常陌生。每次我打开浏览器时,它都会打开,然后等待超时,然后在cmd上抛出以下错误。
Timed out waiting for Protractor to synchronize with the page after 50001ms
我尝试增加超时限制,但总是收到此错误。我也尝试使用所有这些:
browser.ignoreSynchronization = true;
browser.driver.sleep(5000);
browser.debugger();
browser.waitForAngular();
页面加载正常,如果我使用 Eclipse 和 Selenium 与按钮对象交互,它就可以正常工作。
只有量角器有同步问题。请帮忙。
角器超时的可能原因:
- 您的网页没有以预期的方式实现 Angular(即在
body
标签上带有ng-app
)。更常见的是,在这种情况下你会得到的错误是Angular not found on page,
但超时并非不可能。如果这是问题所在,使用ignoreSynchronization
可以解决此问题,所以这个不是你。 - HTTP 请求挂起或失败。打开开发控制台并在使用量角器加载页面时检查"网络"选项卡(它可能发生在量角器中,而不是在手动测试中)。如果发现某些内容失败,请确保正确发出请求。例如,如果您尝试通过 HTTPS 访问 HTTP 端点,则请求肯定会失败并且量角器会超时。
- 您的网页正在反复轮询
$timeout
或$http
。量角器不会做任何事情,直到 Angular 达到"静止"状态(加载所有元素和数据绑定并且所有请求都已返回)。
超时原因的官方列表在这里:https://github.com/angular/protractor/blob/master/docs/timeouts.md。
但是,如果您在页面加载时检查 Javascript 控制台和网络请求,您应该能够找出问题所在。祝你好运!