← Назад к вопросам

Как изменить User-Agent в браузере Chrome

1.3 Junior🔥 241 комментариев
#Веб-тестирование#Инструменты тестирования

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Изменение User-Agent в Google Chrome

Изменение User-Agent в браузере Chrome — стандартная задача для QA-инженера, необходимая для тестирования адаптивной вёрстки, кросс-браузерной совместимости, проверки поведения веб-приложений для разных устройств или обхода ограничений, связанных с определением браузера. Вот основные методы, которые я использую в работе.

1. Использование встроенных DevTools (самый быстрый способ)

Это метод для разовых проверок. Открываете Инструменты разработчика (F12 или Ctrl+Shift+I), затем:

  1. Нажмите на меню из трёх точек (⋮) или Ещё инструменты.
  2. Выберите Сеть или Network conditions.
  3. В открывшейся панели снимите галочку Use browser default.
  4. В выпадающем списке выберите предустановленный агент (например, Safari на iOS) или введите свой кастомный.
// Пример кастомного User-Agent для iPhone
Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1

Преимущества: Не требует перезагрузки браузера, изменения применяются сразу для текущей вкладки. Недостатки: Сбрасывается при закрытии DevTools (в некоторых версиях Chrome) или вкладки.

2. Использование аргументов командной строки

Для запуска Chrome с изменённым User-Agent на уровне процесса. Удобно при запуске автоматизированных тестов (например, через Selenium).

# Пример для Windows
chrome.exe --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"

# Пример для macOS/Linux
google-chrome --user-agent="Your_Custom_User_Agent_String"

Преимущества: Глобально меняет User-Agent для всего экземпляра браузера. Недостатки: Необходимо закрыть все запущенные экземпляры Chrome; негибко для быстрого переключения между разными агентами.

3. Использование расширений браузера

Для частого ручного тестирования устанавливаю расширения, например, User-Agent Switcher and Manager. Позволяет:

  • Создавать и управлять списками предустановленных User-Agent (мобильные устройства, другие браузеры).
  • Переключаться между ними в один клик.
  • Настраивать правила подмены для определённых доменов.

Преимущества: Удобный интерфейс, сохранение профилей, возможность тонкой настройки. Недостатки: Может влиять на производительность; не всегда применимо в строгих корпоративных средах, где запрещены расширения.

4. Программное изменение через Selenium WebDriver

В автоматизированном тестировании это основной метод. Позволяет динамически менять User-Agent в рамках тестового сценария.

# Пример на Python с Selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
user_agent = "Mozilla/5.0 (iPad; CPU OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1"
chrome_options.add_argument(f'user-agent={user_agent}')

driver = webdriver.Chrome(options=chrome_options)
driver.get("https://example.com")
// Пример на JavaScript (Node.js) с WebDriver
const {Builder} = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');

let options = new chrome.Options();
options.addArguments('--user-agent=Mozilla/5.0 (Linux; Android 11) AppleWebKit/537.36 ...');

let driver = await new Builder()
    .forBrowser('chrome')
    .setChromeOptions(options)
    .build();

Преимущества: Полная интеграция в автотесты, возможность параметризации. Недостатки: Требует пересоздания драйвера (или использования Chrome DevTools Protocol для динамического изменения в рамках сессии).

5. Использование Chrome DevTools Protocol (CDP) для динамического изменения

Для продвинутых сценариев, когда нужно изменить User-Agent "на лету" без перезапуска драйвера.

# Python: использование execute_cdp_cmd (Selenium 4+)
driver.execute_cdp_cmd('Network.setUserAgentOverride', {
    "userAgent": "Custom User Agent String",
    "platform": "Android"
})

Преимущества: Максимальная гибкость, изменение в рантайме. Недостатки: Более сложный API, требует понимания CDP.

Критические моменты для QA:

  • Кеширование и проверка: После смены User-Agent обязательно очищайте кеш браузера (или используйте режим Инкогнито), чтобы статичные ресурсы не загружались из старой сессии.
  • Определение через JavaScript: Убедитесь, что сайт определяет устройство не только по заголовку User-Agent, но и через свойства вроде navigator.userAgent, navigator.platform. Используйте Console в DevTools для проверки.
  • Совместимость с другими функциями: Некоторые расширенные заголовки (например, Client Hints) могут приоритетнее использоваться сервером. В Chrome 100+ это особенно актуально.
  • Тестирование на разных уровнях: Проверяйте не только вёрстку, но и:
    * Загрузку специфичных ресурсов (мобильные/десктопные версии CSS, JS).
    * Редиректы, которые часто привязаны к User-Agent.
    * Работу **Feature Detection** и **Device Detection** логики на бэкенде.

Рекомендация: Для ручного тестирования оптимально использовать DevTools или расширение. В автотестах — настройку через Chrome Options в Selenium с возможностью динамической подмены через CDP для сложных кейсов. Всегда документируйте используемые строки User-Agent в тестовой документации, чтобы обеспечить воспроизводимость.