ScriptTimeoutError:超时-来自:任务:Protractor.waitForAngular()

use*_*301 2 protractor

我正在尝试使用量角器运行基本的端到端测试。我总是会收到此错误。

ScriptTimeoutError:超时

我检查了此链接https://github.com/angular/protractor/blob/master/docs/timeouts.md并增加了默认超时时间,但仍然收到相同的错误。我不知道从哪里弹出此错误。浏览器将加载基本网址,稍后它将不执行测试中提到的任何操作。测试非常简单,打开浏览器并单击菜单,然后验证URL是否匹配。

  • 节点版本:v7.5.0
  • 量角器版本:5.1.2
  • 角版本:2.4.10
  • 浏览器:firefox
  • 操作系统和版本ubuntu
  • 打字稿:2.2.2

在此处输入图片说明 配置文件

 exports.config = {
      framework: 'jasmine2',    
      seleniumAddress: 'http://localhost:4444/wd/hub',
      specs: ['test/e2e/menu.js'],
      capabilities: {
        'browserName': 'firefox', 
    },
    baseUrl: 'http://localhost:8100/#/',
    //allScriptsTimeout: 360000, 
      jasmineNodeOpts: {
       showColors: true,
      // defaultTimeoutInterval: 360000
     },
    //useAllAngular2AppRoots:true,

//menu.js
describe('menu check', function () {
   beforeEach(function () {
        browser.get('http://localhost:8100/#/');
      browser.waitForAngular();
     // browser.driver.manage().timeouts().setScriptTimeout(60000);
   });

    it('Should route to the operationalView page from menu', function () {
       element(by.css('[href="#/operationalView"]')).click();
       expect(browser.getCurrentUrl()).toMatch('http://localhost:8100/#/operationalView');
    });

    it('Should route to the worldlview page from menu', function () {
        element(by.css('[href="#/worldView"]')).click();
        expect(browser.getCurrentUrl()).toMatch('http://localhost:8100/#/worldView');
    });
});
Run Code Online (Sandbox Code Playgroud)

dem*_*123 5

我曾经遇到过这个问题,我使用解决了

browser.ignoreSynchronization=true
Run Code Online (Sandbox Code Playgroud)

beforeEach()量角器规格文件中的方法之前。这使量角器不必等待Angular承诺,例如来自$http$timeout要解决的承诺。您可以在脚本中尝试。

编辑:从今天开始,08/16/19,该解决方案已被弃用。使用waitForAngularEnabledfalse代替。