Android

Abhängigkeiten

Binärdateien für ChromeDriver sind als ZIP-Dateien für verschiedene Hosts Plattformen auf der Downloadseite.

Unterstützte Apps

ChromeDriver unterstützt das Ausführen von Tests im Chrome-Browser (Version 30 oder höher) und WebView-basierte Apps ab Android 4.4 (KitKat), bei denen Web-Debugging und JavaScript aktiviert sind. Sie können die Chrome App hier installieren:

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

Selenium WebDriver-Sprachbindungen

Die WebDriver-Standardsprachbindungen des Selenium-Projekts müssen für die Sprache Ihrer Wahl zum Schreiben Ihrer Tests installiert werden. Diese Bibliothek erhalten Sie von Ihrem lokalen Paketmanager oder über das Selenium-Projekt (https://www.seleniumhq.org/download/). Die Sprachbindungen für Python können beispielsweise mit pip installiert werden.

$ pip install selenium

Android SDK

Das SDK kann hier heruntergeladen werden: developer.android.com/sdk/

Geräteanforderungen

Ab Chrome-Version 33 ist kein Root-Gerät mehr erforderlich. Beim Ausführen von Tests Bei älteren Chrome-Versionen mussten die Geräte als ChromeDriver gerootet werden. erforderliche Schreibzugriff auf das Verzeichnis /data/local, um den Befehl von Chrome festzulegen Zeilenargumente.

ChromeDriver ausführen

  1. Starten Sie den ADB-Server (Android Debug Bridge) des Android SDK:

    $ adb start-server
    
  2. Wenn Sie eine Chrome-App vor Version 33 testen, achten Sie darauf, dass die ADB-Shell Lese-/Schreibzugriff auf das Verzeichnis /data/local auf dem Gerät hat:

     $ adb shell su -c chmod 777 /data/local
    
  3. Generell wird empfohlen, ChromeDriver über die Selenium-Bibliothek zu starten. Sie können ChromeDriver jedoch auch manuell über die Befehlszeile starten. Weitere Informationen finden Sie unter Erste Schritte.

    $ ./chromedriver
    

Android-spezifische Optionen

Die folgenden Chrome-Optionen gelten sowohl für Chrome als auch für WebView-Apps:

  • androidPackage: Der Paketname der Chrome- oder WebView-App.
  • androidDeviceSerial (optional): Die Seriennummer des Geräts, auf dem die App gestartet werden soll (siehe Abschnitt „Mehrere Geräte“ unten).
  • androidUseRunningApp (optional): Sie können eine Verknüpfung mit einer bereits laufenden App herstellen, anstatt die App mit einem leeren Datenverzeichnis zu starten.

Die folgenden Funktionen gelten nur für WebView-Apps.

  • androidActivity: Name der Aktivität, die das WebView hostet.
  • androidProcess: (optional) Prozessname der Aktivität, die WebView hostet (gemäß ps). Wenn nicht angegeben, wird angenommen, dass der Prozessname mit androidPackage identisch ist.

Test ausführen

Bei Tests sollte der Paketname der App über die Option androidPackage an ChromeDriver übergeben werden. Ein minimaler Python-Test sieht beispielsweise so aus:

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()

Mehrere Geräte

Wenn Sie ein bestimmtes Gerät für eine Sitzung verwenden möchten, geben Sie androidDeviceSerial als Chrome-Option.

Ist keine Seriennummer angegeben, wählt der Server ein nicht verwendetes Gerät aus. zufällig mit jeder Sitzung verknüpft werden. Wenn alle Geräte haben bereits aktive Sitzungen, daher sollten die Tests darauf achten, dass Sie quit aufrufen, wenn abgeschlossen.

Mit wd/hub verbinden

Wenn bei Ihren Tests eine Verbindung mit wd/hub erwartet wird, können Sie --url-base=wd/hub hinzufügen wenn Sie den Server starten:

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