Comment gérer l'authentification proxy dans Selenium Pilote Web

⚡ Résumé intelligent

Authentification par proxy dans Selenium WebDriver gère la fenêtre contextuelle d'authentification qui apparaît lorsqu'un navigateur se connecte via un serveur proxy sécurisé. Selenium Il est impossible d'interagir directement avec les boîtes de dialogue natives ; deux approches sont nécessaires : l'utilisation de l'outil AutoIt et des alertes intégrées.

  • 🛡️ Rôle de mandataire : Un proxy est un intermédiaire qui ajoute de la confidentialité, de la sécurité et du filtrage de contenu.
  • 🔀 SOCKS vs HTTP : SOCKS n'interprète pas les données ; un proxy HTTP ne lit que les requêtes HTTP.
  • 🪟 Fenêtres contextuelles natives : Selenium ne peut pas gérer les boîtes de dialogue du système d'exploitation, une aide externe est donc nécessaire.
  • Méthode AutoIt : Un script AutoIt compilé envoie le nom d'utilisateur et le mot de passe à la fenêtre contextuelle.
  • ???? Méthode d'alerte : Passez à l'alerte et envoyez les informations d'identification avec sendKeys, puis acceptez.

Gérer l'authentification par proxy dans Selenium pilote web

Qu'est-ce qu'un proxy ?

Un proxy agit comme intermédiaire entre les clients qui envoient des requêtes et le serveur qui y répond. L'utilisation principale d'un proxy est de maintenir la confidentialité et l'encapsulation entre plusieurs systèmes interactifs.

Un proxy peut également ajouter une autre couche de sécurité sur le Web en agissant comme un pare-feu entre le client et les serveurs Web. Ceci est particulièrement utilisé lorsque les sites Web utilisés par les clients doivent être étiquetés comme autorisés ou bloqués en fonction du contenu du site Web.

Ce processus est connu sous le nom de « Filtrage de contenu » et est le plus couramment utilisé dans les établissements d'enseignement, les bureaux d'entreprise, etc. Le filtrage de contenu peut être facilement réalisé à l'aide d'un proxy. Sur Internet, un proxy peut être implémenté en tant que serveur distinct situé entre les machines clientes et les serveurs Web ou de bases de données qui répondent.

Différence entre SOCKS et proxy HTTP

CHAUSSETTES Http proxy
SOCKS signifie prises sécurisées. Il est généralement utilisé comme pare-feu entre le Client et le serveur Le proxy HTTP peut également être utilisé comme pare-feu entre le client et le serveur mais ne peut être utilisé que pour les requêtes HTTP.
SOCKS n’interprète pas les données échangées Le proxy HTTP interprète les données échangées entre le client et le serveur
Plus lent en termes de performances Meilleures performances par rapport aux SOCKS

Comment gérer le proxy dans Selenium Pilote Web dans Chrome

Authentification du proxy HTTP avec Selenium dans Chrome peut être géré à l'aide des approches suivantes

  • Utilisation de l'outil AutoIt
  • Utiliser les alertes

Utilisation de l'outil AutoIt

AutoIt est un outil tiers utilisé pour l'automatisation des postes de travail Windows. Selenium gère uniquement les fenêtres contextuelles et les fenêtres Web, la gestion des contrôles du système d'exploitation n'est pas possible à l'aide de Selenium.

Cela nécessite l'utilisation d'outils tiers externes tels qu'AutoIt pour être intégrés à SeleniumPour cela, AutoIt est le plus souvent utilisé pour gérer les chargements et les téléchargements de fichiers sur les sites web.

Pour utiliser AutoIt, vous devez télécharger et installer le logiciel AutoIt sur vos machines locales.

Le téléchargement et l'installation d'AutoIt sont abordés dans le article.

Ouvrez Programmes – Outil Autoit – SciTE Script Editor et ajoutez le script AutoIt mentionné ci-dessous dans l'éditeur Autoit et enregistrez-le sous « ProxyAuthentication.au3 » dans votre système.

Compilez le fichier et convertissez-le en « ProxyAuthentication.exe ».

In Eclipse, ajoutez le fichier AutoIt à Selenium Scripter et exécuter

Ci-dessous se trouve le script AutoIt pour l'authentification par proxy HTTP.

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

Vous devez transmettre le fichier AutoIt pour exécution sur Selenium pilote Web en utilisant le code ci-dessous

Matériau 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 Explication:

  • Dans la première étape, vous initialisez une instance du pilote Chrome en définissant la propriété système pour qu'elle pointe vers le fichier chromedriver.exe
  • Dans un second temps, vous initialisez un objet de pilote Web et vous lui transmettez le site Web. URL en utilisant la méthode get
  • Enfin, vous transmettez le nom d'utilisateur et le mot de passe à la fenêtre contextuelle d'authentification du proxy HTTP à l'aide d'un fichier de script AutoIt.

Code Sortie :

Gestion des alertes de nom d'utilisateur avec AutoIt
Gestion des alertes de nom d'utilisateur avec AutoIt
Gestion des alertes de mot de passe avec AutoIt

Gestion des alertes de mot de passe avec AutoIt
Écran de réussite de l'authentification proxy

Écran de réussite de l'authentification proxy

Utiliser les alertes

Les alertes sont des fonctionnalités simples et intégrées fournies par Selenium pilote Web. Vous pouvez gérer les fenêtres contextuelles d'authentification du proxy en utilisant Selenium pilote Web en passant à l'alerte d'authentification du proxy HTTP et en transmettant le nom d'utilisateur et le mot de passe directement à l'alerte. Avec l’aide de la méthode d’envoi de clés.

Exemple:

Scénario de test:

Gérez la fenêtre contextuelle d'authentification du proxy HTTP sur le site Web : https://demo.guru99.com/test/basic_auth.php utiliser les alertes dans Selenium pilote Web.

Exemple de code source :

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 Sortie

Authentification proxy effectuée avec succès.

Code Explication:

  • Initialement, vous instanciez une instance du pilote Chrome en définissant la propriété webdriver pour indiquer l'emplacement du fichier chromedriver.exe.
  • Ensuite, vous ouvrez le URL du site Web requis en passant le URL en tant que paramètre de la méthode driver.get()
  • Une fois URL L'alerte s'ouvre. Vous passez à l'alerte par nom d'utilisateur et envoyez le nom d'utilisateur « guru99 ». Vous cliquez ensuite sur le bouton OK de l'alerte à l'aide de la méthode alert.accept.
  • Ensuite, vous passez à l’alerte de mot de passe et envoyez le mot de passe – guru99. Vous cliquez ensuite sur le bouton OK de l'alerte en utilisant la méthode alert.accept

FAQ

Vous pouvez intégrer les identifiants sous la forme https://user:pass@site.com, mais les versions modernes de Chrome et Firefox Bloquez ceci pour des raisons de sécurité. Les alertes ou les extensions de navigateur sont désormais plus fiables pour l'authentification par proxy.

AutoIt automatise Windows commandes de bureau Selenium ne peuvent pas atteindre, comme les fenêtres contextuelles d'authentification natives et les boîtes de dialogue de téléchargement de fichiers. Vous compilez un script AutoIt en un exécutable et l'appelez depuis Selenium code.

Un proxy redirige le trafic pour des applications ou navigateurs spécifiques, principalement en masquant les adresses IP ou en filtrant le contenu. Un VPN chiffre l'intégralité du trafic de l'appareil, offrant ainsi une confidentialité renforcée par rapport à un proxy standard.

Oui. Les outils de test basés sur l'IA détectent les boîtes de dialogue d'authentification, injectent les informations d'identification stockées et s'auto-réparent lorsque le comportement des fenêtres contextuelles change, réduisant ainsi la dépendance aux scripts AutoIt fragiles sur tous les navigateurs.

Les outils d'IA gèrent intelligemment la rotation des serveurs proxy, détectent les requêtes bloquées et adaptent les temps d'attente lors de l'affichage des demandes d'authentification. Cette automatisation améliore la stabilité des tests pour les sites protégés par des serveurs proxy d'entreprise ou de filtrage de contenu.

Oui. Selenium La version 4 a ajouté la prise en charge du protocole Chrome DevTools, vous permettant de définir les informations d'identification HTTP par programmation et de gérer l'authentification de base, évitant ainsi AutoIt pour de nombreux scénarios de proxy.

Résumez cet article avec :