Android

Zależności

Pliki binarne ChromeDriver można znaleźć w postaci plików ZIP z różnymi platformami hostującymi na stronie pobierania.

Obsługiwane aplikacje

ChromeDriver obsługuje testy w przeglądarce Chrome (w wersji 30 lub nowszej) oraz w aplikacjach opartych na WebView na urządzeniach z Androidem 4.4 (KitKat), w których włączono debugowanie witryn i JavaScript. Aplikację Chrome możesz zainstalować z tych stron:

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

Powiązania języka Selenium WebDriver

Dla wybranego języka podczas pisania testów musisz zainstalować standardowe powiązania języka projektu WebDriver w projekcie selenium. Dostęp do tej biblioteki możesz uzyskać w lokalnym menedżerze pakietów lub w projekcie selenium (https://www.seleniumhq.org/download/). Na przykład powiązania języka Pythona można zainstalować za pomocą pip.

$ pip install selenium

Android SDK

Pakiet SDK można pobrać ze strony developer.android.com/sdk/.

Wymagania dotyczące urządzeń

Od wersji Chrome 33 urządzenie z dostępem do roota nie jest już wymagane. W przypadku testów w starszych wersjach Chrome urządzenie musiało mieć dostęp do roota, ponieważ ChromeDriver wymagało uprawnień do zapisu w katalogu /data/local, aby można było ustawić argumenty wiersza poleceń Chrome.

Uruchom ChromeDriver

  1. Uruchom serwer Android Debug Bridge (adb) pakietu Android SDK:

    $ adb start-server
    
  2. Jeśli testujesz aplikację Chrome w wersji starszej niż 33, upewnij się, że powłoka adb ma uprawnienia do odczytu i zapisu w katalogu /data/local na urządzeniu:

     $ adb shell su -c chmod 777 /data/local
    
  3. Ogólnie zalecamy uruchamianie ChromeDriver z użyciem biblioteki Selenium, ale możesz też zrobić to ręcznie z poziomu wiersza poleceń. Więcej informacji znajdziesz w temacie Wprowadzenie.

    $ ./chromedriver
    

Opcje na Androidzie

Te opcje Chrome mają zastosowanie zarówno do aplikacji Chrome, jak i aplikacji WebView:

  • androidPackage: nazwa pakietu aplikacji Chrome lub WebView.
  • androidDeviceSerial: (opcjonalnie) numer seryjny urządzenia, na którym chcesz uruchomić aplikację (patrz sekcja Wiele urządzeń poniżej).
  • androidUseRunningApp: (opcjonalnie) dołącz do już uruchomionej aplikacji, zamiast uruchamiać ją z czystym katalogiem danych.

Funkcje opisane poniżej dotyczą tylko aplikacji WebView.

  • androidActivity: nazwa aktywności hostującej komponent WebView.
  • androidProcess: (opcjonalnie) nazwa procesu aktywności hostującej komponent WebView (zgodnie z parametrem ps). Jeśli nie podano żadnej nazwy, przyjmuje się, że nazwa procesu jest taka sama jak androidPackage.

Uruchom test

Testy powinny przekazać nazwę pakietu aplikacji do sterownika Chrome za pomocą opcji androidPackage. Minimalny test w Pythonie wygląda na przykład tak:

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()

Dostępność na wielu urządzeniach

Aby podczas sesji używać określonego urządzenia, jako opcję Chrome podaj androidDeviceSerial.

Jeśli numer seryjny nie zostanie podany, serwer losowo wybiera nieużywane urządzenie do powiązania z każdą sesją. Jeśli wszystkie urządzenia mają już aktywne sesje, zwracany jest błąd. Dlatego po zakończeniu testów powinien być wywoływany komunikat Zakończ.

Połącz z: wd/hub

Jeśli testy spodziewają się połączenia z wd/hub, możesz dodać --url-base=wd/hub podczas uruchamiania serwera:

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