Для установки прокси в браузере вручную, прописываю адрес и порт в настройках соединения браузера. После этого, при первом доступе к любому серверу в браузере вылезает диалоговое окно для прохождения авторизации (basic authorization). После ее прохождения все запросы проходят через прокси.
--------------
В селениуме пробовал делать так:
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setHttpProxy("<login>:<password>@<address>:<port>");
proxy.setSslProxy("<login>:<password>@<address>:<port>");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(capabilities);
driver.get("http://2ip.ru");
В этом случае в конфигурации подключения браузера на место адреса прокси устанавливается ``, а порт дэфолтный ( ноль ). Если дописать `
http://`, то вместо адреса вставляется `http`, а порт ноль.
--------------
И еще, пробовал так:
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setHttpProxy("<address>:<port>");
proxy.setSslProxy("<address>:<port>");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(capabilities);
driver.get("http://2ip.ru");
В этом случае адрес и порт прописываются правильно и после запуска браузера (на строке `WebDriver driver = new FirefoxDriver(capabilities);`) появляется диалоговое окно с текстом `Прокси «moz-proxy://:» запрашивает имя пользователя и пароль. Сайт сообщает: «proxy»` и полями для ввода логина и пароля, выполнение программы приостанавливается, что не дает возможность воспользоваться созданным объектом `driver` для переключения на окно и ввести логин и пароль (`driver.switchTo().alert()....`).
--------------
Также нагуглил вариант:
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setHttpProxy("<address>:<port>");
proxy.setSslProxy("<address>:<port>");
proxy.setSocksUsername("<login>");
proxy.setSocksPassword("<password>");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(capabilities);
driver.get("http://2ip.ru");
Но результат такой-же как и во втором случае.
--------------
Пробовал использовать еще такой вариант:
DesiredCapabilities capabilities = new DesiredCapabilities(); // DesiredCapabilities.firefox();
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.proxy.type", 1);
profile.setPreference("signon.autologin.proxy" , true);
profile.setPreference("network.websocket.enabled", false);
profile.setPreference("network.proxy.share_proxy_settings", false);
profile.setPreference("network.automatic-ntlm-auth.allow-proxies", false);
profile.setPreference("network.http.phishy-userpass-length", 255);
profile.setPreference("network.auth.use-sspi", false);
profile.setPreference("network.proxy.http", "<address>");
profile.setPreference("network.proxy.http_port", <port>);
profile.setPreference("network.proxy.ssl", "<address>");
profile.setPreference("network.proxy.ssl_port", <port>);
capabilities.setCapability(FirefoxDriver.PROFILE, profile);
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();
proxy.setProxyType(ProxyType.MANUAL);
proxy.setSocksUsername("<login>");
proxy.setSocksPassword("<password>");
capabilities.setCapability(CapabilityType.PROXY, proxy);
WebDriver driver = new FirefoxDriver(capabilities);
driver.get("http://2ip.ru");
Если устанавливать конфигурацию прокси через профайл фаерфокса ( profile.setPreference(...) ), то окно для авторизации через прокси появляется немного раньше окна браузера (браузер запускается примерно за 1 секунду, а окно для авторизации появляется примерно на пол секунды раньше) и при этом, в отличии от вариантов реализации из предыдущего сообщения, не блокирует главное окно (которое запускается/отображается немножко позже). Также в этом варианте выполнение программы не приостанавливается на строке создания драйвера (`new FirefoxDriver(capabilities);`). Программа приостанавливается на строке `driver.get("
2ip.ru");` , браузер при этом ожидает ответ от 2ip.ru, до тех пор пока я не введу вручную данные для авторизации прокси, если авторизация не удалась, то вместо запрошенной страницы получаю сообщение - "Прокси-сервер отказывается принимать соединения".
Вопрос: как можно получить доступ к окну авторизации для дальнейшего ввода логина и пародя или как пройти авторизацию на прокси сервере не выводя окно для авторизации ( примерно как я пробовал: proxy.setSocksUsername(""); proxy.setSocksPassword("" ); )?