量角器抛出错误,无头需要 X 显示 chrome 59
Protractor throws error an X Display is required for headless chrome 59
虽然 运行 ng e2e 我得到以下内容
✓ should display message saying sign up
✗ should be able to sign up with a valid user
- Failed: unknown error: an X display is required for keycode conversions, consider using Xvfb
(Session info: headless chrome=59.0.3071.71)
(Driver info: chromedriver=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 3.13.0-48-generic x86_64)
(Session info: headless chrome=59.0.3071.71)
(Driver info: chromedriver=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 3.13.0-48-generic x86_64)
配置:
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'args': ['show-fps-counter=true', '--no-sandbox', '--headless', '--disable-gpu']
}
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
beforeLaunch: function() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
},
onPrepare() {
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
从下面的link来看,似乎不需要Xvfb,那么应该怎样配置才合适呢?
现在从这里进行配置:
Using Headless Chrome.
以上问题是由于 sendkeys。
截至目前,还没有仅使用无头浏览器和 sendkeys 的解决方案,请参阅 Issue。
它现在可以与 xvfb 一起使用。
提供 xvfb
- sudo apt-get install -y xvfb
- sudo apt-get install -y xfonts-100dpi
xfonts-75dpi xfonts-cyrillic dbus-x11
- xvfb-运行 -a -s "-screen 0
2920x2580x24" ng e2e
安装 chromedriver 2.31 的解决方法
作为mentioned in this bug report, davidthornton has compiled a binary of chromedriver-2.31, which includes the fix: https://github.com/davidthornton/chromedriver-2.31
我通过将这个 oneliner 添加到我的 ci 安装脚本中成功地使用了它:
mkdir -p ~/chromedriver && wget https://github.com/davidthornton/chromedriver-2.31/blob/master/chromedriver\?raw\=true -O ~/chromedriver/chromedriver && chmod a+x ~/chromedriver/chromedriver && export PATH="$HOME/chromedriver:$PATH"
2.31 发布了吗?
希望他们能尽快发布 chromedriver 2.31!
在此处查看版本:https://sites.google.com/a/chromium.org/chromedriver/downloads
虽然 运行 ng e2e 我得到以下内容
✓ should display message saying sign up
✗ should be able to sign up with a valid user
- Failed: unknown error: an X display is required for keycode conversions, consider using Xvfb
(Session info: headless chrome=59.0.3071.71)
(Driver info: chromedriver=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 3.13.0-48-generic x86_64)
(Session info: headless chrome=59.0.3071.71)
(Driver info: chromedriver=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 3.13.0-48-generic x86_64)
配置:
const { SpecReporter } = require('jasmine-spec-reporter');
exports.config = {
allScriptsTimeout: 11000,
specs: [
'./e2e/**/*.e2e-spec.ts'
],
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'args': ['show-fps-counter=true', '--no-sandbox', '--headless', '--disable-gpu']
}
},
directConnect: true,
baseUrl: 'http://localhost:4200/',
framework: 'jasmine',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 30000,
print: function() {}
},
beforeLaunch: function() {
require('ts-node').register({
project: 'e2e/tsconfig.e2e.json'
});
},
onPrepare() {
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
}
};
从下面的link来看,似乎不需要Xvfb,那么应该怎样配置才合适呢?
现在从这里进行配置: Using Headless Chrome.
以上问题是由于 sendkeys。 截至目前,还没有仅使用无头浏览器和 sendkeys 的解决方案,请参阅 Issue。
它现在可以与 xvfb 一起使用。
提供 xvfb
- sudo apt-get install -y xvfb
- sudo apt-get install -y xfonts-100dpi xfonts-75dpi xfonts-cyrillic dbus-x11
- xvfb-运行 -a -s "-screen 0 2920x2580x24" ng e2e
安装 chromedriver 2.31 的解决方法
作为mentioned in this bug report, davidthornton has compiled a binary of chromedriver-2.31, which includes the fix: https://github.com/davidthornton/chromedriver-2.31
我通过将这个 oneliner 添加到我的 ci 安装脚本中成功地使用了它:
mkdir -p ~/chromedriver && wget https://github.com/davidthornton/chromedriver-2.31/blob/master/chromedriver\?raw\=true -O ~/chromedriver/chromedriver && chmod a+x ~/chromedriver/chromedriver && export PATH="$HOME/chromedriver:$PATH"
2.31 发布了吗?
希望他们能尽快发布 chromedriver 2.31!
在此处查看版本:https://sites.google.com/a/chromium.org/chromedriver/downloads