Comment gérer l'authentification proxy dans Selenium Webdriver

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 Webdriver dans Chrome

L'authentification du proxy HTTP avec Selenium dans Chrome peut être gérée à l'aide de la procédure suivantewing approches

  • Utilisation de l'outil AutoIT
  • Utiliser les alertes

Utilisation de l'outil AutoIT

Auto IT est un outil tiers utilisé pour windows automatisation du bureau. Étant donné que Selenium ne gère que les popups Web et windows, la gestion des contrôles du système d'exploitation n'est pas possible avec Selenium.

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

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

Le téléchargement d'une installation d'AutoIT est couvert 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 Auto IT à Selenium Script et exécutez

Vous trouverez ci-dessous le script AutoIT pour l'authentification du proxy HTTP

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

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

Code source:

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");
    }
}

Explication du code :

  • 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 la deuxième étape, vous initialisez ensuite un objet du pilote Web et transmettez l'URL du site Web à l'aide de 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.

Sortie de code :

Gestion des alertes de nom d'utilisateur à l'aide d'AutoIT
Gestion des alertes de nom d'utilisateur à l'aide d'AutoIT
Gestion des alertes de mot de passe à l'aide d'AutoIT

Gestion des alertes de mot de passe à l'aide d'AutoIT
Écran de réussite de l'authentification proxy

Écran de réussite de l'authentification proxy

Utiliser les alertes

Les alertes sont une fonctionnalité simple et intégrée fournie par le pilote Web Selenium. Vous pouvez gérer les fenêtres contextuelles d'authentification du proxy à l'aide du pilote Web Selenium 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 en utilisant les alertes dans le pilote Web Selenium.

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("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();
    }
}

Sortie de code

Authentification proxy effectuée avec succès.

Explication du code :

  • 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 l'URL du site Web requis en passant l'URL en tant que paramètre à la méthode driver.get()
  • Une fois l’URL ouverte, vous passez à l’alerte de nom d’utilisateur et envoyez le nom d’utilisateur – guru99. Vous cliquez ensuite sur le bouton OK de l'alerte en utilisant 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

Résumé

  • Un proxy agit comme intermédiaire entre les clients qui envoient des requêtes et le serveur qui y répond. L'utilisation de base d'un proxy est de préserver la confidentialité et encapsulation entre plusieurs systèmes interactifs.
  • L'authentification du proxy HTTP avec Selenium dans Chrome peut être gérée à l'aide de la procédure suivantewing approches
  • Passer le nom d'utilisateur et le mot de passe dans l'URL du site Web
  • Utilisation de l'outil AutoIT
  • Utiliser les alertes
  • Parmi les trois approches ci-dessus, l'utilisation d'alertes est le moyen le plus efficace de gérer l'authentification du proxy HTTP dans Selenium Webdriver.