Как да се справим с удостоверяването на прокси в Selenium Уебдрайвер

⚡ Умно обобщение

Прокси удостоверяване в Selenium WebDriver обработва изскачащия прозорец за идентификационни данни, който се появява, когато браузърът се свърже чрез защитен прокси сървър. Защото Selenium не може да управлява директно оригиналните диалози, два подхода използват инструмента AutoIt и вградените предупреждения.

  • Роля на прокси: Прокси сървърът е посредник, който добавя поверителност, сигурност и филтриране на съдържание.
  • 🔀 SOCKS срещу HTTP: SOCKS не интерпретира данни; HTTP прокси сървърът чете само HTTP заявки.
  • 🪟 Нативни изскачащи прозорци: Selenium не може да обработва диалози на операционната система, така че е необходима външна помощ.
  • 🛠️ Метод AutoIt: Компилиран AutoIt скрипт изпраща потребителското име и паролата към изскачащия прозорец.
  • 🚨 Метод за предупреждения: Преминете към предупреждението и изпратете идентификационните данни със sendKeys, след което ги приемете.

Управлявайте удостоверяването на прокси сървъра в Selenium уебдрайвер

Какво е прокси?

Проксито действа като посредник между клиентите, изпращащи заявки, и сървъра, който отговаря. Основната употреба на прокси е да поддържа поверителност и капсулиране между множество интерактивни системи.

Проксито може също така да добави още едно ниво на сигурност в мрежата, като действа като защитна стена между клиента и уеб сървърите. Това се използва особено, когато уебсайтовете, които клиентите използват, трябва да бъдат етикетирани като разрешени или блокирани въз основа на съдържанието на уебсайта.

Този процес е известен като „Филтриране на съдържание“ и се използва най-често в образователни институции, корпоративни офиси и т.н. Филтрирането на съдържание може лесно да се осъществи с помощта на прокси. От гледна точка на Интернет, проксито може да бъде внедрено като отделен сървър, който стои между клиентските машини и действителните отговарящи уеб сървъри или сървъри на бази данни.

Разлика между 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 Script Editor и добавете споменатия по-долу скрипт AutoIt в редактора Autoit и го запазете като „ProxyAuthentication.au3“ във вашата система

Компилирайте файла и го конвертирайте като „ProxyAuthentication.exe“.

In Eclipse, добавете файла AutoIt към Selenium Направете скрипт и стартирайте

По-долу е показан скриптът AutoIt за HTTP прокси удостоверяване

Send("guru99{ENTER}")
Send("guru99{ENTER}")

Трябва да предадете AutoIt файла за изпълнение на Selenium webdriver, използвайки кода по-долу

източник 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 Изход:

Обработка на предупреждения за потребителско име чрез 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();
    }
}

Code Продукция

Прокси удостоверяването е извършено успешно.

Code Обяснение:

  • Първоначално създавате екземпляр на драйвер на Chrome, като зададете свойството webdriver да посочи местоположението на файла chromedriver.exe
  • След това, вие отваряте URL на необходимия уебсайт чрез преминаване на URL като параметър на метода driver.get()
  • Веднъж URL се отвори, превключвате към предупреждението за потребителско име и изпращате потребителското име – guru99. След това щракнете върху бутона OK в предупреждението, използвайки метода alert.accept
  • След това превключвате към предупреждението за парола и изпращате паролата – guru99. След това щракнете върху бутона OK в предупреждението, като използвате метода alert.accept

Въпроси и Отговори

Можете да вграждате идентификационни данни като https://user:pass@site.com, но съвременният Chrome и Firefox блокирайте това от съображения за сигурност. Сигналите или разширенията на браузъра вече са по-надеждни за удостоверяване чрез прокси.

AutoIt автоматизира Windows контроли за настолни компютри, които Selenium не може да достигне, като например изскачащи прозорци за удостоверяване и диалози за качване на файлове. Компилирате AutoIt скрипт в изпълним файл и го извиквате от Selenium код.

Прокси сървърът пренасочва трафика към специфични приложения или браузъри, като основно скрива IP адреси или филтрира съдържание. VPN криптира целия трафик на устройството в цялата система, осигурявайки по-силна поверителност от стандартния прокси сървър.

Да. Инструментите за тестване, управлявани от изкуствен интелект, откриват диалози за удостоверяване, инжектират съхранени идентификационни данни и се самовъзстановяват, когато поведението на изскачащите прозорци се промени, намалявайки зависимостта от крехки AutoIt скриптове в различните браузъри.

Инструментите с изкуствен интелект интелигентно ротират прокси сървърите, откриват блокирани заявки и адаптират изчакванията при поява на подкани за удостоверяване. Тази автоматизация подобрява стабилността на тестовете за сайтове, разположени зад корпоративни или филтриращи съдържание прокси сървъри.

Да. Selenium 4 добави поддръжка за протокола Chrome DevTools, което ви позволява да задавате HTTP идентификационни данни програмно и да обработвате основно удостоверяване, избягвайки AutoIt за много прокси сценарии.

Обобщете тази публикация с: