Les derniers binaires pour ChromeDriver sont empaquetés sous forme de fichiers ZIP pour différentes plates-formes hôtes.
Les versions antérieures de ChromeDriver se trouvent dans Téléchargements.
Applis compatibles
ChromeDriver permet d'exécuter des tests sur le navigateur Chrome (version 30 ou ultérieure) et les applications basées sur WebView à partir d'Android 4.4 (KitKat) qui ont activé le débogage Web et JavaScript.
Vous pouvez installer l'application Chrome depuis:
Version stable: https://play.google.com/store/apps/details?id=com.android.chrome
Liaisons de langages Selenium WebDriver
Les liaisons de langage WebDriver du projet Selenium standard doivent être installées pour la langue de votre choix afin de pouvoir écrire vos tests. Cette bibliothèque est disponible dans votre gestionnaire de paquets local ou dans le projet Selenium.
Par exemple, les liaisons de langage pour Python peuvent être installées avec pip.
$ pip install selenium
SDK Android
Vous pouvez télécharger le SDK sur developer.android.com/sdk/.
Configuration requise pour l'appareil
Depuis la version 33 de Chrome, un appareil en mode root n'est plus nécessaire. Si vous exécutez des tests sur des versions antérieures de Chrome, les appareils doivent être en mode root, car ChromeDriver nécessite un accès en écriture au répertoire /data/local
pour définir les arguments de ligne de commande de Chrome.
Exécuter ChromeDriver
Démarrez le serveur Android Debug Bridge (adb) du SDK Android:
$ adb start-server
Si vous effectuez des tests sur l'application Chrome avant la version 33, assurez-vous que le shell adb dispose d'un accès en lecture et en écriture au répertoire
/data/local
sur l'appareil:$ adb shell su -c chmod 777 /data/local
Nous vous recommandons de démarrer ChromeDriver via la bibliothèque Selenium, mais vous pouvez également le démarrer manuellement à partir de la ligne de commande.
$ ./chromedriver
Options Android uniquement
Les options Chrome suivantes s'appliquent aux applications Chrome et WebView:
androidPackage
: nom du package de l'application Chrome ou WebView.androidDeviceSerial
: (facultatif) Numéro de série de l'appareil sur lequel lancer l'application (voir la section "Plusieurs appareils" ci-dessous).androidUseRunningApp
(facultatif) : associer à une application déjà en cours d'exécution au lieu de la lancer avec un répertoire de données vide.
Les fonctionnalités suivantes ne s'appliquent qu'aux applications WebView.
- androidActivity: nom de l'activité hébergeant la WebView.
- androidProcess: (facultatif) Nom du processus de l'activité hébergeant la WebView (tel que fourni par ps). Si ce n'est pas le cas, le nom du processus est supposé être identique à
androidPackage
.
Effectuer un test
Les tests doivent transmettre le nom du package de l'application à ChromeDriver via l'option androidPackage
. Par exemple, un test Python minimal se présente comme suit:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option('androidPackage', 'com.android.chrome')
driver = webdriver.Chrome('./chromedriver', options=options)
driver.get('https://google.com')
driver.quit()
Multi-appareils
Pour utiliser un appareil particulier pour une session, spécifiez androidDeviceSerial
comme option Chrome.
Si le numéro de série n'est pas spécifié, le serveur sélectionne au hasard un appareil inutilisé à associer à chaque session. Une erreur est renvoyée si toutes les sessions sont déjà actives sur tous les appareils. Les tests doivent donc s'assurer d'appeler quit à la fin.
Se connecter à wd/hub
Si vos tests s'attendent à se connecter à wd/hub
, vous pouvez ajouter --url-base=wd/hub
au moment du lancement du serveur:
$ ./chromedriver --url-base=wd/hub