Come gestire l'autenticazione proxy in Selenium Webdriver
โก Riepilogo intelligente
Autenticazione proxy in Selenium WebDriver gestisce il popup delle credenziali che appare quando un browser si connette tramite un server proxy protetto. Perchรฉ Selenium Non รจ possibile interagire direttamente con le finestre di dialogo native; due approcci prevedono l'utilizzo dello strumento AutoIt e degli avvisi integrati.

Che cos'รจ un proxy?
Un proxy funge da intermediario tra i client che inviano richieste e il server che risponde. L'uso principale di un proxy รจ mantenere la privacy e l'incapsulamento tra piรน sistemi interattivi.
Un proxy puรฒ anche aggiungere un ulteriore livello di sicurezza sul Web fungendo da firewall tra il client e i server Web. Viene utilizzato soprattutto quando i siti Web utilizzati dai clienti devono essere etichettati come consentiti o bloccati in base al contenuto del sito Web.
Questo processo รจ noto come "Filtro dei contenuti" ed รจ piรน comunemente utilizzato negli istituti scolastici, negli uffici aziendali, ecc. Il filtraggio dei contenuti puรฒ essere facilmente realizzato con l'aiuto di un proxy. In termini di Internet, un proxy puรฒ essere implementato come un server separato che si trova tra le macchine client e gli effettivi server Web o database che rispondono.
Differenza tra SOCKS e proxy HTTP
| SOCKS | Proxy HTTP |
|---|---|
| SOCKS sta per prese protette. Viene generalmente utilizzato come firewall tra il client e il server | Il proxy HTTP puรฒ essere utilizzato anche come firewall tra il client e il server, ma puรฒ essere utilizzato solo per le richieste HTTP |
| SOCKS non interpreta i dati scambiati | Il proxy HTTP interpreta i dati scambiati tra il client e il server |
| Piรน lento in termini di prestazioni | Prestazioni migliori rispetto ai SOCKS |
Come gestire il proxy in Selenium Driver web in Chrome
Autenticazione proxy HTTP con Selenium in Chrome puรฒ essere gestito utilizzando i seguenti approcci
- Utilizzo dello strumento AutoIt
- Utilizzo degli avvisi
Utilizzo dello strumento AutoIt
AutoIt รจ uno strumento di terze parti utilizzato per l'automazione del desktop Windows. Selenium gestisce solo popup e finestre basati sul Web, la gestione dei controlli del sistema operativo non รจ possibile utilizzando Selenium.
Ciรฒ richiede l'utilizzo di strumenti esterni di terze parti come AutoIt da integrare con SeleniumPer questo motivo, AutoIt viene comunemente utilizzato per gestire il caricamento e il download di file sui siti web.
Per utilizzare AutoIt, รจ necessario scaricare e installare il software AutoIt sui propri computer locali.
Scaricare e installare AutoIt รจ trattato nel articolo.
Apri Programmi โ Strumento Autoit โ SciTE Script Editor e aggiungi lo script AutoIt menzionato di seguito nell'editor Autoit e salvalo come "ProxyAuthentication.au3" nel tuo sistema
Compila il file e convertilo come "ProxyAuthentication.exe".
In Eclipse, aggiungi il file AutoIt a Selenium Scrivi ed esegui
Di seguito รจ riportato lo script AutoIt per l'autenticazione tramite proxy HTTP.
Send("guru99{ENTER}") Send("guru99{ENTER}")
ร necessario passare il file AutoIt per l'esecuzione su Selenium webdriver utilizzando il codice seguente
Fonte 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 Spiegazione:
- Nel primo passaggio, stai inizializzando un'istanza del driver Chrome impostando la proprietร di sistema in modo che punti al file chromedriver.exe
- Nel secondo passaggio, si inizializza un oggetto del driver web e si passa il sito web URL utilizzando il metodo get
- Infine, stai passando nome utente e password al popup di autenticazione HTTP Proxy utilizzando un file di script AutoIt.
Code Produzione:

Utilizzo degli avvisi
Gli avvisi sono funzionalitร semplici e integrate fornite da Selenium driver web. ร possibile gestire i popup di autenticazione proxy utilizzando Selenium web driver passando all'avviso di autenticazione proxy HTTP e passando il nome utente e la password direttamente all'avviso. Con l'aiuto del metodo di invio delle chiavi.
Esempio:
Scenario di prova:
Gestisci il popup di autenticazione del proxy HTTP sul sito web: https://demo.guru99.com/test/basic_auth.php utilizzando Avvisi in Selenium driver web.
Esempio di codice sorgente:
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 Uscita
Autenticazione proxy eseguita correttamente.
Code Spiegazione:
- Inizialmente, stai creando un'istanza del driver Chrome impostando la proprietร webdriver in modo che indichi la posizione del file chromedriver.exe
- Quindi, stai aprendo il URL del sito web richiesto passando il URL come parametro del metodo driver.get()
- Quando URL viene aperto, stai passando all'avviso del nome utente e inviando il nome utente โ guru99. Quindi fai clic sul pulsante OK nell'avviso utilizzando il metodo alert.accept
- Quindi, passerai all'avviso password e invierai la password: guru99. Quindi fai clic sul pulsante OK sull'avviso utilizzando il metodo alert.accept
