Options Chrome et fonctionnalités souhaitées dans Selenium Pilote Web
Qu'est-ce que la classe d'options Chrome ?
Votre Classe Chromeoptions est un concept en Selenium WebDriver pour manipuler diverses propriétés du pilote Chrome. La classe d'options Chrome est généralement utilisée conjointement avec les capacités souhaitées pour personnaliser les sessions du pilote Chrome. Il vous aide à effectuer diverses opérations comme ouvrir Chrome en mode maximisé, désactiver les extensions existantes, désactiver les fenêtres contextuelles, etc.
Mise en situation :
L'exemple ci-dessous montre un moyen d'ouvrir le navigateur Chrome en mode maximisé à l'aide de la classe ChromeOptions. Nous devons transmettre une instance de la classe ChromeOptions à l'initialisation du pilote Web.
ChromeOptions options = new ChromeOptions() options.addArgument("start-maximized"); ChromeDriver driver = new ChromeDriver(options);
Vous trouverez ci-dessous la liste des arguments disponibles et les plus couramment utilisés pour la classe ChromeOptions.
- démarrage maximisé : Ouvre Chrome en mode Agrandir
- incognito: Ouvre Chrome en mode navigation privée
- sans tête: Ouvre Chrome en mode sans tête
- désactiver les extensions : Désactive les extensions existantes sur le navigateur Chrome
- désactiver le blocage des popups : Désactive les pop-ups affichés sur le navigateur Chrome
- make-default-navigateur : Fait de Chrome le navigateur par défaut
- version : Imprime la version du navigateur Chrome
- désactiver les barres d'informations : Empêche Chrome d'afficher la notification "Chrome est contrôlé par un logiciel automatisé"
Classe de capacités souhaitées
Classe de capacités souhaitées est utilisé pour modifier plusieurs propriétés des pilotes Web. Il fournit des paires clé-valeur pour modifier les propriétés individuelles des pilotes Web telles que le nom du navigateur, la plate-forme du navigateur, etc. Une méthode courante de la classe Desired Capabilities est la méthode setCapability. Il est surtout utilisé avec Selenium Grid, où le même scénario de test doit être exécuté sur différents navigateurs.
Mise en situation :
L'exemple ci-dessous montre comment activer le navigateur Chrome pour qu'il accepte les certificats SSL sur les sites Web par défaut à l'aide de la classe Desired Capabilities for Chrome.
// Create an object of desired capabilities class with Chrome driver DesiredCapabilities SSLCertificate = DesiredCapabilities.chrome(); // Set the pre defined capability – ACCEPT_SSL_CERTS value to true SSLCertificate.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); // Open a new instance of chrome driver with the desired capability WebDriver driver = new ChromeDriver(SSLCertificate);
Vous trouverez ci-dessous les types de capacités prédéfinis les plus couramment utilisés.
Nom de la capacité | Description |
---|---|
ACCEPT_SSL_CERTS | Cette propriété indique au navigateur d'accepter les certificats SSL par défaut |
PLATFORM_NAME | Cette propriété est utilisée pour définir la plate-forme du système d'exploitation utilisée pour accéder au site Web. |
BROWSER_NAME | Cette propriété est utilisée pour définir le nom du navigateur pour une instance de pilote Web |
VERSION | Cette propriété est utilisée pour définir la version du navigateur |
Options Chrome pour l'extension Adblocker
L'extension Adblocker du navigateur Chrome peut être gérée à l'aide de la classe Options et capacités souhaitées de ChromeDriver. Vous trouverez ci-dessous les étapes à suivre pour y accéder AdBlocker extension sur le navigateur Chrome en utilisant la classe Desired Capabilities.
Étape 1) AdBlockL'extension doit être installée sur le navigateur Chrome avant d'utiliser la classe Options Chrome.
Étape 2) Extrayez le fichier CRX correspondant à AdBlockeuh extension via http://crxextractor.com/
Étape 3) Transmettez le chemin du fichier CRX téléchargé à la classe Options Chrome
Étape 4) Instanciez le pilote Web à l'aide de la classe de fonctionnalités souhaitée et des options Chrome dans Selenium objet
Mise en situation :
L'exemple ci-dessous montre comment activer l'extension du bloqueur de publicités sur le navigateur Chrome à l'aide de la classe Options Chrome et Capacités souhaitées.
ChromeOptions options = new ChromeOptions(); options.addExtensions(new File("Path to CRX File")); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); ChromeDriver driver = new ChromeDriver(capabilities);
Extraire le fichier CRX
Les étapes ci-dessous démontrent le processus d'extraction du fichier CRX via Ad Blocker via le site Web - http://crxextractor.com/
Étape 1) Cliquez sur http://crxextractor.com/ et cliquez sur le bouton Démarrer
Étape 2) Entrez l'extension Chrome - URL du bloqueur de publicités sous la zone de texte. L'URL d'Adblock sur la boutique en ligne Chrome est https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
et cliquez sur ok
Étape 3) En cliquant sur le bouton OK, l'étiquette du bouton deviendra Get .CRX comme ci-dessous. Cliquez sur le bouton Obtenir .CRX, le fichier CRX correspondant à l'extension sera téléchargé
Étape 4) Enregistrez le fichier sur la machine locale, notez le chemin enregistré. L'étape suivante consiste à transmettre le chemin enregistré à la classe Options Chrome.
Exemple de code :
- Vous verrez des annonces à
http://demo.guru99.com/
comme ci-dessous
- Grâce à AdBlockL'extension activée sur les publicités du navigateur Chrome doit être désactivée
package adblock; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class AdblockDemo { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addExtensions(new File("X://extension_3_40_1_0.crx")); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("http://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Explication du code:
- Initialement, vous devez définir le chemin d'accès au fichier chromedriver.exe à l'aide de la méthode set property puisque vous utilisez le navigateur Chrome pour les tests.
- Vous devez définir le chemin d'accès au fichier CRX pour ajouter la méthode des extensions
- Ensuite, vous devez créer un objet de fonctionnalités souhaitées par Chrome dans Selenium classe et transmettez-le à l’instance du pilote Web. Depuis Selenium Version 3.8.1, la classe de capacités du pilote est obsolète et vous devez fusionner l'objet de capacités avec l'objet Options Chrome avant de transmettre la même chose comme argument au constructeur du pilote Chrome.
- Ouvrez l'URL –
http://demo.guru99.com/test/simple_context_menu.html
avec l'extension Ad Blocker activée - Agrandissez et fermez le navigateur
NOTE: Nous permettons AdBlockeuh extension sur le navigateur Chrome via un script d'automatisation au lieu d'activer manuellement l'extension Adblocker sur le navigateur Chrome. Le fichier CRX est un moyen d'accéder à l'extension du bloqueur de publicités à l'aide d'un script d'automatisation
Sortie :
Le navigateur Chrome sera activé avec AdBlockeuh extension activée comme ci-dessous sans aucune publicité
Options Chrome pour le mode navigation privée
Les options Chrome peuvent être utilisées pour le mode navigation privée en utilisant l'argument prédéfini :incognito.
Vous trouverez ci-dessous l’exemple de code pour accomplir la même chose.
Exemple de code :
package test; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class Incognito{ public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("--incognito"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("http://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Explication du code:
- Initialement, vous devez définir le chemin d'accès au fichier chromedriver.exe à l'aide de la méthode set property puisque vous utilisez le navigateur Chrome pour les tests.
- Ensuite, vous devez créer un objet de la classe Options Chrome et le transmettre à l'instance du pilote Web. Puisque nous voulons ouvrir le navigateur Chrome en mode navigation privée, vous devez transmettre l'argument –incognito à la classe Options Chrome.
- Ensuite, créez un objet de la classe Desired Capabilities et fusionnez l'objet de classe Desired Capabilities avec l'objet de classe Chrome Options à l'aide de la méthode de fusion.
- Vous devez créer un objet de la classe Chrome Driver et transmettre l'objet Options Chrome comme argument.
- Enfin, nous devons transmettre l'URL –
http://demo.guru99.com/test/simple_context_menu.html
à la méthode driver.get - Agrandissez et fermez le navigateur
Sortie :
La fenêtre du navigateur Chrome sera ouverte en mode Incognito comme ci-dessous
Options Chrome pour Chrome sans tête
Un navigateur sans tête s'exécute en arrière-plan. Vous ne verrez pas l'interface graphique du navigateur ni les opérations qui y ont été effectuées.
Les options Chrome pour exécuter le navigateur Chrome en mode sans tête peuvent être réalisées en utilisant les arguments prédéfinis :sans tête.
Un exemple de code pour y parvenir est mentionné ci-dessous.
Mise en situation :
package test; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class HeadlessModeDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("http://demo.guru99.com/"); driver.manage().window().maximize(); String title = driver.getTitle(); System.out.println("Page Title: " +title); driver.quit(); } }
Explication du code:
- Initialement, vous devez définir le chemin d'accès au fichier chromedriver.exe à l'aide de la méthode set property puisque vous utilisez le navigateur Chrome pour les tests.
- Ensuite, créez un objet de la classe Options Chrome et transmettez-le à l'instance du pilote Web. Puisque nous voulons ouvrir le navigateur Chrome en mode sans tête, nous devons transmettre l’argument –headless à la classe Options Chrome.
- Créez un objet de la classe Chrome DesiredCapabilities et fusionnez l'objet de classe Desired Capabilities avec l'objet de classe Options Chrome à l'aide de la méthode de fusion.
- Créez un objet de la classe Chrome Driver et transmettez les options Chrome Selenium objet comme argument
- Enfin, nous devons transmettre l'URL –
http://demo.guru99.com/
à la méthode driver.get - Imprimez le titre de la page et fermez le navigateur
Sortie
Le navigateur ne sera pas visible pour le code ci-dessus car Chrome fonctionnera en mode Headless. Le titre de la page sera récupéré et affiché comme ci-dessous.
Résumé
- Selenium La classe Options Chrome est utilisée pour manipuler diverses propriétés du pilote Chrome
- La classe des capacités Chrome souhaitées fournit un ensemble de paires clé-valeur pour modifier les propriétés individuelles du pilote Web telles que le nom du navigateur, la plate-forme du navigateur, etc.
- Pour manipuler les extensions du navigateur Chrome, le fichier CRX correspondant à l'extension doit être extrait et ajouté à la classe Options Chrome.
- –incognito et –headless sont des arguments prédéfinis fournis par la classe Options Chrome pour utiliser le navigateur Chrome en mode navigation privée et en mode sans tête.