Android

Die neuesten Binärdateien für ChromeDriver sind als ZIP-Dateien für verschiedene Hostplattformen verpackt.

Frühere Versionen von ChromeDriver finden Sie unter Downloads.

Unterstützte Apps

ChromeDriver unterstützt das Ausführen von Tests im Chrome-Browser (Version 30 und höher) und in WebView-basierten Apps ab Android 4.4 (KitKat), für die Web-Debugging und JavaScript aktiviert sind.

Sie können die Chrome App an folgenden Stellen installieren:

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

Selenium WebDriver-Sprachbindungen

Die Standard-WebDriver-Sprachbindungen für das Selenium-Projekt müssen für die von Ihnen ausgewählte Sprache installiert sein, damit Sie Ihre Tests schreiben können. Diese Bibliothek ist in Ihrem lokalen Paketmanager oder im Selenium-Projekt verfügbar.

Die Sprachbindungen für Python können beispielsweise mit pip installiert werden.

$ pip install selenium

Android SDK

Das SDK kann unter developer.android.com/sdk/ heruntergeladen werden.

Geräteanforderungen

Ab Chrome-Version 33 ist kein gerootetes Gerät mehr erforderlich. Wenn Sie Tests mit früheren Chrome-Versionen ausführen, müssen die Geräte gerootet sein, da ChromeDriver Schreibzugriff auf das Verzeichnis /data/local benötigt, um die Befehlszeilenargumente von Chrome festzulegen.

ChromeDriver ausführen

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

    $ adb start-server
    
  2. Wenn Sie die Chrome App vor Version 33 testen, muss die adb-Shell Lese- und Schreibzugriff auf das Verzeichnis /data/local auf dem Gerät haben:

    $ adb shell su -c chmod 777 /data/local
    
  3. Wir empfehlen, ChromeDriver über die Selenium-Bibliothek zu starten. Sie können ihn aber auch manuell über die Befehlszeile starten.

    $ ./chromedriver
    

Nur für Android verfügbare 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) An eine bereits laufende App anhängen, anstatt die App mit einem leeren Datenverzeichnis zu starten.

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

  • androidActivity: Name der Aktivität, die die WebView hostet.
  • androidProcess: (Optional) Prozessname der Aktivität, die die WebView hostet (wie von ps angegeben). Wenn Sie keinen Prozessnamen angeben, wird davon ausgegangen, dass er mit androidPackage identisch ist.

Test starten

Bei Tests sollte der Paketname der App über die Option androidPackage an den 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 an.

Wenn die Seriennummer nicht angegeben ist, wählt der Server nach dem Zufallsprinzip ein ungenutztes Gerät aus, das jeder Sitzung zugeordnet wird. Wenn alle Geräte bereits aktive Sitzungen haben, wird ein Fehler zurückgegeben. Daher sollte in Tests am Ende die Funktion „quit“ aufgerufen werden.

Mit wd/hub verbinden

Wenn Ihre Tests eine Verbindung zu wd/hub herstellen sollen, können Sie --url-base=wd/hub beim Starten des Servers hinzufügen:

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