在量角器中查找UI元素并不一致。使用localhost而不是服务器

时间:2018-01-05 13:14:42

标签: javascript protractor

以下是我使用的代码expect(element(by.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"])

并且令人惊讶的是,当我单独执行这些测试时,这些测试有时会在服务器上运行。

添加问题。我观察到量角器能够在测试中只找到一个元素,并且所有剩余的元素都被忽略,错误如上所述。

这可能是什么解决方案?

2 个答案:

答案 0 :(得分:0)

那可能是申请问题。有时会发生角度从未向量角器报告所有任务都已完成,因此您可能会遇到此超时错误。

http://www.protractortest.org/#/timeouts

  

AngularJS如果你的AngularJS应用程序不断轮询$ timeout或   $ http,量角器将无限期等待并超时。你应该用   任何持续民意调查的$ interval(介绍于   Angular 1.2rc3)。

     

Angular对于Angular应用程序,Protractor将等到Angular Zone   稳定。这意味着长时间运行的异步操作将阻止您的操作   继续测试。要解决此问题,请在以外的位置运行这些任务   角区。例如:

     

this.ngZone.runOutsideAngular(()=> {setTimeout(()=> {       //此处的更改不会传播到您的视图中。       this.ngZone.run(()=> {         //在ngZone内部运行以触发更改检测。       }); },REALLY_LONG_DELAY); });作为这两个选项之一的替代方法,您可以禁用等待Angular,请参阅下文。

答案 1 :(得分:-1)

如错误中所述,您的应用似乎不是有角度的。不是吗?

如果是这样,您需要使用它:

browser.waitForAngularEnabled(false);