angularjs - Protractor :WAITING规范完成 10000 毫秒后超时

标签 angularjs selenium protractor saucelabs browserstack

我有几个 Protractor 测试,有时我会收到一条错误消息:

Message:
     timeout: timed out after 10000 msec waiting for spec to complete
   Stacktrace:
     undefined

它可以在某些测试中随机发生。
我通常在 BrowserStack 上进行测试,它会在 3-5 次构建中显示一次错误。但是最近我尝试了 SauceLabs 并且几乎所有(每个!)但并非所有测试都因该错误而失败。可能,SauceLabs 的速度要慢得多,所以我更频繁地收到错误...

所以这里是问题:
  • Protractor/ Selenium 中有没有办法改变测试运行超时?它也需要在 BrowserStack/Saucelabs 上进行更改。
  • 为什么我经常收到错误消息?我的测试有什么问题吗?大多数看起来并不复杂或运行时间长。同样,在本地机器上它几乎总是很好。

  • 这是示例:
       it('should check that login gives error on empty or incorrect email', function () {
          p.get('/#/login');
          p.findElement(protractor.By.css('button[type="submit"]')).click();
          expect(p.findElement(protractor.By.css('.alert-danger')).getText()).toEqual('E-mailadres is niet geldig');
          p.findElement(protractor.By.model('user.email')).sendKeys('test-1xtc.vc');
          p.findElement(protractor.By.css('button[type="submit"]')).click();
          expect(p.findElement(protractor.By.css('.alert-danger')).getText()).toEqual('E-mailadres is niet geldig');
          p.findElement(protractor.By.model('user.email')).clear();
        });
    

    该应用程序正在使用
    AngularJS, Selenium 2.20, Protractor 0.20.1

    最佳答案

    Is there a way in Protractor/Selenium to change test running timeout?



    是的 :) 您可以通过 allScriptsTimeout 来完成。在您的 Protractor 配置中(来自 Protractor FAQ)

    您也可以设置 defaultTimeoutIntervaljasmineNodeOpts选项(来自 Protractor referenceConf.js)

    Why am I getting the error so often? Is there anything wrong with my tests? Most of the doesn't seem complicated or long running. Again, on local machine it's almost always fine.



    没有看到你的测试很难说。你提供的例子对我来说看起来不错。

    关于angularjs - Protractor :WAITING规范完成 10000 毫秒后超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22760848/

    相关文章:

    javascript - 有多少项目就重复 .then()

    python - 通过反斜杠分割在 selenium python 中获得的文本时出错

    python - WebDriver异常: Message: The command 'GET/session/7.../displayed' was not found while Explicit Wait with safaridriver and Selenium 3. 13.0

    javascript - 如何提供通过 POST 调用获取的 json?

    javascript - 复选框未显示在 md-select multiple 中

    javascript - 自定义 Jasmine Matcher 中已解决和已拒绝的 promise

    protractor - 正确使用带有 $httpBackend 的 Protractor

    angularjs - 通过 gulp 启动 Protractor

    javascript - 从 X-editable 中删除行并确认(AngularJS)

    java - Selenium 连接被拒绝错误