Как обрабатывать аутентификацию прокси в 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.

Вывод кода:

Обработка предупреждений об имени пользователя с помощью AutoIT
Обработка предупреждений об имени пользователя с помощью AutoIT
Обработка предупреждений о пароле с помощью AutoIT

Обработка предупреждений о пароле с помощью 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 вебдрайвер