我正在使用angular为gitlab-ci管道设置e2e测试(量角器),实际上我是这个主题的新手。我希望测试也是无头的,因为Gitlab-ci所在的服务器正在Linux上运行。
但我总是得到这个错误:
E / launcher - 未知错误:找不到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}}));
}
};
我希望你们能帮助我解决我的问题,我非常感谢你们提前回答。
通过在linux服务器上安装chrome修复它没有找到任何其他解决方案
如果您的Chrome未安装在标准位置,则可能必须在protractor.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);