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
Starten Sie den ADB-Server (Android Debug Bridge) des Android SDK:
$ adb start-server
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
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