WebdriverIO - Как добавлять собственные заголовки ко всем запросам
Мне нужно добавить настраиваемые заголовки ко всем запросам, чтобы получить доступ к веб-приложению, которое обычно скрыто за корпоративным прокси и vpn, и иметь возможность запускать тесты E2E. В качестве инструмента автоматизации мы используем WebdriverIO. До сих пор я пытался настроить собственный заголовок в файле wdio.conf.js, следуя официальной документации wdio (https://webdriver.io/docs/options/), и добавил параметр заголовков внутри возможностей в моем файле конфигурации. К сожалению, это не работает, и я все еще не могу подключиться к нашему веб-приложению. Кто-нибудь пробовал добавлять собственные заголовки в файл wdio.config.js и запускать тесты E2E? Содержимое моего файла wdio.config.js следующее:
exports.config = {
runner: 'local',
specs: [
'./src/specs/**/login.spec.ts',
],
// Patterns to exclude.
exclude: [
// 'path/to/excluded/files'
],
maxInstances: 10,
capabilities: [
{
maxInstances: 5,
browserName: 'chrome',
acceptInsecureCerts: true,
headers: {
'REQUIRED-HEADER-KEY': 'HEADER-VALUE'
},
'goog:chromeOptions': {
'excludeSwitches': [
'enable-automation'
],
prefs: {
'profile.managed_default_content_settings.notifications': 1,
'plugins.always_open_pdf_externally': true,
'download': {
'prompt_for_download': false,
'default_directory': process.cwd() + '/tmp'
}
},
args: [
'--disable-gpu',
'--window-size=1920,1080',
'--no-sandbox',
'--disable-dev-shm-usage',
'--start-maximized',
],
},
},
],
}
2 ответа
В настоящее время это невозможно сделать, см. Webdriverio / issues / 6361
Но вы можете сделать это с помощью modheader_selenium :
npm install chrome-modheader
const chromeModheader = require('chrome-modheader');
exports.config = {
...
capabilities: [{
browserName: 'chrome',
chromeOptions: {
extensions: [chromeModheader.getExtension()],
}
}],
...
before: function (capabilities, specs) {
browser.url(chromeModheader.getAddHeaderUrl('YOUR_HEADER', 'YOUR_HEADER_VALUE'));
},
...
}
Пожалуйста, посмотрите, что может быть не так? Спасибо
const { config } = require('../wdio.conf');
const chromeModheader = require('chrome-modheader');
config.capabilities = [{
maxInstances: 1,
browserName: 'chrome',
'goog:chromeOptions': {
extensions: [chromeModheader.getExtension()],
enter code here
'excludeSwitches': [
'enable-automation',
'--disable-infobars',
'--disable-blink-features=AutomationControlled',
'--disable-dev-shm-usage',
'--no-sandbox',
],
before: function (capabilities, specs) {
browser.url(chromeModheader.getAddHeaderUrl('X-Captcha-Override', 'disable'));
},
}
}];
exports.config = config;
Запрос не выполнен со статусом 500 из-за того, что сеанс не создан: не удалось начать новый сеанс. Ошибка при создании сеанса со службой драйверов. Останов службы драйвера: не удалось начать новый сеанс. Код ответа 500. Сообщение: сеанс не создан: невозможно обработать расширение № 1[0-0] из-за неизвестной ошибки: невозможно декодировать base64 [0-0] Информация о сборке: версия: «4.4.0», ревизия: «e5c75ed026a»