Jak zacházet s ověřováním proxy v Selenium Webdriver

⚡ Chytré shrnutí

Ověřování proxy v Selenium WebDriver zpracovává vyskakovací okno s přihlašovacími údaji, které se zobrazí, když se prohlížeč připojí přes zabezpečený proxy server. Protože Selenium Nelze přímo ovládat nativní dialogy, dva přístupy používají nástroj AutoIt a vestavěná upozornění.

  • 🛡️ Proxy role: Proxy je zprostředkovatel, který přidává soukromí, zabezpečení a filtrování obsahu.
  • 🔀 SOCKS vs. HTTP: SOCKS neinterpretuje data; HTTP proxy čte pouze HTTP požadavky.
  • 🪟 Nativní vyskakovací okna: Selenium Neumí zpracovat dialogová okna operačního systému, takže je nutná externí pomoc.
  • 🛠️ Metoda AutoIt: Zkompilovaný skript AutoIt odešle uživatelské jméno a heslo do vyskakovacího okna.
  • ???? Metoda upozornění: Přepněte na upozornění a odešlete přihlašovací údaje pomocí sendKeys a poté je přijměte.

Zpracovat ověřování proxy v Selenium webový ovladač

Co je proxy?

Proxy funguje jako prostředník mezi klienty odesílajícími požadavky a odpovědí serveru. Primárním použitím proxy je zachování soukromí a zapouzdření mezi více interaktivními systémy.

Proxy může také přidat další vrstvu zabezpečení na webu tím, že funguje jako firewall mezi klientem a webovými servery. To se používá zejména tehdy, když webové stránky, které klienti používají, musí být označeny jako povolené nebo blokované na základě obsahu webových stránek.

Tento proces je známý jako „filtrování obsahu“ a nejčastěji se používá ve vzdělávacích institucích, firemních kancelářích atd. Filtrování obsahu lze snadno provést pomocí proxy serveru. V podmínkách internetu může být proxy implementován jako samostatný server, který stojí mezi klientskými stroji a skutečnými webovými nebo databázovými servery, které reagují.

Rozdíl mezi SOCKS a HTTP Proxy

SOCKS HTTP proxy
SOCKS znamená zabezpečené zásuvky. Obecně se používá jako firewall mezi klientem a serverem HTTP Proxy lze také použít jako firewall mezi klientem a serverem, ale lze jej použít pouze pro požadavky HTTP
SOCKS neinterpretuje vyměňovaná data HTTP Proxy interpretuje data vyměňovaná mezi klientem a serverem
Výkonově pomalejší Lepší výkon ve srovnání s SOCKS

Jak zacházet s proxy v Selenium Webdriver v Chrome

HTTP proxy ověřování s Selenium v Chrome lze zpracovat pomocí následujících přístupů

  • Použití nástroje AutoIt
  • Použití upozornění

Použití nástroje AutoIt

AutoIt je nástroj třetí strany, který se používá pro automatizaci plochy systému Windows. Od té doby Selenium zpracovává pouze webová vyskakovací okna a okna, manipulace s ovládacími prvky operačního systému není možná Selenium.

To vyžaduje použití externích nástrojů třetích stran, jako je AutoIt, k integraci s SeleniumProto se AutoIt nejčastěji používá pro zpracování nahrávání a stahování souborů na webových stránkách.

Chcete-li používat AutoIt, musíte si stáhnout a nainstalovat software AutoIt na naše lokální počítače.

Stažení instalace AutoIt je popsáno v článek.

Otevřete Programy – Nástroj Autoit – Editor skriptů SciTE a přidejte níže uvedený skript AutoIt do editoru Autoit a uložte jej do systému jako „ProxyAuthentication.au3“

Zkompilujte soubor a převeďte jej jako 'ProxyAuthentication.exe.'

In Eclipse, přidejte soubor AutoIt do Selenium Skriptujte a spusťte

Níže je uveden skript AutoIt pro ověřování HTTP Proxy

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

Pro spuštění je potřeba předat soubor AutoIt. Selenium webdriver pomocí níže uvedeného kódu

Zdroj 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 Vysvětlení:

  • V prvním kroku inicializujete instanci ovladače Chrome nastavením systémové vlastnosti tak, aby ukazovala na soubor chromedriver.exe
  • Ve druhém kroku inicializujete objekt webového ovladače a předáte mu webovou stránku. URL pomocí metody get
  • Nakonec předáváte uživatelské jméno a heslo do vyskakovacího okna ověřování HTTP Proxy pomocí souboru skriptu AutoIt.

Code Výstup:

Zpracování upozornění na uživatelské jméno pomocí AutoIt
Zpracování upozornění na uživatelské jméno pomocí AutoIt
Zpracování ochrany hesla pomocí AutoIt

Zpracování ochrany hesla pomocí AutoIt
Obrazovka úspěšného ověření proxy

Obrazovka úspěšného ověření proxy

Použití upozornění

Upozornění jsou jednoduché, vestavěné funkce poskytované Selenium webový ovladač. Vyskakovací okna ověřování proxy můžete zpracovávat pomocí Selenium webový ovladač přepnutím na výstrahu ověřování HTTP proxy a předáním uživatelského jména a hesla přímo výstrahě. S pomocí metody odesílání klíčů.

Příklad:

Scénář testu:

Zpracujte vyskakovací okno ověřování HTTP Proxy na webu: https://demo.guru99.com/test/basic_auth.php pomocí Upozornění v Selenium webový ovladač.

Příklad zdrojového kódu:

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 Výstup

Ověření proxy bylo úspěšně provedeno.

Code Vysvětlení:

  • Zpočátku vytváříte instanci ovladače Chrome nastavením vlastnosti webdriver tak, aby ukazovala umístění souboru chromedriver.exe
  • Pak otevíráte URL požadované webové stránky předáním URL jako parametr metody driver.get()
  • Jednou URL se otevře, přepnete na upozornění na uživatelské jméno a odešlete uživatelské jméno – guru99. Poté kliknete na tlačítko OK v upozornění pomocí metody alert.accept
  • Poté přecházíte na upozornění na heslo a posíláte heslo – guru99. Poté kliknete na tlačítko OK na upozornění pomocí metody alert.accept

Nejčastější dotazy

Přihlašovací údaje můžete vložit jako https://user:pass@site.com, ale moderní Chrome a Firefox Z bezpečnostních důvodů toto zablokujte. Upozornění nebo rozšíření prohlížeče jsou nyní pro ověřování proxy spolehlivější.

AutoIt automatizuje Windows ovládací prvky na ploše, které Selenium nedosažitelné, jako jsou vyskakovací okna pro nativní ověřování a dialogy pro nahrávání souborů. Skript AutoIt zkompilujete do spustitelného souboru a zavoláte ho z Selenium kód.

Proxy server přesměrovává provoz pro konkrétní aplikace nebo prohlížeče, zejména skrývá IP adresy nebo filtruje obsah. VPN šifruje veškerý provoz zařízení v celém systému, což poskytuje větší soukromí než standardní proxy.

Ano. Testovací nástroje založené na umělé inteligenci detekují ověřovací dialogy, vkládají uložené přihlašovací údaje a samy se opravují při změnách chování vyskakovacích oken, čímž snižují závislost na křehkých skriptech AutoIt v různých prohlížečích.

Nástroje umělé inteligence inteligentně rotují proxy, detekují blokované požadavky a upravují čekání při zobrazení výzev k ověření. Tato automatizace zlepšuje stabilitu testů pro weby za firemními proxy nebo proxy s filtrováním obsahu.

Ano. Selenium Verze 4 přidala podporu protokolu Chrome DevTools, která umožňuje programově nastavit přihlašovací údaje HTTP a zvládat základní ověřování, čímž se v mnoha scénářích proxy vyhnete automatickému ověřování (AutoIt).

Shrňte tento příspěvek takto: