Les fonctionnalités sont des options que vous pouvez utiliser pour personnaliser et configurer une session ChromeDriver. Cette page décrit toutes les fonctionnalités compatibles avec ChromeDriver et explique comment les utiliser.
Les API de langage WebDriver permettent de transmettre des fonctionnalités à ChromeDriver. Le mécanisme exact diffère selon le langage, mais la plupart des langages utilisent l'un des mécanismes suivants, ou les deux:
- Utilisez la classe
ChromeOptions
. Cette opération est compatible avec Java, Python, etc. - Utilisez la classe
DesiredCapabilities
. Cette méthode est compatible avec Python, Ruby, etc. Bien qu'elle soit également disponible en Java, son utilisation dans Java est obsolète.
Utiliser la classe ChromeOptions
Vous pouvez créer une instance de ChromeOptions
, qui propose des méthodes pratiques pour définir des fonctionnalités spécifiques à ChromeDriver. Vous pouvez ensuite transmettre ChromeOptions
dans le constructeur ChromeDriver:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Depuis la version 3.6.0 de Selenium, la classe ChromeOptions
en Java implémente également l'interface Capabilities
, ce qui vous permet de spécifier d'autres fonctionnalités WebDriver non spécifiques à ChromeDriver.
ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);
// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Utiliser les fonctionnalités souhaitées
Pour utiliser DesiredCapabilities
, vous devez connaître le nom de la capacité et le type de valeur qu'elle utilise. Cliquez ici pour consulter la liste complète.
Python
caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)
Ruby
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
Cas d'utilisation courants
Utiliser un profil personnalisé (également appelé "répertoire de données utilisateur")
Par défaut, ChromeDriver crée un profil temporaire pour chaque session. Il peut arriver que vous souhaitiez définir des préférences spéciales ou simplement utiliser un profil personnalisé. S'il s'agit du premier, vous pouvez utiliser le fichier "chrome.prefs". (décrite plus loin ci-dessous) pour spécifier les préférences qui seront appliquées après le démarrage de Chrome. Dans ce dernier cas, vous pouvez utiliser le bouton bascule de la ligne de commande Chrome user-data-dir
pour indiquer à Chrome le profil à utiliser:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Vous pouvez créer votre propre profil personnalisé en exécutant Chrome (en ligne de commande ou via ChromeDriver) avec le commutateur user-data-dir
défini sur un nouveau répertoire. Si le chemin d'accès n'existe pas, Chrome crée un profil à l'emplacement spécifié. Vous pouvez ensuite modifier les paramètres du profil comme vous le souhaitez, et ChromeDriver pourra utiliser le profil à l'avenir. Ouvrez la page chrome://version dans le navigateur pour voir le profil utilisé par Chrome.
Lancer Chrome en mode plein écran
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Utiliser un fichier exécutable Chrome à un emplacement non standard
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Bloquer les fenêtres de dialogue
Par défaut, ChromeDriver configure Chrome de manière à autoriser les fenêtres pop-up. Si vous souhaitez bloquer les pop-ups (c'est-à-dire rétablir le comportement normal de Chrome lorsqu'il n'est pas contrôlé par ChromeDriver), procédez comme suit:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
Définir le répertoire de téléchargement
Le code suivant peut être utilisé pour configurer Chrome afin de télécharger des fichiers dans un répertoire spécifique. Cependant, il y a plusieurs mises en garde à prendre en compte:
- Chrome interdit l'utilisation de certains répertoires pour le téléchargement. En particulier, vous ne pouvez pas utiliser le dossier Desktop comme répertoire de téléchargement. Sous Linux, vous ne pouvez pas non plus utiliser le répertoire d'accueil pour le téléchargement. Étant donné que la liste exacte des répertoires interdits est susceptible d'être modifiée, nous vous recommandons d'utiliser un répertoire qui n'a pas de signification particulière pour le système.
- ChromeDriver n'attend pas automatiquement que le téléchargement se termine. Si vous appelez driver.quit() trop tôt, Chrome peut s'arrêter avant la fin du téléchargement.
- Les chemins relatifs ne fonctionnent pas toujours. Pour un résultat optimal, utilisez plutôt le chemin d'accès complet.
- Sous Windows, utilisez "" comme séparateurs de chemin. Utiliser "/" n'est pas fiable sous Windows.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Capacités reconnues
Veuillez consulter la documentation Selenium et la norme W3C WebDriver pour en savoir plus compatibles avec ChromeDriver. Cette liste n'inclut que les données des fonctionnalités.
Objet ChromeOptions
La plupart des fonctionnalités propres à Chrome sont exposées via le ChromeOptions
.
. Dans certains langages, il est implémenté par la classe ChromeOptions
. Dans
dans les autres langues, ils sont stockés sous le dictionnaire goog:chromeOptions
les capacités souhaitées.
Objet perfLoggingPrefs
Le dictionnaire perfLoggingPrefs a le format suivant (toutes les clés sont facultatives):
Nom | Type | Par défaut | Description |
---|---|---|---|
enableNetwork
|
booléen | true | Indique si les événements doivent être collectés ou non à partir du domaine du réseau. |
enablePage
|
booléen | true | Indique si les événements doivent être collectés ou non à partir du domaine de la page. |
traceCategories
|
chaîne | (vide) | Chaîne de catégories de traçage Chrome séparées par une virgule pour lesquelles des événements de trace doivent être collectés. Une chaîne non spécifiée ou vide désactive le traçage. |
bufferUsageReportingInterval
|
entier positif | 1000 | Nombre de millisecondes requis entre les événements d'utilisation du tampon de trace des outils de développement. Par exemple, si la valeur est de 1 000, une fois par seconde, les outils de développement indiquent le niveau d'occupation du tampon de trace. Si un rapport indique que l'utilisation de la mémoire tampon est de 100%, un avertissement est émis. |
Capacités renvoyées
Voici la liste de toutes les fonctionnalités renvoyées par Chrome. (par exemple, ce que ChromeDriver renvoie lorsque vous créez une session)
Nom | Type | Description |
---|---|---|
chrome.chromedriverVersion
|
chaîne | version de ChromeDriver |
userDataDir
|
chaîne | chemin d'accès au répertoire de données utilisateur utilisé par Chrome notez, ceci est dans un « chrome » dictionnaire |