Android

Dépendances

Les binaires pour ChromeDriver peuvent être empaquetés sous forme de fichiers ZIP pour différentes plates-formes hôtes sur la page Téléchargements.

Applis compatibles

ChromeDriver est compatible avec l'exécution de tests dans le navigateur Chrome (version 30 et ultérieures) et dans 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:

Stable: https://play.google.com/store/apps/details?id=com.android.chrome

Liaisons du langage Selenium WebDriver

Les liaisons WebDriver du projet Sélénium standard doivent être installées pour le langage de votre choix afin d'écrire vos tests. Cette bibliothèque est disponible auprès de votre gestionnaire de paquets local ou via le projet selenium (https://www.seleniumhq.org/download/). Par exemple, les liaisons de langage pour Python peuvent être installées avec pip.

$ pip install selenium

SDK Android

Le SDK peut être téléchargé à partir de developer.android.com/sdk/.

Configuration d'appareil requise

À partir de la version 33 de Chrome, un appareil en mode root n'est plus nécessaire. Si vous exécutiez des versions antérieures de Chrome, les appareils devaient être en mode root, car ChromeDriver avait besoin d'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 antérieure à la version 33, assurez-vous que l'interface système adb dispose d'un accès en lecture/écriture au répertoire /data/local sur l'appareil:

     $ adb shell su -c chmod 777 /data/local
    
  3. Il est généralement recommandé de démarrer ChromeDriver via la bibliothèque Selenium, mais vous pouvez aussi le lancer manuellement à partir de la ligne de commande. Pour plus d'informations, consultez la section Premiers pas.

    $ ./chromedriver
    

Options spécifiques à Android

Les options Chrome suivantes s'appliquent aux applications Chrome et WebView:

  • androidPackage: nom de 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) : permet l'association à une application déjà en cours d'exécution au lieu de la lancer avec un répertoire de données clair.

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 qu'indiqué par ps). S'il n'est pas fourni, le nom du processus est supposé être identique à androidPackage.

Exécuter un test

Les tests doivent transmettre le nom de package de l'application au ChromeDriver via l'option androidPackage. Par exemple, un test Python minimal ressemble à ceci:

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 aléatoirement un appareil inutilisé à associer à chaque session. Une erreur est renvoyée si tous les appareils ont déjà des sessions actives. Les tests doivent donc appeler la fonction "Quitter" une fois terminés.

Se connecter à wd/hub

Si vos tests prévoient de se connecter à wd/hub, vous pouvez ajouter --url-base=wd/hub lors du lancement du serveur:

$ ./chromedriver --url-base=wd/hub