Come gestire l'autenticazione proxy in Selenium Webdriver
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
- Utilizzando lo strumento AutoIT
- Utilizzo degli avvisi
Utilizzando lo strumento AutoIT
Auto IT è uno strumento di terze parti che viene utilizzato per l'automazione del desktop di Windows. Poiché Selenium gestisce solo popup e finestre basati sul Web, la gestione dei controlli del sistema operativo non è possibile utilizzando Selenium.
Ciò richiede l'uso di strumenti esterni di terze parti come Auto IT con cui integrarsi Selenium. Per questo, Auto IT viene comunemente utilizzato per gestire caricamenti e download di file sui siti Web.
Per utilizzare AutoIT, è necessario scaricare e installare il software AutoIT sui nostri computer locali.
Il download di un'installazione di 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 Auto IT a Selenium Scrivi ed esegui
Di seguito è riportato lo script AutoIT per l'autenticazione proxy HTTP
Send("guru99{ENTER}") Send("guru99{ENTER}")
È necessario trasmettere il file Auto IT per l'esecuzione Selenium webdriver utilizzando il codice seguente
Codice sorgente:
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("http://demo.guru99.com/test/basic_auth.php"); //Passing the AutoIt Script to Selenium Runtime.getRuntime().exec("D:\\Data_Personal\\ProxyAuthentication.exe"); } }
Spiegazione del codice:
- 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, inizializzi un oggetto del driver Web e passi l'URL del sito Web utilizzando il metodo get
- Infine, stai passando nome utente e password al popup di autenticazione del proxy HTTP utilizzando un file di script AutoIT
Uscita codice:
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("http://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(); } }
Uscita del codice
Autenticazione proxy eseguita correttamente.
Spiegazione del codice:
- 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 l'URL del sito Web richiesto passando l'URL come parametro al metodo driver.get()
- Una volta aperto l'URL, passi all'avviso nome utente e invii il nome utente: guru99. Quindi fai clic sul pulsante OK sull'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
Sommario
- Un proxy funge da intermediario tra i client che inviano richieste e il server che risponde. L'uso di base di un proxy è mantenere la privacy e incapsulamento tra più sistemi interattivi.
- Autenticazione proxy HTTP con Selenium in Chrome può essere gestito utilizzando i seguenti approcci
- Passando nome utente e password nell'URL del sito web
- Utilizzando lo strumento AutoIT
- Utilizzo degli avvisi
- Dei tre approcci precedenti, l'utilizzo degli avvisi è il modo più efficace per gestire l'autenticazione proxy HTTP Selenium driver web