Сменить язык
Русский English Deutsch Español Français Italiano Українська Tiếng Việt Türkçe Bahasa Indonesia हिन्दी 日本語 中文
Меню
Цены
Прокси
ТИПЫ ПРОКСИ
ПО ЛОКАЦИЯМ77 локации
Решения
Ресурсы

Как использовать прокси в Selenium

Запускайте Chrome или Firefox под Selenium через один статический ISP-адрес. Каждый пример на этой странице перед публикацией проверили на локальном прокси, а о том, что не сработало, сказано прямо.

Коротко: В Chrome передайте аргумент --proxy-server=http://HOST:PORT; в Firefox задайте ручной Proxy в параметрах. Firefox может ответить на запрос пароля от прокси через обработчик WebDriver BiDi в Selenium, add_authentication_handler. Chrome в нашем тесте этого не смог: он игнорирует учётные данные в --proxy-server, а оба обработчика BiDi завершились по тайм-ауту. Для Chrome внесите IP, с которого запускаются тесты, в белый список прокси, и прокси не потребует учётных данных ни по HTTP, ни по SOCKS5.

Selenium сам трафик не направляет: он запускает браузер и передаёт ему прокси в составе параметров браузера. Поэтому ответ для Chrome и Firefox разный, и поэтому большинство настроек ломается на аутентификации в прокси.

Прокси в Python Selenium для Chrome и Firefox

Chrome читает прокси из параметра командной строки, Firefox читает его из объекта прокси в своих параметрах. Оба принимают прокси с белым списком без дополнительной настройки; Firefox к тому же может ответить на запрос пароля от прокси через WebDriver BiDi, а Chrome в нашем тесте этого не сделал.

Как задать прокси в Selenium

  1. Узнайте публичный IP, с которого запускаются тесты

    Адрес компьютера или CI-раннера, каким его видит интернет, а не локальный. Его показывает What Is My IP.

  2. Внесите этот IP в белый список прокси

    Один вызов API, PUT /orders/ORDER_ID/whitelist, или инструмент set_proxy_whitelist MCP-сервера; в панели управления для этого пока нет настройки. Белый список принимает адреса IPv4, и каждый вызов заменяет список. Пока белый список задан, прокси пропускает только адреса из него, а логин и пароль для этого заказа перестают работать; если отправить пустой список, белый список выключается и вход по паролю снова работает.

  3. Скопируйте хост и порт из заказа

    Из раздела «Мои прокси» или из API. Когда белый список задан, логин и пароль не нужны.

  4. Задайте прокси в параметрах браузера

    Chrome: --proxy-server=http://HOST:PORT или socks5://HOST:PORT после переключения прокси на SOCKS5. Firefox: ручной Proxy с httpProxy и sslProxy.

  5. Откройте страницу и проверьте выходной адрес

    Один раз загрузите What Is My IP в управляемом браузере и убедитесь, что там купленный вами адрес, а потом запускайте набор тестов.

# The proxy has your machine's IP on its whitelist, so no credentials
# are sent: Chrome ignores them in --proxy-server anyway.
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")  # remove to watch the browser
options.add_argument("--proxy-server=http://HOST:PORT")

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# Selenium 4.51+ with WebDriver BiDi; pip install selenium
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

options = webdriver.FirefoxOptions()
options.enable_bidi = True
options.add_argument("-headless")  # remove to watch the browser
options.proxy = Proxy({
    "proxyType": ProxyType.MANUAL,
    "httpProxy": "HOST:PORT",
    "sslProxy": "HOST:PORT",
})

driver = webdriver.Firefox(options=options)
try:
    # Answers the proxy's 407 with your username and password
    driver.network.add_authentication_handler(
        lambda request: request.provide_credentials("USERNAME", "PASSWORD")
    )
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# The proxy has your machine's IP on its whitelist, so no credentials
# are sent. For a password instead, see selenium-firefox-auth.
from selenium import webdriver
from selenium.webdriver.common.proxy import Proxy, ProxyType

options = webdriver.FirefoxOptions()
options.add_argument("-headless")  # remove to watch the browser
options.proxy = Proxy({
    "proxyType": ProxyType.MANUAL,
    "httpProxy": "HOST:PORT",
    "sslProxy": "HOST:PORT",
})

driver = webdriver.Firefox(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# Switch the proxy to SOCKS5 first, then use the port the order shows.
# The whitelist applies to SOCKS5 as well, so no credentials here either.
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")  # remove to watch the browser
options.add_argument("--proxy-server=socks5://HOST:PORT")

driver = webdriver.Chrome(options=options)
try:
    driver.get("https://example.com/")
    print(driver.title)
finally:
    driver.quit()
# Put the public IPv4 address your code runs from on the proxy's
# whitelist. Replaces the list; an empty list turns whitelisting off
# and the proxy falls back to username and password.
curl -X PUT "https://api.proxyjam.com/public/v1/orders/ORDER_ID/whitelist" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"whitelisted_ips": ["YOUR_IP"]}'

Проверенный код для Selenium 4 на Python

Пример Firefox с паролем отправляет логин и пароль, поэтому ему нужен заказ без белого списка. Остальные примеры для браузеров рассчитаны на то, что IP вашего компьютера есть в белом списке прокси; для примера с SOCKS5 прокси к тому же сначала нужно переключить на SOCKS5, после чего у него будет новый порт. Замените слова, набранные заглавными буквами, значениями из своего заказа, а в вызове белого списка замените ORDER_ID, YOUR_API_KEY и YOUR_IP.

Полная документация API

Настройки прокси в Selenium для каждого браузера

Проверено 2026-10-22 на Selenium 4.51, Chrome и Firefox в headless-режиме, на локальном прокси, который на одном порту требовал пароль, а на другом принимал клиента из белого списка.
HTTP-проксиSOCKS5-проксиЛогин и пароль
Chrome--proxy-server=http://HOST:PORT--proxy-server=socks5://HOST:PORTИгнорируются в --proxy-server; используйте белый список
FirefoxProxy с httpProxy и sslProxyProxy с socksProxy и socksVersion 5Сработало через add_authentication_handler (BiDi), по HTTP
Chrome, обработчики BiDiadd_auth_handler и add_authentication_handler оба завершились по тайм-аутуНе проверялосьИспользуйте белый список, пока это не изменит новая версия Selenium или Chrome

Что идёт не так с Selenium и прокси

Учётные данные внутри --proxy-server

Chrome без всякой ошибки отбрасывает логин и пароль из этого аргумента, подключается без них и получает от прокси 407. Страница после этого не загружается, и это похоже на сетевую проблему, а не на проблему аутентификации.

Загрузка драйвера идёт через прокси

Когда в параметрах Firefox задан прокси, Selenium Manager скачивает драйвер через этот же прокси. С прокси, который пускает только по паролю, эта загрузка не проходит ещё до запуска браузера; с белым списком она проходит.

В белом списке не тот адрес

CI-раннер часто выходит в интернет с другого публичного IP, чем ваш ноутбук, а у некоторых раннеров он меняется от запуска к запуску. Вносите в белый список адрес, с которого запускаются тесты, и обновляйте его, когда он меняется: каждый вызов заменяет список.

SOCKS5 в браузере до переключения

Адрес, настроенный на HTTP, не отвечает по SOCKS5. Сначала переключите прокси в заказе и используйте порт, который после этого появится; если поменять только схему в аргументе, браузер не сможет подключиться.

Что браузерный тест получает от адреса

Без пароля в браузере
Белый список пропускает IPv4-адрес вашего раннера, поэтому ни в параметрах, ни в логах нет секрета
Обе браузерные схемы
http:// для обычных страниц, socks5:// после переключения заказа
Один исходный адрес при каждом запуске
Вчерашний и сегодняшний запуск уходят с одного IP, закреплённого на весь оплаченный период
Параллельные драйверы
Несколько драйверов могут делить адрес, или каждый драйвер может получить свой

Другие руководства и продукт

Вопросы о прокси в Selenium

Как использовать прокси с аутентификацией в Selenium?

В Firefox включите WebDriver BiDi и зарегистрируйте через driver.network.add_authentication_handler обработчик, который передаёт логин и пароль; с Selenium 4.51 это сработало. В Chrome в нашем тесте не сработало ничего, что отправляет учётные данные: он игнорирует их в параметре прокси, а оба обработчика BiDi завершились по тайм-ауту. Для Chrome внесите в белый список публичный IP, с которого запускаются тесты, и браузер будет подключаться вообще без учётных данных.

Как настроить прокси в Python Selenium для Chrome?

Создайте ChromeOptions, добавьте аргумент --proxy-server=http://HOST:PORT и передайте параметры в webdriver.Chrome. Для SOCKS5 переключите прокси на SOCKS5 в заказе и используйте socks5://HOST:PORT с портом, который после этого покажет заказ.

Работает ли белый список IP с SOCKS5?

Да. Адрес из белого списка принимается без учётных данных по HTTP и по SOCKS5, и именно это делает SOCKS5 пригодным для Chrome, ведь Chrome не умеет отправлять логин и пароль для SOCKS5. Белый список задаётся через API или MCP-сервер и принимает адреса IPv4. SOCKS5

Может ли каждый браузер в наборе тестов использовать свой прокси?

Да, по одному на драйвер: прокси входит в параметры, с которыми запускается драйвер, поэтому два драйвера могут использовать два адреса. Сменить прокси у работающего Chrome нельзя; вместо этого запустите новый драйвер.

Сменит ли длинный набор тестов адрес на полпути?

Не сменит. Драйвер сохраняет адрес, с которым запустился, пока не завершится, а сам адрес остаётся закреплённым за вами весь оплаченный период. Наборам, которым нужно сразу много исходных адресов, нужен был бы пул, который их меняет, а он пока не продаётся.

Для чего можно использовать прокси?

Сквозные тесты собственного продукта, региональные проверки вашего магазина, верификация рекламы, исследование цен и защита бренда работают без предварительной проверки по нашей политике допустимого использования. Управлять браузером, чтобы обойти CAPTCHA, защиту от ботов, ограничения частоты запросов или блокировки аккаунтов, совсем другое дело: адрес этого не делает, а политика запрещает такие попытки. Политика допустимого использования

Статический адрес делает браузерные тесты воспроизводимыми: тот же набор, запущенный через неделю, приходит из того же места, поэтому изменение результата идёт от сайта. Закажите адрес на странице ISP-прокси, посмотрите цены и задайте тот же адрес в обычных HTTP-вызовах по руководству для Python requests.

Источники