Android

Dépendances

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

Applis compatibles

ChromeDriver permet d'exécuter des tests sur le navigateur Chrome (version 30+) et Applications basées sur WebView à partir d'Android 4.4 (KitKat) et pour lesquelles le débogage Web et JavaScript sont activés. Vous pouvez installer l'application Chrome depuis:

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

Liaisons de langage Selenium WebDriver

Les liaisons de langage WebDriver du projet Selenium standard doivent être installées dans le langage de votre choix pour écrire vos tests. Cette bibliothèque est disponible auprès de votre gestionnaire de packages local convivial ou auprès du 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

Vous pouvez télécharger le SDK depuis 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 effectuez des tests Dans les versions antérieures de Chrome, les appareils devaient être en mode root en tant que ChromeDriver Accès en écriture au répertoire /data/local requis pour définir la commande Chrome des arguments de ligne de commande.

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 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 également le démarrer manuellement à partir de la ligne de commande. Pour en savoir plus, consultez la section "Premiers pas".

    $ ./chromedriver
    

Options spécifiques à Android

Les options Chrome suivantes s'appliquent à la fois 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) : associez-le à 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 du package de l'application au pilote Chrome 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 spécifique pour une session, spécifiez androidDeviceSerial comme Option Chrome.

Si le numéro de série n'est pas indiqué, le serveur sélectionne un périphérique inutilisé à l'adresse de manière aléatoire à associer à chaque session. Une erreur s'affiche si tous les appareils ont déjà des sessions actives, les tests doivent donc s'assurer d'appeler l'arrêt terminé.

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