E2E测试失败错误:在Linux中找不到chrome二进制文件
我正在使用angular为gitlab ci管道设置e2e测试(量角器),实际上我对这个主题还不熟悉。我希望测试是无头的,因为Gitlab ci所在的服务器是在Linux上运行的 但我总是犯这样的错误: E/launcher-未知错误:找不到Chrome二进制文件 对我来说,这没有任何意义,因为它成功编译并下载、解压Chromedriver,还获得了一个Webdriver的运行实例,但随后它因提到的错误而崩溃 我还应该提到的是,它在本地有效,但当我推它时,它就不起作用了 我已经试过了一些我发现的东西,比如用“--no sandbox”编辑dragotor.conf.js,但它对我不起作用 在这里你可以看到我的dragrator.conf.jsE2E测试失败错误:在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的运行实例,但随后它因提到的错误而崩溃 我还应该提到的是,它在本地有效,但当我推它时,它就不起作用了 我已经试过了一些我发现的
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