Как обрабатывать аутентификацию прокси в Selenium Вебдрайвер
⚡ Умное резюме
Аутентификация через прокси в Selenium WebDriver обрабатывает всплывающее окно с запросом учетных данных, которое появляется при подключении браузера через защищенный прокси-сервер. Потому что Selenium Невозможно напрямую управлять встроенными диалоговыми окнами; существуют два подхода: использование инструмента AutoIt и встроенных оповещений.
Что такое прокси?
Прокси действует как посредник между клиентами, отправляющими запросы, и ответом сервера. Основное использование прокси-сервера — обеспечение конфиденциальности и инкапсуляции между несколькими интерактивными системами.
Прокси-сервер также может добавить еще один уровень безопасности в сети, выступая в качестве брандмауэра между клиентом и веб-серверами. Это особенно используется, когда веб-сайты, которые используют клиенты, должны быть помечены как разрешенные или заблокированные в зависимости от содержимого веб-сайта.
Этот процесс известен как «Фильтрация контента» и чаще всего используется в образовательных учреждениях, корпоративных офисах и т. д. Фильтрацию контента можно легко выполнить с помощью прокси-сервера. Говоря языком Интернета, прокси-сервер может быть реализован как отдельный сервер, который стоит между клиентскими компьютерами и реальными веб-серверами или серверами баз данных, отвечающими на запросы.
Разница между SOCKS и HTTP-прокси
| НОСКИ | HTTP-прокси |
|---|---|
| SOCKS означает защищенные розетки. Обычно он используется в качестве межсетевого экрана между клиентом и сервером. | HTTP-прокси также можно использовать в качестве межсетевого экрана между клиентом и сервером, но его можно использовать только для HTTP-запросов. |
| SOCKS не интерпретирует обмениваемые данные | HTTP-прокси интерпретирует данные, которыми обмениваются клиент и сервер. |
| Медленнее с точки зрения производительности | Лучшая производительность по сравнению с SOCKS |
Как работать с прокси в Selenium Вебдрайвер в Chrome
Аутентификация HTTP-прокси с помощью Selenium в Chrome можно решить с помощью следующих подходов
- Использование инструмента AutoIt
- Использование оповещений
Использование инструмента AutoIt
AutoIt — это сторонний инструмент, используемый для автоматизации рабочих столов Windows. Selenium обрабатывает только всплывающие окна и веб-окна, обработка элементов управления операционной системы невозможна с помощью Selenium.
Для этого требуется интеграция с внешними сторонними инструментами, такими как AutoIt. SeleniumДля этой цели AutoIt чаще всего используется для обработки загрузки и скачивания файлов с веб-сайтов.
Для использования AutoIt необходимо загрузить и установить программное обеспечение AutoIt на ваши локальные компьютеры.
Загрузка и установка AutoIt описаны в соответствующем разделе. статья.
Откройте «Программы» — «Инструмент Autoit» — «Редактор сценариев SciTE», добавьте указанный ниже сценарий AutoIt в редактор Autoit и сохраните его как «ProxyAuthentication.au3» в своей системе.
Скомпилируйте файл и преобразуйте его как «ProxyAuthentication.exe».
In Eclipseдобавьте файл AutoIt в Selenium Скрипт и запуск
Ниже приведён скрипт AutoIt для аутентификации HTTP-прокси.
Send("guru99{ENTER}") Send("guru99{ENTER}")
Для выполнения необходимо передать файл AutoIt. Selenium веб-драйвер, используя приведенный ниже код
Источник Code:
package Guru99Demo; import java.io.IOException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class AutoItDemo { public static void main(String[] args) throws IOException { System.setProperty("webdriver.chrome.driver", "D:\\ chromedriver.exe");; WebDriver driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/basic_auth.php"); //Passing the AutoIt Script to Selenium Runtime.getRuntime().exec("D:\\Data_Personal\\ProxyAuthentication.exe"); } }
Code Объяснение:
- На первом этапе вы инициализируете экземпляр драйвера Chrome, устанавливая системное свойство, указывающее на файл chromedriver.exe.
- На втором шаге вы инициализируете объект веб-драйвера и передаете ему веб-сайт. URL используя метод get
- Наконец, вы передаете имя пользователя и пароль во всплывающее окно аутентификации HTTP-прокси с помощью скрипта AutoIt.
Code Выход:

Использование оповещений
Оповещения — это простая встроенная функция, предоставляемая Selenium веб-драйвер. Вы можете обрабатывать всплывающие окна аутентификации прокси, используя Selenium веб-драйвер, переключившись на оповещение об аутентификации HTTP-прокси и передав имя пользователя и пароль непосредственно в оповещение. С помощью метода отправки ключей.
Пример:
Сценарий тестирования:
Обработайте всплывающее окно аутентификации HTTP-прокси на веб-сайте: https://demo.guru99.com/test/basic_auth.php используя оповещения в Selenium веб-драйвер.
Пример исходного кода:
package Guru99Demo; import java.io.IOException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class AlertsDemo { public static void main(String args[]) throws IOException { System.setProperty("webdriver.chrome.driver", "D:\\Data_Personal\\Software\\chromedriver_win32\\chromedriver.exe");; WebDriver driver = new ChromeDriver(); driver.get("https://demo.guru99.com/test/basic_auth.php"); // Handling Username alert driver.switchTo().alert().sendKeys("guru99"); driver.switchTo().alert().accept(); // Handling Password alert driver.switchTo().alert().sendKeys("guru99"); driver.switchTo().alert().accept(); } }
Code Результат
Аутентификация прокси выполнена успешно.
Code Объяснение:
- Первоначально вы создаете экземпляр драйвера Chrome, устанавливая свойство webdriver, чтобы указать расположение файла chromedriver.exe.
- Затем вы открываете URL необходимого веб-сайта, пройдя через URL в качестве параметра для метода driver.get()
- Как только URL После открытия окна вы переключаетесь на всплывающее окно с именем пользователя и отправляете имя пользователя – guru99. Затем вы нажимаете кнопку «ОК» в этом окне, используя метод alert.accept.
- Затем вы переключаетесь на оповещение о пароле и отправляете пароль — guru99. Затем вы нажимаете кнопку «ОК» в предупреждении, используя метод alert.accept.

