Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
E2E测试失败错误:在Linux中找不到chrome二进制文件_Linux_Angular_Protractor_Gitlab Ci_E2e Testing - Fatal编程技术网

E2E测试失败错误:在Linux中找不到chrome二进制文件

E2E测试失败错误:在Linux中找不到chrome二进制文件,linux,angular,protractor,gitlab-ci,e2e-testing,Linux,Angular,Protractor,Gitlab Ci,E2e Testing,我正在使用angular为gitlab ci管道设置e2e测试(量角器),实际上我对这个主题还不熟悉。我希望测试是无头的,因为Gitlab ci所在的服务器是在Linux上运行的 但我总是犯这样的错误: E/launcher-未知错误:找不到Chrome二进制文件 对我来说,这没有任何意义,因为它成功编译并下载、解压Chromedriver,还获得了一个Webdriver的运行实例,但随后它因提到的错误而崩溃 我还应该提到的是,它在本地有效,但当我推它时,它就不起作用了 我已经试过了一些我发现的

我正在使用angular为gitlab ci管道设置e2e测试(量角器),实际上我对这个主题还不熟悉。我希望测试是无头的,因为Gitlab ci所在的服务器是在Linux上运行的

但我总是犯这样的错误:

E/launcher-未知错误:找不到Chrome二进制文件

对我来说,这没有任何意义,因为它成功编译并下载、解压Chromedriver,还获得了一个Webdriver的运行实例,但随后它因提到的错误而崩溃

我还应该提到的是,它在本地有效,但当我推它时,它就不起作用了

我已经试过了一些我发现的东西,比如用“--no sandbox”编辑dragotor.conf.js,但它对我不起作用

在这里你可以看到我的dragrator.conf.js

const {SpecReporter} = require('jasmine-spec-reporter');

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

我希望你们能帮我解决我的问题,我提前非常感谢你们的回答。

通过在linux服务器上安装chrome解决了这个问题。没有找到其他解决方案

如果chrome没有安装在标准位置,您可能需要在您的dragrator.conf.js中明确指定它:

capabilities: {
    'browserName': 'chrome',
    "chromeOptions": {
      binary: "/Applications/your_path/Google Chrome.app/Contents/MacOS/Google Chrome"
    },
  },

您可以使用chromeoptions:

ChromeOptions ChromeOptions = new ChromeOptions();
ChromeOptions.addArguments("--headless", "window-size=1024,768", "--no-sandbox");
driver = new ChromeDriver(ChromeOptions);

我删除了chromeOptions中的二进制字段,它在MacOS上找到了已安装的Chrome