Options Chrome et fonctionnalités souhaitées dans Selenium

⚡ Résumé intelligent

Options et fonctionnalités souhaitées de Chrome Selenium WebDriver contrôle le lancement et le comportement du navigateur Chrome lors des tests automatisés. Ensemble, ils configurent les arguments, les extensions, la gestion SSL et les paramètres de compatibilité entre navigateurs, rendant ainsi les exécutions de tests flexibles, reproductibles et prêtes à l'emploi. Selenium Exécution sur la grille.

  • 🌐 Options Chrome : Personnalise les sessions avec des arguments tels que start-maximized, incognito et headless.
  • ⚙️ Capacités souhaitées : Définit le nom du navigateur, la plateforme, la version et l'acceptation des certificats SSL.
  • 🧩 Extensions: Chargez un fichier CRX automatiquement au lieu de l'installer manuellement.
  • Incognito et sans tête : Le code réutilisable exécute des sessions privées ou en arrière-plan pour les pipelines CI.
  • Selenium La grille: Ces fonctionnalités permettent l'exécution de tests distribués et multiplateformes.
  • ⚠️ Selenium Note de 4 : La fonction DesiredCapabilities est obsolète ; transmettez directement ChromeOptions au pilote.

Options et fonctionnalités souhaitées de Chrome Selenium pilote web

Qu'est-ce que la classe d'options Chrome ?

Le 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.

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.

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.

Exemple :

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) Extract le fichier CRX correspondant à AdBlockextension er 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

Exemple :

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

Extracfichier t CRX

Les étapes ci-dessous illustrent le processus d'extracTélécharger le fichier CRX via un bloqueur de publicités sur le site web – http://crxextractor.com/

Étape 1) Allez dans http://crxextractor.com/ et cliquez sur le bouton Démarrer

Extracfichier t CRX

Étape 2) Installez l'extension Chrome – Bloqueur de publicités URL sous la zone de texte. URL pour Adblock sur le Chrome Web Store https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

et cliquez sur ok

Extracfichier t CRX

É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é

Extracfichier t CRX

É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.

Échantillon Code:

  1. Vous verrez des annonces à https://demo.guru99.com/ comme ci-dessous

Extracfichier t CRX

  1. Avec 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("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();
	//driver.quit();
	}
	
}

Code Explication:

  1. 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.
  2. Vous devez définir le chemin d'accès au fichier CRX pour ajouter la méthode des extensions
  3. 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.
  4. Ouvrez le URL - https://demo.guru99.com/test/simple_context_menu.html avec l'extension Ad Blocker activée
  5. 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é

Extracfichier t CRX

Outre le chargement des extensions, ChromeOptions contrôle également le fonctionnement de la fenêtre du navigateur elle-même.

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.

Échantillon 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("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();		
	//driver.quit();
	}
	}

Code Explication:

  1. 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.
  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 de fusion.
  4. Vous devez créer un objet de la classe Chrome Driver et transmettre l'objet Options Chrome comme argument.
  5. Enfin, nous devons réussir le URL - https://demo.guru99.com/test/simple_context_menu.html à la méthode driver.get
  6. Agrandissez et fermez le navigateur

Sortie :

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

Options Chrome pour le mode navigation privée

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.

Exemple :

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("https://demo.guru99.com/");
		driver.manage().window().maximize();
		String title = driver.getTitle();
		System.out.println("Page Title: " +title);
		driver.quit();
		}


}

Code Explication:

  1. 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.
  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 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.
  4. Créez un objet de la classe Chrome Driver et transmettez les options Chrome Selenium objet comme argument
  5. Enfin, nous devons réussir le URL - https://demo.guru99.com/ à la méthode driver.get
  6. 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.

Options Chrome pour Chrome sans tête

FAQ

Oui. Selenium 4. La classe DesiredCapabilities a été dépréciée au profit des classes Options du navigateur telles que ChromeOptions. Selenium 3 vous les avez fusionnés ; dans Selenium 4. Vous transmettez directement ChromeOptions au pilote.

Appelez la méthode `addArguments` avec plusieurs options, par exemple `options.addArguments` avec `start-maximized` et `incognito`. Vous pouvez également enchaîner plusieurs appels. Chaque argument personnalise le lancement de la session Chrome.

La méthode `addArguments` transmet à Chrome des options de ligne de commande telles que `headless` ou `incognito`. La méthode `addExtensions` charge un fichier d'extension `.crx` dans la session. Ces deux méthodes personnalisent le comportement, mais ont des objectifs différents.

Oui. Les assistants IA tels que Copilot génèrent des configurations ChromeOptions et de capacités, suggèrent des noms d'arguments et expliquent les API obsolètes. Vérifiez toujours la sortie, car les noms des indicateurs et Selenium Les versions changent fréquemment.

Les outils d'auto-réparation basés sur l'IA mettent à jour automatiquement les arguments, détectent les indicateurs instables et suggèrent des solutions de remplacement stables après les mises à jour de Chrome. Ils réduisent la maintenance des exécutions sans interface graphique et les problèmes d'incompatibilité de capacités entre les environnements d'intégration continue.

Oui. ChromeOptions fonctionne avec RemoteWebDriver pour l'exécution sur grille. Vous associez les options à la session distante, ce qui permet d'utiliser la même configuration sur plusieurs machines et navigateurs.

Cela signifie généralement que les versions de ChromeDriver et du navigateur Chrome ne correspondent pas. Installez une version compatible de ChromeDriver ou utilisez Selenium Gérant en Selenium 4 pour résoudre automatiquement le problème du pilote.

Utilisez une option expérimentale : une carte de préférences avec download.default_directory transmise via setExperimentalOption. Chrome enregistre alors automatiquement les fichiers dans ce dossier lors des tests automatisés.

Résumez cet article avec :