Hvordan håndtere proxy-autentisering i Selenium Webdriver

⚡ Smart oppsummering

Proxy-autentisering i Selenium WebDriver håndterer popup-vinduet for påloggingsinformasjon som vises når en nettleser kobler seg til via en sikret proxy-server. Fordi Selenium kan ikke betjene innebygde dialogbokser direkte, to tilnærminger bruker AutoIt-verktøyet og innebygde varsler.

  • 🛡️ Proxy-rolle: En proxy er en mellommann som legger til personvern, sikkerhet og innholdsfiltrering.
  • 🔀 SOCKS vs. HTTP: SOCKS tolker ikke data; en HTTP-proxy leser bare HTTP-forespørsler.
  • 🪟 Innfødte popup-vinduer: Selenium kan ikke håndtere operativsystemdialoger, så ekstern hjelp er nødvendig.
  • 🛠️ AutoIt-metoden: Et kompilert AutoIt-skript sender brukernavnet og passordet til popup-vinduet.
  • 🚨 Varslingsmetode: Bytt til varselet og send påloggingsinformasjon med sendKeys, og godta deretter.

Håndter proxy-autentisering i Selenium webdriver

Hva er en fullmakt?

En proxy fungerer som en mellommann mellom klienter som sender forespørsler og server som svarer. Den primære bruken av en proxy er å opprettholde personvern og innkapsling mellom flere interaktive systemer.

En proxy kan også legge til et nytt lag med sikkerhet på nettet ved å fungere som en brannmur mellom klient og webservere. Dette brukes spesielt når nettstedene som klienter bruker må merkes som tillatt eller blokkert basert på innholdet på nettstedet.

Denne prosessen er kjent som "Innholdsfiltrering" og er mest brukt i utdanningsinstitusjoner, bedriftskontorer osv. Innholdsfiltrering kan enkelt utføres ved hjelp av en proxy. Når det gjelder Internett, kan en proxy implementeres som en separat server som står mellom klientmaskiner og faktiske web- eller databaseservere som svarer.

Forskjellen mellom SOCKS og HTTP Proxy

SOKKER HTTP-proxy
SOCKS står for sikrede stikkontakter. Den brukes vanligvis som en brannmur mellom klienten og serveren HTTP Proxy kan også brukes som en brannmur mellom klienten og serveren, men kan kun brukes for HTTP-forespørsler
SOCKS tolker ikke dataene som utveksles HTTP Proxy tolker dataene som utveksles mellom klienten og serveren
Tregere når det gjelder ytelse Bedre ytelse sammenlignet med SOCKS

Hvordan håndtere proxy i Selenium Webdriver i Chrome

HTTP Proxy-autentisering med Selenium i Chrome kan håndteres ved hjelp av følgende tilnærminger

  • Bruke AutoIt-verktøyet
  • Bruke varsler

Bruke AutoIt-verktøyet

AutoIt er et tredjepartsverktøy som brukes til automatisering av Windows-skrivebord. Selenium håndterer bare nettbaserte popup-vinduer og vinduer, håndtering av operativsystemkontroller er ikke mulig å bruke Selenium.

Dette krever bruk av eksterne tredjepartsverktøy som AutoIt som skal integreres med SeleniumTil det formålet brukes AutoIt oftest til å håndtere filopplastinger og filnedlastinger på nettsteder.

For å bruke AutoIt må du laste ned og installere AutoIt-programvaren på våre lokale maskiner.

Last ned en installasjon av AutoIt er dekket i Artikkel.

Åpne Programmer – Autoit-verktøy – SciTE Script Editor og legg til AutoIt-skriptet nedenfor i Autoit-editoren og lagre det som 'ProxyAuthentication.au3' i systemet ditt

Kompiler filen og konverter den som 'ProxyAuthentication.exe.'

In Eclipse, legg til AutoIt-filen i Selenium Skrip og kjør

Nedenfor er AutoIt-skriptet for HTTP-proxy-autentisering

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

Du må sende AutoIt-filen for utførelse på Selenium webdriver ved å bruke koden nedenfor

Kilde 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 Forklaring:

  • I det første trinnet initialiserer du en forekomst av Chrome-driveren ved å sette systemegenskapen til å peke på chromedriver.exe-filen
  • I det andre trinnet initialiserer du deretter et objekt av webdriveren og sender nettstedet URL bruker get-metoden
  • Til slutt sender du brukernavn og passord til HTTP Proxy-autentiseringspopupen ved hjelp av en AutoIt-skriptfil

Code Utgang:

Håndtering av brukernavnvarsler ved hjelp av AutoIt
Håndtering av brukernavnvarsler ved hjelp av AutoIt
Håndtering av passordvarsler ved hjelp av AutoIt

Håndtering av passordvarsler ved hjelp av AutoIt
Skjermbildet for suksess for proxy-autentisering

Skjermbildet for suksess for proxy-autentisering

Bruke varsler

Varsler er enkle, innebygde funksjoner levert av Selenium web-driver. Du kan håndtere popup-vinduer for proxy-autentisering ved å bruke Selenium webdriver ved å bytte til HTTP-proxy-autentiseringsvarslet og sende brukernavnet og passordet direkte til varselet. Ved hjelp av send nøkler metoden.

Eksempel:

Testscenario:

Håndter popup-vinduet for HTTP Proxy-autentisering på nettstedet: https://demo.guru99.com/test/basic_auth.php ved å bruke varsler i Selenium web-driver.

Eksempel på kildekode:

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 Produksjon

Proxy-autentisering utført.

Code Forklaring:

  • Til å begynne med instansierer du en forekomst av Chrome-driver ved å sette webdriver-egenskapen til å peke på plasseringen til chromedriver.exe-filen
  • Så åpner du URL av nødvendig nettsted ved å sende URL som en parameter til driver.get()-metoden
  • Gang URL åpnes, bytter du til brukernavnvarselet og sender brukernavnet – guru99. Deretter klikker du på OK-knappen på varselet ved å bruke alert.accept-metoden.
  • Deretter bytter du til passordvarselet og sender passordet – guru99. Du klikker deretter på OK-knappen på varselet ved å bruke alert.accept-metoden

Spørsmål og svar

Du kan legge inn påloggingsinformasjon som https://bruker:pass@site.com, men moderne Chrome og Firefox blokker dette av sikkerhetshensyn. Varsler eller nettleserutvidelser er nå mer pålitelige for proxy-autentisering.

AutoIt automatiserer Windows skrivebordskontroller som Selenium ikke kan nå, for eksempel popup-vinduer for innebygd autentisering og dialogbokser for filopplasting. Du kompilerer et AutoIt-skript til en kjørbar fil og kaller det fra Selenium kode.

En proxy omdirigerer trafikk for bestemte applikasjoner eller nettlesere, hovedsakelig ved å skjule IP-adresser eller filtrere innhold. En VPN krypterer all enhetstrafikk i hele systemet, noe som gir sterkere personvern enn en standard proxy.

Ja. AI-drevne testverktøy oppdager autentiseringsdialoger, injiserer lagret legitimasjon og reparerer seg selv når popup-oppførselen endres, noe som reduserer avhengigheten av sprø AutoIt-skript på tvers av nettlesere.

AI-verktøy roterer proxyer intelligent, oppdager blokkerte forespørsler og tilpasser ventetider når autentiseringsspørsmål vises. Denne automatiseringen forbedrer teststabiliteten for nettsteder bak bedrifts- eller innholdsfiltrerende proxyer.

Ja. Selenium 4 har lagt til støtte for Chrome DevTools Protocol, som lar deg angi HTTP-legitimasjon programmatisk og håndtere grunnleggende autentisering, og unngår AutoIt for mange proxy-scenarier.

Oppsummer dette innlegget med: