Безголовый хром не кажется для меня безголовым. Я использую wdio, и у меня есть это в качестве моей конфигурации:
capabilities: [
{
// maxInstances can get overwritten per capability. So if you have an in-house Selenium
// grid with only 5 firefox instances available you can make sure that not more than
// 5 instances get started at a time.
maxInstances: 5,
//
browserName: 'chrome',
args: ['--headless', '--disable-gpu', '--window-size=1280,800'],
binary: '/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome'
}
]
Я также выводлю, какие возможности есть до запуска браузера:
{
"maxInstances": 5,
"browserName": "chrome",
"args": [
"--headless",
"--disable-gpu",
"--window-size=1280,800"
],
"binary": "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome"
}
Мой браузер Chrome запускается, и я вижу, как веб-драйвер проходит тестирование. Все, что у меня много постов, делает это таким образом, и это должно работать. Чего мне не хватает?
UPDATE
Я изменил возможности чтения из переменной окружения. Если я использую BROWSER = chrome, я вижу, что соответствующие возможности проходят, и браузер запускается в Chrome. Если я использую BROWSER = firefox, Firefox открывается, и я вижу соответствующие возможности. Если я ничего не использую, я вижу надлежащие возможности, открывается Chrome, но он не безголовый.
const CHROME = {
browserName: 'chrome',
};
const FIREFOX = {
browserName: 'firefox',
};
const CHROME_HEADLESS = {
browserName: 'chrome',
args: ['headless', 'disable-gpu']
};
function getCapabilities() {
let browser;
switch(process.env.BROWSER && process.env.BROWSER.toLowerCase()) {
case 'chrome':
browser = CHROME;
break;
case 'firefox':
browser = FIREFOX;
break;
default:
browser = CHROME_HEADLESS;
break;
}
return [Object.assign({maxInstances: 5}, browser)];
}