Android

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

  1. Start de Android Debug Bridge (adb)-server van de Android SDK:

    $ adb start-server
    
  2. 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
    
  3. 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