Selenium Java: прокси с логином и паролем в Chrome и Firefox
Адрес прокси идёт в опции, а логин и пароль — в обработчик аутентификации. Объясняем почему и даём Java-код для Chrome, Edge и Firefox.
Почему логин нельзя писать в адресе прокси
Класс Proxy в Selenium принимает host:port для HTTP и SSL; единственные поля имени и пароля там — для SOCKS v5. Chrome тоже не использует логин и пароль из настроек прокси и не поддерживает ни одного способа входа для SOCKS5. Поэтому http://LOGIN:PASSWORD@HOST:PORT в параметре или в Proxy не авторизует, а окно, за которым никто не следит, просто завершится ошибкой.
Вместо этого прокси отвечает вызовом 407. Спецификация WebDriver BiDi берёт вызов из Proxy-Authenticate при статусе 407, поэтому обработчик аутентификации BiDi может на него ответить. Selenium Java предоставляет это в классе bidi.module.Network.
import org.openqa.selenium.By;
import org.openqa.selenium.UsernameAndPassword;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.bidi.browsingcontext.BrowsingContext;
import org.openqa.selenium.bidi.browsingcontext.ReadinessState;
import org.openqa.selenium.bidi.module.Network;
import org.openqa.selenium.bidi.network.AddInterceptParameters;
import org.openqa.selenium.bidi.network.InterceptPhase;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions; // for Edge use org.openqa.selenium.edge.EdgeOptions / EdgeDriver
public class ProxyLogin {
public static void main(String[] args) {
ChromeOptions options = new ChromeOptions();
options.enableBiDi(); // the login handler runs over WebDriver BiDi
options.addArguments("--proxy-server=http://HOST:2222"); // no LOGIN:PASSWORD in the address
WebDriver driver = new ChromeDriver(options);
try (Network network = new Network(driver)) {
network.addIntercept(new AddInterceptParameters(InterceptPhase.AUTH_REQUIRED));
network.onAuthRequired(details ->
network.continueWithAuth(
details.getRequest().getRequestId(),
new UsernameAndPassword("LOGIN", "PASSWORD")));
// open the first page over BiDi, as the Selenium project's own test does
BrowsingContext context = new BrowsingContext(driver, driver.getWindowHandle());
context.navigate("https://api.ipify.org?format=json", ReadinessState.COMPLETE);
System.out.println(driver.findElement(By.tagName("body")).getText()); // the proxy's exit IP
} finally {
driver.quit();
}
}
}
Имена API сверены с исходниками Selenium на 14 ноября 2026; код не компилировался на машине, где писалась страница. Тот же сценарий на Python проверен 18 октября 2026. Подставьте HOST, LOGIN и PASSWORD из «Мои активы».
import org.openqa.selenium.Proxy;
import org.openqa.selenium.firefox.FirefoxOptions;
Proxy proxy = new Proxy();
proxy.setHttpProxy("HOST:2222"); // host:port only; Proxy has no login for an HTTP proxy
proxy.setSslProxy("HOST:2222");
FirefoxOptions options = new FirefoxOptions();
options.setProxy(proxy);
options.enableBiDi();
// then create the driver and register the same auth handler as in the Chrome example
Firefox получает прокси через стандартную возможность proxy. У FirefoxOptions есть enableBiDi(); собственный тест аутентификации Selenium не ограничен Chrome, но сценарий входа на прокси мы запускали только в Chrome. Не компилировалось.
Прокси, заданный в опциях браузера, передаётся в Selenium Manager, и тот использует его для загрузки драйверов и браузеров — без пароля. Если первый запуск падает с 407 при загрузке драйвера, для Chrome и Edge используйте параметр --proxy-server, как в коде выше, либо задайте для Selenium Manager другой прокси через SE_PROXY. Тест Proxy302 на Python 18 октября 2026 столкнулся ровно с этим и обошёл его параметром.
Проверьте логин вне Selenium: curl -x http://LOGIN:PASSWORD@HOST:2222 https://ipinfo.io/json должен вывести IP прокси.
Ожидаемый результат JSON с внешним IP прокси.
Шаг 2
Запустите драйвер с enableBiDi() и host:port в параметре или в Proxy, без логина в нём.
Шаг 3
Зарегистрируйте обработчик до первой страницы и откройте её через BrowsingContext.navigate.
Шаг 4
Выведите тело страницы и сравните IP и страну со своими.
Ожидаемый результат IP прокси, а не ваш.
Проблемы и что проверить
Страница не загружается, запуск завершается по таймауту
Проверьте Не обычный ли driver.get() — первая навигация, пока прокси ждёт логин?
Решение Сначала зарегистрируйте обработчик и откройте первую страницу через BrowsingContext.navigate; в тесте на Python обычный get тоже зависал.
407 Proxy Authentication Required
Проверьте Вызван ли enableBiDi(), зарегистрирован ли обработчик до открытия страницы, верен ли логин?
Решение Проверьте через curl, затем порядок вызовов.
Загрузка драйвера при первом запуске падает
Проверьте Не задан ли прокси через Proxy или options, из-за чего им пользуется и Selenium Manager?
Решение Для Chrome и Edge используйте параметр --proxy-server, либо SE_PROXY, либо уже имеющийся драйвер.
Виден ваш собственный IP
Проверьте Адрес в формате host:port, протокол HTTP, порт 2222?
Решение Исправьте адрес, перезапустите драйвер и выведите внешний IP.
Когда остановиться Если curl через тот же прокси тоже не работает, не меняйте код Selenium, а проверьте данные доступа.
Какой IP Proxy302 подойдёт для Selenium Java
Для тестов и Grid, которые не входят в аккаунты, подойдёт серверный IP в аренду по одному: $0,25 за 1 сутки или $3,99 за 30 суток, в заказе до 100 IP; выбирайте HTTP — это порт 2222 на proxy.proxy302.com. Серверные адреса определяются как серверные, поэтому для работы с аккаунтами и магазинами берите статический ISP IP — от $0,50 в сутки.
Бесплатного теста нет; минимальная покупка — один IP на одни сутки.
Как задать прокси с логином и паролем в Selenium Java?
Передайте host:port в ChromeOptions (--proxy-server) или FirefoxOptions (Proxy), вызовите enableBiDi() и ответьте на запрос логина через Network.onAuthRequired и continueWithAuth.
Selenium прокси с авторизацией в Chrome: HTTP-прокси в ChromeOptions и встроенный в Selenium обработчик BiDi, без расширений. Статические IP дата-центра для тестов.
Прочитано 14 ноября 2026: setHttpProxy и setSslProxy принимают host:port; есть setSocksUsername и setSocksPassword, они поддерживаются только в SOCKS v5; в классе нет полей логина для HTTP-прокси.
Прочитано 14 ноября 2026: интерфейс позволяет драйверу проходить аутентификацию на сайте; его реализуют ChromeDriver, ChromiumDriver, EdgeDriver и ElectronDriver; об аутентификации на прокси на странице ничего нет.
Прочитано 14 ноября 2026 (trunk): у Network есть addIntercept, onAuthRequired и continueWithAuth(requestId, UsernameAndPassword); у InterceptPhase есть AUTH_REQUIRED; у ChromiumOptions и FirefoxOptions есть enableBiDi() (задаёт webSocketUrl); собственный тест проекта регистрирует обработчик и переходит через BrowsingContext.navigate(url, COMPLETE) на страницу с базовой аутентификацией, ни один браузер не исключён.
Прочитано 14 ноября 2026: вызов берётся из WWW-Authenticate при статусе 401 и из Proxy-Authenticate при статусе 407, поэтому событие authRequired может покрывать и вход на прокси.
Прочитано 14 ноября 2026: Chrome не использует логин и пароль, встроенные в настройки прокси; HTTP-прокси идут по обычному входу (Basic, Digest, Negotiate, NTLM); для SOCKS5 нет ни одного способа аутентификации.
Прочитано 14 ноября 2026: прокси, заданный в опциях браузера, передаётся в Selenium Manager и используется и браузером, и при загрузке драйверов и браузеров; SE_PROXY задаёт для Selenium Manager отдельный прокси.
Проверка того же сценария на Python у Proxy302, 18 октября 2026
Локальный пример · Проверено:
На странице сайта о Selenium записан запуск на Python от 18 октября 2026 (Selenium 4.41.0 и 4.51.0, ChromeDriver 153) через локальный прокси с паролем: при включённом BiDi и прокси в параметре --proxy-server обработчик аутентификации BiDi загрузил страницы по HTTP и HTTPS. Java-код на этой странице не компилировался и не запускался.
Python, а не Java: другая языковая привязка.
Proxy302: данные о продуктах и цены
Наблюдение за продуктом · Проверено:
Таблица фактов о продуктах сайта (сверено 10 ноября 2026): протоколы и порты, цены в US$ (1 PTC = US$1), сроки аренды, лимиты количества, бесплатного теста нет.
Готовы попробовать?
Создайте аккаунт, пополните баланс и выберите ротируемый резидентный, статический ISP или дата-центр IP — настроить его в браузере можно за несколько минут.