Змінити мову
Українська 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.

Джерела