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.

  • ๐Ÿ›ก๏ธ Ruolo del delegato: Un proxy รจ un intermediario che aggiunge privacy, sicurezza e filtraggio dei contenuti.
  • ๐Ÿ”€ SOCKS vs HTTP: SOCKS non interpreta i dati; un proxy HTTP legge solo le richieste HTTP.
  • ๐ŸชŸ Popup nativi: Selenium Non รจ in grado di gestire le finestre di dialogo del sistema operativo, pertanto รจ necessario un supporto esterno.
  • ๏ธ Metodo AutoIt: Uno script AutoIt compilato invia il nome utente e la password alla finestra popup.
  • ???? Metodo di notifica: Passa all'avviso e invia le credenziali con sendKeys, quindi accetta.

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

  • 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:

Gestione degli avvisi relativi al nome utente tramite AutoIt
Gestione degli avvisi relativi al nome utente tramite AutoIt
Gestione degli avvisi di password tramite AutoIt

Gestione degli avvisi di 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("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

DOMANDE FREQUENTI

รˆ possibile incorporare le credenziali come https://user:pass@site.com, ma i moderni Chrome e Firefox Blocca questa opzione per motivi di sicurezza. Gli avvisi o le estensioni del browser sono ora piรน affidabili per l'autenticazione proxy.

AutoIt automatizza Windows controlli desktop che Selenium non รจ possibile raggiungere, ad esempio i popup di autenticazione nativi e le finestre di dialogo di caricamento file. Si compila uno script AutoIt in un eseguibile e lo si chiama da Selenium codice.

Un proxy reindirizza il traffico per applicazioni o browser specifici, principalmente nascondendo gli indirizzi IP o filtrando i contenuti. Una VPN crittografa tutto il traffico del dispositivo a livello di sistema, offrendo una maggiore privacy rispetto a un proxy standard.

Sรฌ. Gli strumenti di test basati sull'intelligenza artificiale rilevano le finestre di dialogo di autenticazione, iniettano le credenziali memorizzate e si auto-riparano quando il comportamento dei popup cambia, riducendo la dipendenza da script AutoIt fragili su diversi browser.

Gli strumenti di intelligenza artificiale gestiscono in modo intelligente la rotazione dei proxy, rilevano le richieste bloccate e adattano i tempi di attesa quando vengono visualizzate le richieste di autenticazione. Questa automazione migliora la stabilitร  dei test per i siti protetti da proxy aziendali o di filtraggio dei contenuti.

Sรฌ. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Selenium 4. Aggiunto il supporto per il protocollo Chrome DevTools, che consente di impostare le credenziali HTTP a livello di programmazione e gestire l'autenticazione di base, evitando l'utilizzo di AutoIt in molti scenari proxy.

Riassumi questo post con: