量角器和无头铬:在页面上找不到Angular

时间:2017-11-16 17:25:27

标签: angular protractor

我可以使用chrome在我的Angular2应用程序上运行我的e2e测试,它运行得很好。当我尝试使用无头镀铬只使用额外的chromeOptions时,它无法找到角度应用程序。我尝试过使用directConnect:true并且首先使用webdriver-manager启动selenium服务器,但两者都失败了。

测试的第一件事是调用browser()。get('/');

纱线运行v1.3.2
$ protractor protractor.conf.js
[10:51:34]我/启动器 - 运行WebDriver的1个实例
[10:51:34]我/直接 - 直接使用ChromeDriver ...
茉莉花开始了 [10:51:48] E /量角器 - 在页面https://localhost:4200/上找不到Angular:重试寻找角度超过了

这是我的版本
节点版本:6.11.0
量角器版本:5.2.0
角度版本:1.4.4
浏览器:镀铬无头
操作系统和版本Windows 7

这是我的protractor.conf.js

var SpecReporter = require('jasmine-spec-reporter').SpecReporter;
var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');

exports.config = {
  allScriptsTimeout: 11000,
  specs: [
    './e2e/**/*.e2e-spec.ts'
  ],
  capabilities: {
    'browserName': 'chrome',
    chromeOptions: {
      args: ["--headless", "--disable-gpu", "--window-size=800,600"]
    }
  },
  directConnect: true,
  baseUrl: 'https://localhost:4200/',
  framework: 'jasmine2',
  useAllAngular2AppRoots: true,
  jasmineNodeOpts: {
    showColors: true,
   defaultTimeoutInterval: 30000,
    print: function () { }
  },
  onPrepare() {
    require('ts-node').register({
      project: 'e2e/tsconfig.json'
    });
    jasmine.getEnv().addReporter(new SpecReporter({
      spec: { displayStacktrace: true }
    }));
    jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({
      savePath: './protractor-results/e2e'
    }));
  }
};

2 个答案:

答案 0 :(得分:2)

您可能遇到了Chrome沙箱安全性错误。在您的量角器配置文件中添加--no-sandbox如下所示的Chrome选项,它可能会有效。 : - )

exports.config = {
  allScriptsTimeout: 11000,
  specs: ["./e2e/**/*.e2e-spec.ts"],
  capabilities: {
    browserName: "chrome",
    chromeOptions: {
      binary: process.env.CHROME_BIN,
      args: ['--no-sandbox']
    }
  },

答案 1 :(得分:0)

您是否检查了此Issue on Protractor herethis Chrome-Bug here

您是否检查过页面上是否存在角度?

请参阅this answer了解,需要注意的事项。基本上检查,如果您的浏览器控制台在window.angular.version(AngularJS)或window.getAllAngularRootElements(Angular)上返回任何内容。

如果其中一个返回结果,但您的测试仍然不起作用,我建议打开Issue on Protractor Github