Sådan håndteres proxygodkendelse i Selenium Webdriver

⚡ Smart opsummering

Proxy-godkendelse i Selenium WebDriver håndterer popup-vinduet med legitimationsoplysninger, der vises, når en browser opretter forbindelse via en sikret proxyserver. Fordi Selenium kan ikke betjene native dialoger direkte, bruger to tilgange AutoIt-værktøjet og indbyggede alarmer.

  • 🛡️ Proxy-rolle: En proxy er en mellemmand, der tilføjer privatliv, sikkerhed og indholdsfiltrering.
  • 🔀 SOCKS vs. HTTP: SOCKS fortolker ikke data; en HTTP-proxy læser kun HTTP-anmodninger.
  • 🪟 Indfødte popups: Selenium kan ikke håndtere operativsystemets dialogbokse, så ekstern hjælp er nødvendig.
  • 🛠️ AutoIt-metode: Et kompileret AutoIt-script sender brugernavn og adgangskode til pop op-vinduet.
  • ???? Alarmmetode: Skift til alarmen, send legitimationsoplysninger med sendKeys, og accepter derefter.

Håndter proxy-godkendelse i Selenium webdriver

Hvad er en proxy?

En proxy fungerer som en mellemmand mellem klienter, der sender anmodninger, og server, der svarer. Den primære brug af en proxy er at opretholde privatlivets fred og indkapsling mellem flere interaktive systemer.

En proxy kan også tilføje endnu et sikkerhedslag på nettet ved at fungere som en firewall mellem klient og webservere. Dette bruges især, når de websteder, som kunder bruger, skal mærkes som tilladte eller blokerede baseret på webstedets indhold.

Denne proces er kendt som 'indholdsfiltrering' og er mest almindeligt brugt i uddannelsesinstitutioner, virksomhedskontorer osv. Indholdsfiltrering kan nemt udføres ved hjælp af en proxy. Med hensyn til internettet kan en proxy implementeres som en separat server, der står mellem klientmaskiner og faktiske web- eller databaseservere, der svarer.

Forskellen mellem SOCKS og HTTP Proxy

SOKKER HTTP Proxy
SOCKS står for sikrede stikkontakter. Det bruges generelt som en firewall mellem klienten og serveren HTTP Proxy kan også bruges som en firewall mellem klienten og serveren, men kan kun bruges til HTTP-anmodninger
SOCKS fortolker ikke de data, der udveksles HTTP Proxy fortolker de data, der udveksles mellem klienten og serveren
Langsommere med hensyn til ydeevne Bedre ydeevne sammenlignet med SOCKS

Sådan håndteres proxy i Selenium Webdriver i Chrome

HTTP Proxy-godkendelse med Selenium i Chrome kan håndteres ved hjælp af følgende fremgangsmåder

  • Brug af AutoIt-værktøjet
  • Brug af alarmer

Brug af AutoIt-værktøjet

AutoIt er et tredjepartsværktøj, der bruges til automatisering af Windows-skriveborde. Selenium håndterer kun webbaserede popup-vinduer og vinduer, håndtering af styresystemkontroller er ikke muligt at bruge Selenium.

Dette kræver integration af eksterne tredjepartsværktøjer, såsom AutoIt. SeleniumTil det formål bruges AutoIt oftest til at håndtere filuploads og fildownloads på websteder.

For at bruge AutoIt skal du downloade og installere AutoIt-softwaren på vores lokale maskiner.

Download og installation af AutoIt er dækket i artikel.

Åbn Programmer – Autoit-værktøj – SciTE Script Editor og tilføj nedenstående AutoIt-script i Autoit-editoren og gem det som 'ProxyAuthentication.au3' i dit system

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

In Eclipse, tilføj AutoIt-filen til Selenium Script og kør

Nedenfor er AutoIt-scriptet til HTTP-proxygodkendelse

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

Du skal sende AutoIt-filen til udførelse på Selenium webdriver ved hjælp af nedenstående kode

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 trin initialiserer du en forekomst af Chrome-driver ved at indstille systemegenskaben til at pege på filen chromedriver.exe
  • I andet trin initialiserer du derefter et objekt af webdriveren og sender webstedet URL ved hjælp af get-metoden
  • Endelig sender du brugernavn og adgangskode til HTTP Proxy-godkendelsespopup ved hjælp af en AutoIt-scriptfil.

Code Output:

Håndtering af brugernavnsalarmer ved hjælp af AutoIt
Håndtering af brugernavnsalarmer ved hjælp af AutoIt
Håndtering af adgangskodealarmer ved hjælp af AutoIt

Håndtering af adgangskodealarmer ved hjælp af AutoIt
Proxy-godkendelsessuccesskærm

Proxy-godkendelsessuccesskærm

Brug af alarmer

Advarsler er enkle, indbyggede funktioner leveret af Selenium web driver. Du kan håndtere proxy-godkendelses-popups vha Selenium webdriver ved at skifte til HTTP-proxy-godkendelsesadvarslen og videregive brugernavnet og adgangskoden direkte til advarslen. Ved hjælp af send nøgler metode.

Eksempel:

Testscenarie:

Håndter HTTP Proxy-godkendelses-popup'en på webstedet: https://demo.guru99.com/test/basic_auth.php ved at bruge Alerts i Selenium web driver.

Kildekode eksempel:

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 Produktion

Proxygodkendelse udført.

Code Forklaring:

  • I første omgang instansierer du en forekomst af Chrome-driver ved at indstille webdriver-egenskaben til at pege på placeringen af ​​chromedriver.exe-filen
  • Så åbner du URL af det krævede websted ved at videregive URL som en parameter til driver.get() metoden
  • Når URL åbnes, skifter du til brugernavnsalarmen og sender brugernavnet – guru99. Du klikker derefter på OK-knappen i alarmen ved hjælp af alert.accept-metoden.
  • Derefter skifter du til adgangskodealarmen og sender adgangskoden - guru99. Du klikker derefter på OK-knappen på advarslen ved hjælp af alert.accept-metoden

Ofte Stillede Spørgsmål

Du kan integrere legitimationsoplysninger som https://bruger:pass@site.com, men moderne Chrome og Firefox Bloker dette af sikkerhedsmæssige årsager. Advarsler eller browserudvidelser er nu mere pålidelige til proxy-godkendelse.

AutoIt automatiserer Windows skrivebordskontroller, der Selenium ikke kan nå, såsom popup-vinduer til native godkendelser og dialogbokse til filupload. Du kompilerer et AutoIt-script til en eksekverbar fil og kalder det fra Selenium kode.

En proxy omdirigerer trafik til bestemte applikationer eller browsere, primært ved at skjule IP-adresser eller filtrere indhold. En VPN krypterer al enhedstrafik på tværs af systemet, hvilket giver stærkere privatliv end en standardproxy.

Ja. AI-drevne testværktøjer registrerer godkendelsesdialoger, indsætter gemte legitimationsoplysninger og reparerer sig selv, når pop op-vinduers adfærd ændrer sig, hvilket reducerer afhængigheden af ​​skrøbelige AutoIt-scripts på tværs af browsere.

AI-værktøjer roterer intelligent proxyer, registrerer blokerede anmodninger og tilpasser ventetider, når der vises godkendelsesprompter. Denne automatisering forbedrer teststabiliteten for websteder bag virksomheds- eller indholdsfiltrerende proxyer.

Ja. Selenium 4 har tilføjet understøttelse af Chrome DevTools Protocol, så du kan indstille HTTP-legitimationsoplysninger programmatisk og håndtere grundlæggende godkendelse, hvilket undgår AutoIt i mange proxy-scenarier.

Opsummer dette indlæg med: