Android

Zależności

Pliki binarne ChromeDriver można znaleźć w postaci plików ZIP dla różnych hostów na stronie pobierania.

Obsługiwane aplikacje

ChromeDriver obsługuje testy w przeglądarce Chrome (w wersji 30 i nowszych) oraz aplikacje oparte na WebView w wersji od Androida 4.4 (KitKat), które obsługują debugowanie witryny i JavaScript; Aplikację Chrome możesz zainstalować z:

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

Powiązania języka Selenium WebDriver

Na potrzeby pisania testów w wybranym języku musisz zainstalować standardowe powiązania językowe projektu WebDriver w systemie selenium. Ta biblioteka jest dostępna w lokalnym menedżerze pakietów lub w projekcie selenium (https://www.seleniumhq.org/download/). Powiązania języka w Pythonie można na przykład zainstalować za pomocą pip.

$ pip install selenium

Pakiet SDK do Androida

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. Jeśli przeprowadzasz testy w starszych wersjach Chrome urządzenie wymagało dostępu do roota jako ChromeDriver. wymagane jest uprawnienie do zapisu w katalogu /data/local w celu ustawienia polecenia Chrome argumentów liniowych.

Uruchom ChromeDriver

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

    $ adb start-server
    
  2. Jeśli testujesz aplikację Chrome w wersji wcześniejszej 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 przy użyciu biblioteki Selenium, ale możesz też uruchamiać go ręcznie z poziomu wiersza poleceń. Więcej informacji znajdziesz w artykule Pierwsze kroki.

    $ ./chromedriver
    

Opcje dotyczące Androida

Te opcje Chrome dotyczą zarówno aplikacji Chrome, jak i aplikacji WebView:

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

Opisane poniżej funkcje mają zastosowanie tylko do aplikacji WebView.

  • androidActivity: nazwa aktywności hostującej komponent WebView.
  • androidProcess: (opcjonalnie) nazwa procesu aktywności hostującej komponent WebView (podana przez ps). Jeśli nazwa procesu nie zostanie podana, zakłada się, że nazwa procesu będzie taka sama jak androidPackage.

Uruchom test

Testy powinny przekazywać nazwę pakietu aplikacji do funkcji ChromeDriver za pomocą opcji androidPackage. Na przykład minimalny test w Pythonie wygląda 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 użyć określonego urządzenia podczas sesji, wybierz androidDeviceSerial jako Opcja Chrome.

Jeśli numer seryjny nie zostanie podany, serwer wybierze nieużywane urządzenie pod adresem losowe do powiązania z każdą sesją. Zwracany jest błąd, jeśli wszystkie urządzenia mają już aktywne sesje, więc testy powinny wywoływać zakończenie, gdy .

Połącz z: wd/hub

Jeśli testy mają na celu połączenie z siecią wd/hub, możesz dodać adres --url-base=wd/hub podczas uruchamiania serwera:

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