【问题标题】:Protractor and headless chrome: Could not find Angular on page量角器和无头镀铬:在页面上找不到 Angular
【发布时间】:2018-04-05 17:25:30
【问题描述】:

我可以使用 chrome 在我的 Angular2 应用程序上运行我的 e2e 测试,它运行良好。当我尝试仅使用附加的 chromeOptions 使用无头 chrome 时,它​​无法找到角度应用程序。我尝试过使用 directConnect:true 并首先使用 webdriver-manager 启动 selenium 服务器,但都失败了。

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

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

这是我的版本
节点版本:6.11.0
量角器版本:5.2.0
角度版本:1.4.4
浏览器:chrome headless
操作系统和版本 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'
    }));
  }
};

【问题讨论】:

    标签: angular protractor


    【解决方案1】:

    您可能遇到了 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']
        }
      },
    

    【讨论】:

      【解决方案2】:

      你检查过Issue on Protractor herethis Chrome-Bug here吗?

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

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

      如果两者之一返回结果,但您的测试仍然无法正常工作,我建议打开Issue on Protractor Github

      【讨论】:

        猜你喜欢
        • 2017-12-23
        • 1970-01-01
        • 2018-01-02
        • 1970-01-01
        • 1970-01-01
        • 2019-12-12
        • 2018-04-23
        • 2018-09-13
        • 1970-01-01
        相关资源
        最近更新 更多