Как добавить собственный заголовок для доступа к URL-адресу страницы, а затем выполнить автоматизацию тестирования на этой странице, я использую структуру webdriverio, mocha, nodejs

У меня есть веб-страница, функциональность которой изменяется, когда настраиваемый заголовок «headerKey»: «headervalue» устанавливается через расширение Chrome. Хотя я могу сделать это вручную, я хочу сделать это через код, чтобы автоматизировать тестирование.

Примечание:-

Помогите с подходами.

В веб-драйвере нет функций для выполнения этой операции. Я использовал modheader, но он не работает.

getModHeaderExtension() {
    const filename = path.join(__dirname, "Modify.crx");
    console.info(filename);
    const stream = fs.readFileSync(filename);
    return new Buffer(stream).toString('base64');
}
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
584
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Мне удалось найти решение для передачи пользовательского заголовка при открытии моей веб-страницы. Я использую службу ChromeDevTools, которая поддерживается webdriverio v5, используя свой метод

browser.cdp(domain, command, parameters);

Для домена, команды и параметров, пожалуйста, посетите протокол devtools ниже: -

https://chromedevtools.github.io/devtools-протокол/

Я знаю, что прошло некоторое время с тех пор, как вопрос был добавлен, хотя мне потребовалось некоторое время, чтобы понять это самостоятельно, поэтому, возможно, кто-то им воспользуется.

  1. Добавьте @wdio/devtools-service в свои зависимости для разработчиков (у нее должна быть та же основная версия, что и у других ваших @wdio библиотек, иначе у вас могут возникнуть проблемы)
  2. Вам нужно добавить devtools к услугам в wdio.conf.ts:
export const config = {
  [...]
  services: ['chromedriver', 'devtools']
  [...]
}
  1. Теперь добавьте, что вы можете добавить заголовки в свой тестовый метод или куда угодно:
const encodedCredentials = base64.encode(`${appConfig.basicAuthDevUser.userName}:${appConfig.basicAuthDevUser.password}`);
browser.cdp('Network', 'setExtraHTTPHeaders', {
  headers: {
    Authorization: `Basic ${encodedCredentials}`,
  },
});

Подробнее об использовании devtools с wdio: https://webdriver.io/docs/devtools-service/

Подробнее о конкретных возможностях Chrome: https://chromedevtools.github.io/devtools-protocol/tot/Network/

Другие вопросы по теме