我正在使用angular为gitlab-ci管道设置e2e测试(量角器),实际上我是这个主题的新手。我也希望测试没有头绪,因为Gitlab-ci所在的服务器正在Linux上运行。
但是我总是会收到此错误:
E /启动程序-未知错误:找不到Chrome二进制文件。
对我来说,这没有任何意义,因为它可以成功编译并下载,解压缩Chromedriver并获得1个正在运行的Webdriver实例,但随后由于提到的错误而崩溃。
我还应该提到的是它在本地有效,但是当我按下它时却不能。
我已经尝试过一些发现的事情,例如使用'--no-sandbox'编辑protractor.conf.js,但这对我不起作用。
在这里您可以看到我的protractor.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}}));
}
};
希望大家能帮助我解决我的问题,非常感谢您的回答。
答案 0 :(得分:0)
通过在Linux服务器上安装chrome修复了该问题,未找到其他解决方案
答案 1 :(得分:0)
如果您的Chrome未安装在标准位置,则可能必须在protractor.conf.js中明确指定它:
capabilities: {
'browserName': 'chrome',
"chromeOptions": {
binary: "/Applications/your_path/Google Chrome.app/Contents/MacOS/Google Chrome"
},
},
OR
您可以使用chromeoptions
ChromeOptions ChromeOptions = new ChromeOptions();
ChromeOptions.addArguments("--headless", "window-size=1024,768", "--no-sandbox");
driver = new ChromeDriver(ChromeOptions);
答案 2 :(得分:0)
我删除了chromeOptions中的二进制字段,并在MacOS上找到了已安装的Chrome。