Options de Chrome & Capacités souhaitées: AdBlocker, Incognito, Headless

Qu'est-ce que la classe Options Chrome?

La classe d'options Chrome est utilisée pour manipuler diverses propriétés du pilote Chrome. La classe d'options Chrome est généralement utilisée avec les capacités souhaitées.

Exemple:

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.

Options ChromeOptions = nouvelles ChromeOptions ()options.addArgument ("début maximisé");Pilote ChromeDriver = nouveau 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 maximiser
  • incognito: ouvre Chrome en mode navigation privée
  • sans tête: ouvre Chrome en mode sans tête
  • disable-extensions : désactive les extensions existantes sur le navigateur Chrome
  • disable-popup-blocking : désactive les fenêtres contextuelles affichées sur le navigateur Chrome
  • make-default-browser: Rend le navigateur Chrome par défaut
  • version : imprime la version du navigateur Chrome
  • disable-infobars: empêche Chrome d'afficher la notification "Chrome est contrôlé par un logiciel automatisé

Dans ce tutoriel, vous apprendrez

  • Qu'est-ce que la classe Options Chrome?
  • Classe de capacités souhaitées
  • Options Chrome pour l'extension Adblocker
  • Options Chrome pour le mode navigation privée
  • Options de Chrome pour Chrome sans tête

Classe de capacités souhaitées

La classe des capacités souhaitées est utilisée pour modifier plusieurs propriétés du pilote Web. La classe Desired Capabilities 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. La méthode la plus couramment utilisée de la classe Desired Capabilities est la méthode setCapability. Desired Capabilities est le plus souvent utilisé avec Selenium Grid où le même scénario de test doit être exécuté sur différents navigateurs.

Exemple:

L'exemple ci-dessous montre comment activer le navigateur Chrome pour accepter les certificats SSL sur les sites Web par défaut à l'aide de la classe Desired Capabilities.

// Créer un objet de la classe de capacités souhaitée avec le pilote ChromeDesiredCapabilities SSLCertificate = DesiredCapabilities.chrome ();// Définit la capacité prédéfinie - valeur ACCEPT_SSL_CERTS sur trueSSLCertificate.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true);// Ouvre une nouvelle instance de pilote chrome avec la capacité souhaitéePilote WebDriver = nouveau 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 Chrome et Capacités souhaitées. Vous trouverez ci-dessous les étapes pour accéder à l'extension AdBlocker sur le navigateur Chrome à l'aide de la classe Desired Capabilities.

Étape 1) L'extension AdBlocker doit être installée sur le navigateur Chrome avant d'utiliser la classe Options Chrome

Étape 2) Extrayez le fichier CRX correspondant à l'extension AdBlocker via http://crxextractor.com/

Étape 3) Passez le chemin du fichier CRX téléchargé à la classe Options Chrome

Étape 4) Instanciez le pilote Web à l'aide de la classe de capacités et de l'objet d'options Chrome souhaités

Exemple:

L'exemple ci-dessous montre comment activer l'extension de blocage de publicités sur le navigateur Chrome à l'aide de la classe Options Chrome et capacités souhaitées.

Options ChromeOptions = nouvelles ChromeOptions ();options.addExtensions (nouveau fichier ("Chemin d'accès au fichier CRX"));Capacités DesiredCapabilities = new DesiredCapabilities ();capacités.setCapability (ChromeOptions.CAPABILITY, options);Pilote ChromeDriver = nouveau ChromeDriver (fonctionnalités);

Extraire le fichier CRX:

Les étapes ci-dessous illustrent le processus d'extraction du fichier CRX via Ad Blocker via le site Web - http://crxextractor.com/

Étape 1) Allez 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 le Chrome Web Store 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, le libellé du bouton deviendra Get .CRX comme ci-dessous. Cliquez sur le bouton Get .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:

  1. Vous verrez des annonces sur http://demo.guru99.com/ comme ci-dessous

  1. Avec l'extension AdBlocker activée sur le navigateur Chrome, les annonces doivent être désactivées
package adblock;import java.io.File;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeOptions;import org.openqa.selenium.remote.DesiredCapabilities;classe publique AdblockDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Options ChromeOptions = nouvelles ChromeOptions ();options.addExtensions (nouveau fichier ("X: //extension_3_40_1_0.crx"));Capacités DesiredCapabilities = new DesiredCapabilities ();capacités.setCapability (ChromeOptions.CAPABILITY, options);options.merge (capacités);Pilote ChromeDriver = nouveau ChromeDriver (options);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maximiser ();//driver.quit ();}}

Explication du code:

  1. Au départ, vous devez définir le chemin d'accès au fichier chromedriver.exe à l'aide de la méthode set property, car vous utilisez le navigateur Chrome pour les tests.
  2. Vous devez définir le chemin d'accès au fichier CRX pour ajouter la méthode d'extensions
  3. Ensuite, vous devez créer un objet de la classe de capacités souhaitée et le transmettre à l'instance du pilote Web. À partir de la version Selenium 3.8.1, la classe de capacités du pilote est obsolète et vous devez fusionner l'objet de fonctionnalités avec l'objet Options Chrome avant de transmettre la même chose en tant qu'argument au constructeur de pilote Chrome.
  4. Ouvrez l'URL - http://demo.guru99.com/test/simple_context_menu.html avec l'extension Ad Blocker activée
  5. Agrandir et fermer le navigateur

REMARQUE: nous activons l'extension AdBlocker sur le navigateur Chrome via un script d'automatisation au lieu d'activer manuellement l'extension Adblocker sur le navigateur Chrome. CRX File est un moyen d'accéder à l'extension de bloqueur de publicités à l'aide d'un script d'automatisation

Production:

Le navigateur Chrome sera activé avec l'extension AdBlocker 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 à l'aide de l'argument prédéfini - navigation privée .

Voici l'exemple de code pour accomplir la même chose.

Exemple de code:

test de colis;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 Stub de méthode généré automatiquementSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Options ChromeOptions = nouvelles ChromeOptions ();options.addArguments ("- incognito");Capacités DesiredCapabilities = new DesiredCapabilities ();capacités.setCapability (ChromeOptions.CAPABILITY, options);options.merge (capacités);Pilote ChromeDriver = nouveau ChromeDriver (options);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maximiser ();//driver.quit ();}}

Explication du code :

  1. Au départ, vous devez définir le chemin d'accès au fichier chromedriver.exe à l'aide de la méthode set property, car vous utilisez le navigateur Chrome pour les tests.
  2. 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.
  3. 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 merge
  4. Vous devez créer un objet de la classe Chrome Driver et transmettre l'objet Options Chrome en tant qu'argument
  5. Enfin, nous devons passer l'URL - http://demo.guru99.com/test/simple_context_menu.html à la méthode driver.get
  6. Agrandir et fermer le navigateur

Production:

La fenêtre du navigateur Chrome sera ouverte en mode Incognito comme ci-dessous

Options de Chrome pour Chrome sans tête

Un navigateur Headless s'exécute en arrière-plan. Vous ne verrez pas l'interface graphique du navigateur ou 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 accomplies en utilisant les arguments prédéfinis - sans tête .

Un exemple de code pour y parvenir est mentionné ci-dessous.

Exemple:

test de colis;import java.io.File;import org.openqa.selenium.chrome.ChromeDriver;import org.openqa.selenium.chrome.ChromeOptions;import org.openqa.selenium.remote.DesiredCapabilities;classe publique HeadlessModeDemo {public static void main (String [] args) {// TODO Stub de méthode généré automatiquementSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Options ChromeOptions = nouvelles ChromeOptions ();options.addArguments ("- sans tête");Capacités DesiredCapabilities = new DesiredCapabilities ();capacités.setCapability (ChromeOptions.CAPABILITY, options);options.merge (capacités);Pilote ChromeDriver = nouveau ChromeDriver (options);driver.get ("http://demo.guru99.com/");driver.manage (). window (). maximiser ();Titre de la chaîne = driver.getTitle ();System.out.println ("Titre de la page: + titre);driver.quit ();}}

Explication du code :

  1. Au départ, vous devez définir le chemin d'accès au fichier chromedriver.exe à l'aide de la méthode set property, car vous utilisez le navigateur Chrome pour les tests.
  2. 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.
  3. 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 merge
  4. Créez un objet de la classe Chrome Driver et transmettez l'objet Options Chrome en tant qu'argument
  5. Enfin, nous devons passer l'URL - http://demo.guru99.com/ à la méthode driver.get
  6. Imprimez le titre de la page et fermez le navigateur

Production

Le navigateur ne sera pas visible pour le code ci-dessus car Chrome fonctionnera en mode sans tête. Le titre de la page sera récupéré et affiché comme ci-dessous.

Résumé:

  • La classe d'options Chrome est utilisée pour manipuler diverses propriétés du pilote Chrome
  • La classe Desired Capabilities 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 doit être ajouté à la classe Options Chrome
  • --incognito et -headless sont des arguments prédéfinis fournis par la classe Options Chrome pour l'utilisation du navigateur Chrome en mode incognito et en mode sans tête

Articles intéressants...