Android

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

  1. Démarrez le serveur Android Debug Bridge (adb) du SDK Android:

    $ adb start-server
    
  2. 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
    
  3. 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