Что такое Selenium и зачем он нужен
Selenium — набор инструментов для автоматизации браузера: тестовый код управляет Chrome/Firefox/Edge так, как это делает пользователь. Его используют в web‑QA для проверки критичных сценариев (логин, регистрация, корзина, оплата), в регрессе после релизов и для мониторинга (регулярно открывать страницы и фиксировать ошибки).
Сильная сторона Selenium в том, что он работает «как браузер»: выполняет JavaScript, обрабатывает редиректы, cookie и LocalStorage, а также воспроизводит поведение антибот‑механизмов лучше, чем простой HTTP‑клиент.
Типовые задачи: QA, регресс, мониторинг, локализация
- Функциональное web‑QA: end‑to‑end сценарии «нашёл → добавил → оплатил».
- Регресс‑наборы: быстрый прогон основных путей после изменений.
- Smoke‑тесты: короткая проверка перед деплоем.
- Мониторинг: доступность страниц, ошибки фронта, деградации.
- Geo‑проверки: язык, валюта, доставка, методы оплаты, контент.
Режимы запуска и почему это важно для proxy
- Локально: драйвер и браузер на вашей машине.
- Headless: запуск без окна (часто в CI), быстрее и дешевле, но иногда отличается поведение сайта.
- Selenium Grid / RemoteWebDriver: браузеры на удалённых нодах (Docker/VM), удобно масштабировать параллельно.
Во всех режимах прокси надёжнее задавать на старте сессии WebDriver через options/capabilities, как описано в спецификации WebDriver и документации Selenium.
Где указывается proxy в Selenium
- W3C proxy capability: объект «proxy» внутри capabilities — самый переносимый вариант.
- Класс Proxy в Selenium: задаёт http/ssl/socks/noProxy и передаётся в драйвер/опции.
- Нативные флаги браузера: в Chromium есть
--proxy-server,--no-proxy-serverи авто‑детект.
Режимы proxy по WebDriver: manual, pac, autodetect, direct
На практике в QA чаще всего используют manual (явно задать адрес и порт). PAC и autodetect полезны в корпоративных сетях, но снижают воспроизводимость в CI. «direct» удобно, чтобы гарантированно отключить системные настройки.
Почему именно мобильные прокси
Мобильные прокси дают выход в интернет через IP мобильных операторов (4G/5G). Это важно, когда вы хотите воспроизвести сценарий «как у мобильного пользователя» не только по User‑Agent, но и по сетевым признакам: репутация IP, особенности NAT/CGNAT, маршрутизация и геопривязка.
Индивидуальные mobile proxy (условно «один канал/модем на одну команду или поток») полезны тем, что тесты меньше влияют друг на друга: меньше случайных капч из‑за чужого трафика и проще разбирать расхождения между странами.
Geo‑QA на мобильных IP: что обычно отличается
- валюта и цены;
- наличие товаров/услуг и складов;
- доступные способы доставки и оплаты;
- локальные дисклеймеры, баннеры, тексты;
- поведение антибота: капчи/дополнительные проверки.
Sticky IP для тестов: когда нужен
Sticky IP — это удержание одной исходной IP в течение заданного времени. Для Selenium это критично для многошаговых сценариев (регистрация → подтверждение → чекаут): смена IP посередине может сломать сессию или вызвать дополнительную проверку. Но слишком длинная «липкость» иногда мешает массовым прогонам — тогда sticky‑период лучше привязать к началу тест‑кейса.
Grid и Docker: важные нюансы доступности прокси
- прокси должен быть доступен с ноды, где реально запущен браузер;
- не путайте маршрут «тест → Grid» и «браузер → интернет через прокси»;
- секреты (логин/пароль) храните в переменных CI, а не в репозитории;
- артефакты (скриншоты/логи) разносите по странам и потокам.
Кейс: QA проверяет регистрацию и чекаут в 3 странах
Команда тестирует продукт в трёх странах и хочет фиксировать расхождения в контенте и ценах именно «с мобильного интернета».
- 3 индивидуальных мобильных прокси (по одному на страну), sticky 30 минут;
- отдельные прогоны в CI по параметру COUNTRY;
- одинаковые версии браузера/драйвера и одинаковые тест‑данные.
В каждом прогоне логируют: страну и текущий IP, язык/валюту, цены на контрольные товары, методы доставки/оплаты, наличие капчи при регистрации и редиректы на локальные домены. Типовые находки — отличающиеся цены из‑за налогов/промо, недоступность оплаты в одной стране или капча, которая проявляется только на мобильных IP.
Практические советы для воспроизводимости
- стартуйте с «чистого» профиля и очищайте cookie/local storage между странами;
- одна sticky‑сессия на один параллельный поток;
- увеличьте таймауты и отделяйте сетевые сбои от багов;
- не перегружайте один мобильный канал десятками тестов одновременно;
- добавьте в отчёт IP/страну/время и способ задания прокси (capabilities/flags).