Як керувати автентифікацією проксі в Selenium Веб-драйвер
⚡ Розумний підсумок
Автентифікація проксі-сервера в Selenium WebDriver обробляє спливаюче вікно з обліковими даними, яке з'являється, коли браузер підключається через захищений проксі-сервер. Тому що Selenium не можна безпосередньо керувати рідними діалоговими вікнами, два підходи використовують інструмент AutoIt та вбудовані сповіщення.
Що таке проксі?
Проксі діє як посередник між клієнтами, які надсилають запити, і сервером, що відповідає. Основне використання проксі полягає в підтримці конфіденційності та інкапсуляції між кількома інтерактивними системами.
Проксі також може додати ще один рівень безпеки в Інтернеті, діючи як брандмауер між клієнтом і веб-серверами. Це особливо використовується, коли веб-сайти, якими користуються клієнти, потрібно позначити як дозволені або заблоковані на основі вмісту веб-сайту.
Цей процес відомий як «фільтрування вмісту» і найчастіше використовується в навчальних закладах, корпоративних офісах тощо. Фільтрування вмісту можна легко здійснити за допомогою проксі-сервера. З точки зору Інтернету, проксі-сервер може бути реалізований як окремий сервер, який стоїть між клієнтськими машинами та реальними веб-серверами або серверами баз даних, які відповідають.
Різниця між SOCKS і HTTP Proxy
| SOCKS | 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 webdriver за допомогою наведеного нижче коду
Source 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. Потім ви натискаєте кнопку OK на сповіщенні, використовуючи метод alert.accept
- Потім ви переходите на оповіщення про пароль і надсилаєте пароль – guru99. Потім ви натискаєте кнопку OK у сповіщенні за допомогою методу alert.accept

