В процессе автоматизации тестирования с использованием Playwright
возникает необходимость в настройке различных параметров браузера,
включая user agent. Это важный аспект, поскольку он
позволяет эмулировать поведение различных устройств и браузеров, что
полезно при тестировании веб-приложений на совместимость с разными
платформами.
User agent — это строка, которая отправляется браузером
на сервер в HTTP-запросах. Она содержит информацию о браузере,
операционной системе и устройстве пользователя. Веб-серверы и сайты
используют эту строку для того, чтобы понять, с какого устройства или
браузера был сделан запрос, и, в случае необходимости, адаптировать
отображение контента.
Пример стандартной строки user agent для Chrome на Windows:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Настройка user agent становится необходимой в следующих случаях:
Playwright позволяет настроить user agent для каждого браузера, который используется в тестах. Это делается с помощью настройки контекста браузера, что позволяет эмулировать различные устройства и браузеры для каждого теста.
Чтобы установить кастомный user agent, нужно создать браузерный контекст и в нём задать соответствующие параметры. Например:
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const context = await browser.newContext({
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
});
const page = await context.newPage();
await page.goto('https://example.com');
await browser.close();
})();
В данном примере создаётся контекст браузера с заданной строкой user agent для браузера Chrome на Windows 10. Этот контекст затем используется для открытия страницы, на которой будет задействован кастомный user agent.
Кроме глобальной настройки для контекста, можно также изменить user agent для конкретной страницы. Это может быть полезно, если нужно эмулировать разные устройства на одной и той же тестовой сессии.
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();
await page.setUserAgent('Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) Mobile/14E304 Safari/602.1');
await page.goto('https://example.com');
await browser.close();
})();
В данном примере строка user agent используется для эмуляции iPhone с Safari.
Playwright предоставляет готовые параметры для настройки мобильных браузеров. Например, можно установить user agent и другие характеристики для эмуляции мобильных устройств, таких как iPhone, Android и других.
Для этого можно использовать встроенные параметры устройства, например:
const { chromium, devices } = require('playwright');
(async () => {
const browser = await chromium.launch();
const context = await browser.newContext({
...devices['iPhone 6']
});
const page = await context.newPage();
await page.goto('https://example.com');
await browser.close();
})();
В этом примере используется стандартная конфигурация для устройства iPhone 6. Playwright автоматически установит параметры user agent, разрешение экрана, плотность пикселей и другие характеристики для этого устройства.
Помимо user agent, Playwright позволяет также устанавливать другие параметры для контекста браузера, такие как язык, время, геолокация, и многое другое. Пример настройки языка:
const context = await browser.newContext({
userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
locale: 'en-US'
});
Таким образом, можно настроить не только сам user agent, но и локализацию тестируемого сайта.
При настройке user agent важно учитывать, что изменение этой строки может повлиять на результаты тестов. Например, сайты могут адаптировать свои интерфейсы или функциональность в зависимости от user agent. Это стоит учитывать при тестировании на различных устройствах или браузерах.
Настройка user agent в Playwright — это мощный инструмент для тестирования веб-приложений на различных устройствах и браузерах. Он позволяет эмулировать разнообразные условия работы, обеспечивая точные и реалистичные тесты. Использование этой функции помогает повысить качество тестирования и уверенность в совместимости приложения с различными платформами.