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