Cum să gestionați autentificarea proxy în Selenium Webdriver

⚡ Rezumat inteligent

Autentificare proxy în Selenium WebDriver gestionează fereastra pop-up cu acreditări care apare atunci când un browser se conectează printr-un server proxy securizat. Deoarece Selenium nu poate opera direct dialogurile native, există două abordări care utilizează instrumentul AutoIt și alertele încorporate.

  • 🛡️ Rol de proxy: Un proxy este un intermediar care adaugă confidențialitate, securitate și filtrare a conținutului.
  • 🔀 SOCKS vs. HTTP: SOCKS nu interpretează datele; un proxy HTTP citește doar cererile HTTP.
  • 🪟 Ferestre pop-up native: Selenium nu poate gestiona dialogurile sistemului de operare, așa că este necesar ajutor extern.
  • 🛠️ Metoda AutoIt: Un script AutoIt compilat trimite numele de utilizator și parola către fereastra pop-up.
  • ???? Metoda de alerte: Comutați la alertă și trimiteți credențialele cu sendKeys, apoi acceptați.

Gestionarea autentificării proxy în Selenium webdriver

Ce este un proxy?

Un proxy acționează ca un intermediar între clienții care trimit cereri și serverul care răspunde. Utilizarea principală a unui proxy este menținerea confidențialității și încapsulării între mai multe sisteme interactive.

Un proxy poate adăuga, de asemenea, un alt nivel de securitate pe web, acționând ca un firewall între client și serverele web. Acest lucru este utilizat în special atunci când site-urile web pe care le folosesc clienții trebuie să fie etichetate ca permise sau blocate pe baza conținutului site-ului.

Acest proces este cunoscut sub numele de „Filtrare de conținut” și este cel mai frecvent utilizat în instituții de învățământ, birouri corporative etc. Filtrarea conținutului poate fi realizată cu ușurință cu ajutorul unui proxy. În ceea ce privește internetul, un proxy poate fi implementat ca un server separat, care se află între mașinile client și serverele web sau baze de date reale care răspund.

Diferența dintre SOCKS și HTTP Proxy

SOCKS Http proxy
SOCKS înseamnă prize securizate. Este folosit în general ca firewall între client și server HTTP Proxy poate fi folosit și ca firewall între Client și server, dar poate fi folosit numai pentru solicitări HTTP
SOCKS nu interpretează datele care sunt schimbate HTTP Proxy interpretează datele schimbate între client și server
Mai lent din punct de vedere al performanței Performanță mai bună în comparație cu SOCKS

Cum să gestionați proxy în Selenium Webdriver în Chrome

Autentificare proxy HTTP cu Selenium în Chrome poate fi gestionat folosind următoarele abordări

  • Utilizarea instrumentului AutoIt
  • Utilizarea alertelor

Utilizarea instrumentului AutoIt

AutoIt este un instrument terț utilizat pentru automatizarea desktopului Windows. Deoarece Selenium gestionează numai ferestrele pop-up și ferestre bazate pe web, gestionarea controalelor sistemului de operare nu este posibilă Selenium.

Acest lucru necesită utilizarea unor instrumente externe de la terți, cum ar fi AutoIt, pentru a fi integrate cu SeleniumPentru aceasta, AutoIt este cel mai frecvent utilizat pentru gestionarea încărcărilor și descărcărilor de fișiere pe site-uri web.

Pentru a utiliza AutoIt, trebuie să descărcați și să instalați software-ul AutoIt pe computerele noastre locale.

Descărcarea unei instalări AutoIt este acoperită în articol.

Deschideți Programe – Instrument Autoit – Editor de scripturi SciTE și adăugați scriptul AutoIt menționat mai jos în editorul Autoit și salvați-l ca „ProxyAuthentication.au3” în sistemul dvs.

Compilați fișierul și convertiți-l ca „ProxyAuthentication.exe”.

In Eclipse, adăugați fișierul AutoIt la Selenium Scrieți și rulați

Mai jos este scriptul AutoIt pentru autentificarea prin proxy HTTP

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

Trebuie să transmiteți fișierul AutoIt pentru execuție pe Selenium webdriver folosind codul de mai jos

Sursa 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 Explicaţie:

  • În primul pas, inițializați o instanță a driverului Chrome setând proprietatea sistemului pentru a indica fișierul chromedriver.exe
  • În al doilea pas, inițializați un obiect al driverului web și transmiteți site-ului web URL folosind metoda get
  • În cele din urmă, transmiteți numele de utilizator și parola către fereastra pop-up de autentificare HTTP Proxy folosind un fișier script AutoIt.

Code ieșire:

Gestionarea alertelor de nume de utilizator folosind AutoIt
Gestionarea alertelor de nume de utilizator folosind AutoIt
Gestionarea alertelor prin parolă folosind AutoIt

Gestionarea alertelor prin parolă folosind AutoIt
Ecran de succes a autentificării proxy

Ecran de succes a autentificării proxy

Utilizarea alertelor

Alertele sunt o caracteristică simplă, încorporată oferită de Selenium driver web. Puteți gestiona ferestrele pop-up de autentificare proxy folosind Selenium driver web prin trecerea la alerta de autentificare proxy HTTP și prin transmiterea numelui de utilizator și a parolei direct în alertă. Cu ajutorul metodei trimite chei.

Exemplu:

Scenariul de testare:

Gestionați fereastra pop-up de autentificare HTTP Proxy de pe site: https://demo.guru99.com/test/basic_auth.php folosind Alerte în Selenium driver web.

Cod sursă Exemplu:

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 producție

Autentificare proxy realizată cu succes.

Code Explicaţie:

  • Inițial, instanțiați o instanță a driverului Chrome setând proprietatea webdriver pentru a indica locația fișierului chromedriver.exe
  • Apoi, deschizi URL a site-ului web necesar prin trecerea URL ca parametru al metodei driver.get()
  • Odată URL se deschide. Treceți la alerta privind numele de utilizator și trimiteți numele de utilizator – guru99. Apoi faceți clic pe butonul OK din alertă folosind metoda alert.accept.
  • Apoi, treceți la alerta de parolă și trimiteți parola – guru99. Apoi faceți clic pe butonul OK din alertă folosind metoda alert.accept

Întrebări frecvente

Puteți încorpora credențiale ca https://user:pass@site.com, dar Chrome modern și Firefox Blochează acest lucru din motive de securitate. Alertele sau extensiile de browser sunt acum mai fiabile pentru autentificarea proxy.

AutoIt automatizează Windows controalele desktop care Selenium nu poate ajunge, cum ar fi ferestrele pop-up de autentificare nativă și dialogurile de încărcare a fișierelor. Compilați un script AutoIt într-un executabil și îl apelați din Selenium cod.

Un proxy redirecționează traficul pentru anumite aplicații sau browsere, ascunzând în principal adresele IP sau filtrând conținutul. Un VPN criptează tot traficul dispozitivului la nivel de sistem, oferind o confidențialitate mai puternică decât un proxy standard.

Da. Instrumentele de testare bazate pe inteligență artificială detectează dialogurile de autentificare, injectează acreditările stocate și se auto-repară atunci când comportamentul ferestrelor pop-up se modifică, reducând dependența de scripturile AutoIt fragile în diferite browsere.

Instrumentele de inteligență artificială rotesc proxy-urile în mod inteligent, detectează solicitările blocate și adaptează așteptările atunci când apar solicitări de autentificare. Această automatizare îmbunătățește stabilitatea testelor pentru site-urile din spatele proxy-urilor corporative sau de filtrare a conținutului.

Da. Selenium Versiunea 4 a adăugat suport pentru protocolul Chrome DevTools, permițându-vă să setați programatic acreditările HTTP și să gestionați autentificarea de bază, evitând AutoIt pentru multe scenarii de proxy.

Rezumați această postare cu: