Javascript 在量角器中查找UI元素不一致。使用本地主机而不是服务器

Javascript 在量角器中查找UI元素不一致。使用本地主机而不是服务器,javascript,protractor,Javascript,Protractor,下面是我正在使用的代码expectelementby.id'title'.getAttribute'value'.toMatch'Sample title' 在本地机器上,它工作得很好,而在服务器上,它并没有以下错误 Failed: Timed out waiting for asynchronous Angular tasks to finish after 11 seconds. This may be because the current page is not an Angular a

下面是我正在使用的代码expectelementby.id'title'.getAttribute'value'.toMatch'Sample title'

在本地机器上,它工作得很好,而在服务器上,它并没有以下错误

Failed: Timed out waiting for asynchronous Angular tasks to finish after 11 seconds. This may be because the current page is not an Angular application. Please see the FAQ for more details: https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular
While waiting for element with locator - Locator: By(css selector, *[id="title"])
令人惊讶的是,当我单独执行这些测试时,它们有时在服务器上工作

补充问题。我观察到量角器只能在测试中找到一个元素,其余的元素都被忽略,错误如上所述


解决这个问题的方法是什么?

这可能是应用程序问题。有时,angular从不向量角器报告所有任务都已完成,所以您可能会遇到此超时错误

AngularJS如果您的AngularJS应用程序连续轮询$timeout或 $http,量角器将无限期等待并超时。你应该使用 在中不断引入的任何轮询的$interval 角度1.2rc3

角度对于角度应用程序,量角器将等待到角度区域 稳定下来。这意味着长时间运行的异步操作将阻止 继续测试。要解决此问题,请在外部运行这些任务 角区。例如:

this.ngZone.runOutsideAngular=>{setTimeout=>{ //此处的更改不会传播到您的视图中。 this.ngZone.run=>{ //在ngZone内运行以触发更改检测。 }},真的长};作为上述任一选项的替代,您可以禁用“等待角度”,请参见下文


正如错误中所说,您的应用程序似乎不是一个有角度的应用程序。不是吗

如果是,您需要使用它:

browser.waitForAngularEnabled(false);

您应该在测试的这个特定点调试浏览器中发生的事情。可能只是你需要给它更多的时间和调整时间。我把时间增加到60秒,还是一样。由于上面提到的错误,它失败了。感谢您的输入。我尝试了所有可能的超时选项,但没有成功。谢谢你的输入。。。但我不能用那个。。如果我使用这个命令,量角器不会在实际需要时等待角度。。。