browser.wait忽略我的参数等待20秒量角器

时间:2018-04-30 15:37:53

标签: javascript protractor automated-tests

我已经编写了这个测试,但浏览器在查找元素之前不会等待20秒。它会忽略该部分,只等待默认的11秒。我的代码有问题吗?

it('should navigate to Home tab', function() {
    element(by.css('[ui-sref="main.home"]')).click();

    var telematicsSection = element(by.id('teleMap'));

    var EC = protractor.ExpectedConditions;
    browser.wait(EC.presenceOf(telematicsSection), 20000);
});

这是我遇到的错误

  

失败:等待异步Angular任务在11秒后完成超时。这可能是因为当前页面不是Angular应用程序。有关详细信息,请参阅常见问题解答:https://github.com/angular/protractor/blob/master/docs/timeouts.md#waiting-for-angular   在等待带定位符的元素时 - Locator:By(css selector,* [id =" teleMap"])。

@edit

我设法解决了这个问题。 Yash Jagdale的代码和

  

allScriptsTimeout:20000

在conf.js中的

使它成功。

2 个答案:

答案 0 :(得分:0)

您可以使用以下方式正确处理异步循环

    it('should navigate to Home tab', function(callback) {
        element(by.css('[ui-sref="main.home"]')).click().then(function() {

        var telematicsSection = element(by.id('teleMap'));

        var EC = protractor.ExpectedConditions;
        browser.wait(EC.presenceOf(telematicsSection), 20000).then(function() {
           callback();
         });
      });
    }, 40000);

答案 1 :(得分:0)

在量角器conf.js的browser.ignoreSynchronization = true;中添加onPrepare

onPrepare: function() {

  browser.ignoreSynchronization = true;