Как обрабатывать аутентификацию прокси в Selenium Вебдрайвер
Что такое прокси?
Прокси действует как посредник между клиентами, отправляющими запросы, и ответом сервера. Основное использование прокси-сервера — обеспечение конфиденциальности и инкапсуляции между несколькими интерактивными системами.
Прокси-сервер также может добавить еще один уровень безопасности в сети, выступая в качестве брандмауэра между клиентом и веб-серверами. Это особенно используется, когда веб-сайты, которые используют клиенты, должны быть помечены как разрешенные или заблокированные в зависимости от содержимого веб-сайта.
Этот процесс известен как «Фильтрация контента» и чаще всего используется в образовательных учреждениях, корпоративных офисах и т. д. Фильтрацию контента можно легко выполнить с помощью прокси-сервера. Говоря языком Интернета, прокси-сервер может быть реализован как отдельный сервер, который стоит между клиентскими компьютерами и реальными веб-серверами или серверами баз данных, отвечающими на запросы.
Разница между SOCKS и HTTP-прокси
НОСКИ | HTTP-прокси |
---|---|
SOCKS означает защищенные розетки. Обычно он используется в качестве межсетевого экрана между клиентом и сервером. | HTTP-прокси также можно использовать в качестве межсетевого экрана между клиентом и сервером, но его можно использовать только для HTTP-запросов. |
SOCKS не интерпретирует обмениваемые данные | HTTP-прокси интерпретирует данные, которыми обмениваются клиент и сервер. |
Медленнее с точки зрения производительности | Лучшая производительность по сравнению с SOCKS |
Как работать с прокси в Selenium Вебдрайвер в Chrome
Аутентификация HTTP-прокси с помощью Selenium в Chrome можно решить с помощью следующих подходов
- Использование инструмента AutoIT
- Использование оповещений
Использование инструмента AutoIT
Auto IT — это сторонний инструмент, который используется для автоматизации рабочего стола Windows. Selenium обрабатывает только всплывающие окна и веб-окна, обработка элементов управления операционной системы невозможна с помощью Selenium.
Это требует использования внешних сторонних инструментов, таких как Auto IT, для интеграции с Selenium. Для этого Auto IT чаще всего используется для обработки загрузки и скачивания файлов на веб-сайтах.
Чтобы использовать AutoIT, вам необходимо загрузить и установить программное обеспечение AutoIT на наши локальные компьютеры.
Загрузка установки AutoIT описана в статья.
Откройте «Программы» — «Инструмент Autoit» — «Редактор сценариев SciTE», добавьте указанный ниже сценарий AutoIt в редактор Autoit и сохраните его как «ProxyAuthentication.au3» в своей системе.
Скомпилируйте файл и преобразуйте его как «ProxyAuthentication.exe».
In Eclipse, добавьте файл Auto IT в Selenium Скрипт и запуск
Ниже приведен сценарий AutoIT для аутентификации HTTP-прокси.
Send("guru99{ENTER}") Send("guru99{ENTER}")
Вам необходимо передать файл Auto IT на выполнение Selenium веб-драйвер, используя приведенный ниже код
Исходный код:
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"); } }
Пояснение к коду:
- На первом этапе вы инициализируете экземпляр драйвера Chrome, устанавливая системное свойство, указывающее на файл chromedriver.exe.
- На втором этапе вы инициализируете объект веб-драйвера и передаете URL-адрес веб-сайта с помощью метода get.
- Наконец, вы передаете имя пользователя и пароль во всплывающее окно аутентификации HTTP-прокси, используя файл сценария AutoIT.
Вывод кода:
Использование оповещений
Оповещения — это простая встроенная функция, предоставляемая 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(); } }
Вывод кода
Аутентификация прокси выполнена успешно.
Пояснение к коду:
- Первоначально вы создаете экземпляр драйвера Chrome, устанавливая свойство webdriver, чтобы указать расположение файла chromedriver.exe.
- Затем вы открываете URL-адрес необходимого веб-сайта, передавая URL-адрес в качестве параметра методу driver.get().
- Как только URL-адрес открыт, вы переключаетесь на оповещение об имени пользователя и отправляете имя пользователя — guru99. Затем вы нажимаете кнопку «ОК» в предупреждении, используя метод alert.accept.
- Затем вы переключаетесь на оповещение о пароле и отправляете пароль — guru99. Затем вы нажимаете кнопку «ОК» в предупреждении, используя метод alert.accept.
Резюме
- Прокси действует как посредник между клиентами, отправляющими запросы, и ответом сервера. Основное использование прокси – это обеспечение конфиденциальности и инкапсуляции между несколькими интерактивными системами.
- Аутентификация HTTP-прокси с помощью Selenium в Chrome можно решить с помощью следующих подходов
- Передача имени пользователя и пароля в URL-адресе веб-сайта
- Использование инструмента AutoIT
- Использование оповещений
- Из трех вышеперечисленных подходов использование оповещений является наиболее эффективным способом аутентификации HTTP-прокси в Selenium вебдрайвер