Hoe om te gaan met proxy-authenticatie in Selenium Webstuurprogramma

⚡ Slimme samenvatting

Proxy-authenticatie in Selenium WebDriver handelt de pop-up voor inloggegevens af die verschijnt wanneer een browser verbinding maakt via een beveiligde proxyserver. Selenium Omdat het niet mogelijk is om rechtstreeks met standaarddialoogvensters te werken, zijn er twee benaderingen: het gebruik van de AutoIt-tool en ingebouwde waarschuwingen.

  • 🛡️ Proxyrol: Een proxy is een tussenpersoon die extra privacy, beveiliging en contentfiltering biedt.
  • 🔀 SOCKS versus HTTP: SOCKS interpreteert geen gegevens; een HTTP-proxy leest alleen HTTP-verzoeken.
  • 🪟 Native pop-ups: Selenium Kan de dialoogvensters van het besturingssysteem niet afhandelen, dus is externe hulp nodig.
  • AutoIt-methode: Een gecompileerd AutoIt-script stuurt de gebruikersnaam en het wachtwoord naar het pop-upvenster.
  • 🚨 Waarschuwingsmethode: Schakel over naar de melding en verstuur de inloggegevens met sendKeys, en accepteer vervolgens.

Verwerk proxy-authenticatie in Selenium webdriver

Wat is een volmacht?

Een proxy fungeert als tussenpersoon tussen clients die verzoeken verzenden en de server die reageert. Het primaire gebruik van een proxy is het handhaven van de privacy en de inkapseling tussen meerdere interactieve systemen.

Een proxy kan ook een extra beveiligingslaag op internet toevoegen door als firewall tussen de client en de webservers te fungeren. Dit wordt vooral gebruikt wanneer de websites die klanten gebruiken moeten worden gelabeld als toegestaan ​​of geblokkeerd op basis van de website-inhoud.

Dit proces staat bekend als 'Inhoudsfiltering' en wordt het meest gebruikt in onderwijsinstellingen, bedrijfskantoren, enz. Inhoudsfiltering kan eenvoudig worden uitgevoerd met behulp van een proxy. In termen van internet kan een proxy worden geïmplementeerd als een afzonderlijke server die tussen clientmachines en daadwerkelijke web- of databaseservers staat die reageren.

Verschil tussen SOCKS en HTTP-proxy

SOCKS Http-proxy
SOCKS staat voor beveiligde stopcontacten. Het wordt doorgaans gebruikt als firewall tussen de client en de server HTTP Proxy kan ook worden gebruikt als firewall tussen de client en de server, maar kan alleen worden gebruikt voor HTTP-verzoeken
SOCKS interpreteert de uitgewisselde gegevens niet HTTP Proxy interpreteert de gegevens die worden uitgewisseld tussen de client en de server
Langzamer qua prestaties Betere prestaties vergeleken met SOCKS

Hoe u met proxy omgaat Selenium Webstuurprogramma in Chrome

HTTP-proxyverificatie met Selenium in Chrome kan worden afgehandeld met behulp van de volgende benaderingen

  • Het AutoIt-programma gebruiken
  • Waarschuwingen gebruiken

Het AutoIt-programma gebruiken

AutoIt is een tool van derden die wordt gebruikt voor het automatiseren van Windows-desktops. Selenium verwerkt alleen webgebaseerde pop-ups en vensters, het verwerken van besturingselementen van het besturingssysteem is niet mogelijk met behulp van Selenium.

Dit vereist het gebruik van externe tools van derden, zoals AutoIt, die geïntegreerd moeten worden met SeleniumDaarom wordt AutoIt het meest gebruikt voor het afhandelen van het uploaden en downloaden van bestanden op websites.

Om AutoIt te gebruiken, moet u de AutoIt-software downloaden en installeren op uw lokale computer.

Het downloaden en installeren van AutoIt wordt in dit artikel behandeld. dit artikel.

Open Programma's – Autoit tool – SciTE Script Editor en voeg het hieronder genoemde AutoIt-script toe in de Autoit-editor en sla het op als 'ProxyAuthentication.au3' in uw systeem

Compileer het bestand en converteer het naar 'ProxyAuthentication.exe.'

In Eclipse, voeg het AutoIt-bestand toe aan Selenium Scripten en uitvoeren

Hieronder staat het AutoIt-script voor HTTP-proxy-authenticatie.

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

Je moet het AutoIt-bestand doorgeven voor uitvoering. Selenium webdriver met behulp van de onderstaande code

Bron 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 Uitleg:

  • In de eerste stap initialiseert u een exemplaar van het Chrome-stuurprogramma door de systeemeigenschap zo in te stellen dat deze naar het bestand chromedriver.exe verwijst
  • In de tweede stap initialiseer je een webdriver-object en geef je de website door. URL met behulp van de get-methode
  • Tot slot geef je de gebruikersnaam en het wachtwoord door aan de authenticatiepop-up van de HTTP-proxy met behulp van een AutoIt-scriptbestand.

Code Output:

Gebruikersnaamwaarschuwingen afhandelen met AutoIt
Gebruikersnaamwaarschuwingen afhandelen met AutoIt
Wachtwoordwaarschuwingen afhandelen met AutoIt

Wachtwoordwaarschuwingen afhandelen met AutoIt
Successcherm voor proxyverificatie

Successcherm voor proxyverificatie

Waarschuwingen gebruiken

Waarschuwingen zijn eenvoudig, ingebouwde functie van Selenium webstuurprogramma. U kunt pop-ups voor proxyverificatie afhandelen met behulp van Selenium webstuurprogramma door over te schakelen naar de HTTP-proxyverificatiewaarschuwing en de gebruikersnaam en het wachtwoord rechtstreeks door te geven aan de waarschuwing. Met behulp van de verzendsleutelmethode.

Voorbeeld:

Testscenario:

Behandel de HTTP Proxy-verificatiepop-up op de website: https://demo.guru99.com/test/basic_auth.php met behulp van waarschuwingen in Selenium webstuurprogramma.

Broncode Voorbeeld:

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 uitgang

Proxy-authenticatie is succesvol uitgevoerd.

Code Uitleg:

  • In eerste instantie maakt u een exemplaar van het Chrome-stuurprogramma door de eigenschap webdriver zo in te stellen dat deze verwijst naar de locatie van het bestand chromedriver.exe
  • Vervolgens opent u de URL van de vereiste website door de URL als parameter voor de driver.get()-methode
  • Eens URL Als het venster geopend is, ga je naar de gebruikersnaamwaarschuwing en verstuur je de gebruikersnaam – guru99. Vervolgens klik je op de OK-knop in de waarschuwing met behulp van de alert.accept-methode.
  • Vervolgens schakelt u over naar de wachtwoordwaarschuwing en verzendt u het wachtwoord – guru99. Vervolgens klikt u op de knop OK bij de waarschuwing met behulp van de alert.accept-methode

Veelgestelde vragen

Je kunt inloggegevens insluiten als https://user:pass@site.com, maar moderne Chrome-browsers en Firefox Blokkeer dit om veiligheidsredenen. Waarschuwingen of browserextensies zijn nu betrouwbaarder voor proxy-authenticatie.

AutoIt automatiseert Windows bureaubladbesturingselementen die Selenium niet bereikbaar, zoals native authenticatiepop-ups en dialoogvensters voor het uploaden van bestanden. Je compileert een AutoIt-script tot een uitvoerbaar bestand en roept het aan vanuit Selenium code.

Een proxy leidt verkeer om voor specifieke applicaties of browsers, voornamelijk om IP-adressen te verbergen of content te filteren. Een VPN versleutelt al het apparaatverkeer systeembreed, wat een betere privacy biedt dan een standaardproxy.

Ja. Door AI aangedreven testtools detecteren authenticatiedialoogvensters, injecteren opgeslagen inloggegevens en herstellen zichzelf wanneer het gedrag van pop-ups verandert, waardoor de afhankelijkheid van kwetsbare AutoIt-scripts in verschillende browsers wordt verminderd.

AI-tools wisselen op intelligente wijze proxy's, detecteren geblokkeerde verzoeken en passen de wachttijden aan wanneer authenticatieprompts verschijnen. Deze automatisering verbetert de teststabiliteit voor sites achter bedrijfs- of contentfilterproxy's.

Ja. Selenium Versie 4 voegde ondersteuning toe voor het Chrome DevTools Protocol, waardoor je HTTP-referenties programmatisch kunt instellen en basisauthenticatie kunt afhandelen, wat AutoIt overbodig maakt in veel proxyscenario's.

Vat dit bericht samen met: