Afhankelijkheden
Binaire bestanden voor ChromeDriver zijn verpakt als zip-bestanden voor verschillende hostplatforms op de downloadpagina .
Ondersteunde apps
ChromeDriver ondersteunt het uitvoeren van tests in de Chrome-browser (versie 30+) en op WebView gebaseerde apps vanaf Android 4.4 (KitKat) die webfoutopsporing en JavaScript hebben ingeschakeld. U kunt de Chrome-app installeren vanaf:
Stabiel: https://play.google.com/store/apps/details?id=com.android.chrome
Selenium WebDriver taalbindingen
De standaard WebDriver-taalbindingen van het selenium-project moeten worden geïnstalleerd voor de taal van uw keuze voor het schrijven van uw tests. Deze bibliotheek is beschikbaar via uw vriendelijke lokale pakketbeheerder of het seleniumproject ( https://www.seleniumhq.org/download/ ). De taalbindingen voor Python kunnen bijvoorbeeld met pip worden geïnstalleerd.
$ pip install selenium
Android-SDK
De SDK kan worden gedownload van developer.android.com/sdk/
Apparaatvereisten
Vanaf Chrome-versie 33 is een geroot apparaat niet langer vereist. Als er tests werden uitgevoerd op lagere versies van Chrome, moesten apparaten worden geroot omdat ChromeDriver schrijftoegang tot de map /data/local
nodig had om de opdrachtregelargumenten van Chrome in te stellen.
Voer ChromeDriver uit
Start de Android Debug Bridge (adb)-server van de Android SDK:
$ adb start-server
Als u test met de Chrome-app vóór versie 33, zorg er dan voor dat adb shell lees-/schrijftoegang heeft tot de map /data/local op het apparaat:
$ adb shell su -c chmod 777 /data/local
Over het algemeen wordt aanbevolen dat u ChromeDriver start via de Selenium-bibliotheek, maar u kunt het ook handmatig starten vanaf de opdrachtregel. Zie Aan de slag voor meer informatie.
$ ./chromedriver
Android-specifieke opties
De volgende Chrome-opties zijn van toepassing op zowel Chrome- als WebView-apps:
-
androidPackage
: de pakketnaam van de Chrome- of WebView-app. -
androidDeviceSerial
: (Optioneel) Het serienummer van het apparaat waarop de app moet worden gestart (zie het gedeelte Meerdere apparaten hieronder). -
androidUseRunningApp
: (Optioneel) Koppel aan een reeds actieve app in plaats van de app te starten met een duidelijke gegevensmap.
De volgende mogelijkheden zijn alleen van toepassing op WebView-apps.
- androidActivity : Naam van de activiteit die de WebView host.
- androidProcess : (Optioneel) Procesnaam van de activiteit die de WebView host (zoals gegeven door ps). Als deze niet wordt opgegeven, wordt aangenomen dat de procesnaam hetzelfde is als
androidPackage
.
Voer een test uit
Tests moeten de pakketnaam van de app doorgeven aan de ChromeDriver via de optie androidPackage
. Een minimale Python-test ziet er bijvoorbeeld als volgt uit:
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()
Meerdere apparaten
Als u een bepaald apparaat voor een sessie wilt gebruiken, geeft u androidDeviceSerial
op als Chrome-optie.
Als het serienummer niet is opgegeven, selecteert de server willekeurig een ongebruikt apparaat om aan elke sessie te koppelen. Er wordt een fout geretourneerd als alle apparaten al actieve sessies hebben. Tests moeten er dus voor zorgen dat er quit wordt aangeroepen als ze klaar zijn.
Maak verbinding met wd/hub
Als uw tests verwachten verbinding te maken met wd/hub
, kunt u --url-base=wd/hub
toevoegen bij het starten van de server:
$ ./chromedriver --url-base=wd/hub