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:

Gestione degli avvisi relativi al nome utente utilizzando AutoIT
Gestione degli avvisi relativi al nome utente utilizzando AutoIT
Gestione degli avvisi password tramite AutoIT

Gestione degli avvisi password tramite AutoIT
Schermata di autenticazione proxy riuscita

Schermata di autenticazione proxy riuscita

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