Android

Najnowsze binarne pliki wykonywalne ChromeDriver są pakowane jako pliki ZIP na potrzeby różnych platform hosta.

Starsze wersje ChromeDriver można znaleźć w sekcji Pobrane.

Obsługiwane aplikacje

ChromeDriver obsługuje uruchamianie testów w przeglądarce Chrome (w wersji 30 lub nowszej) oraz aplikacjach opartych na WebView od wersji Androida 4.4 (KitKat), które mają włączone debugowanie sieci i JavaScript.

Aplikację Chrome możesz zainstalować z:

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

Powiązania języka Selenium WebDriver

Aby pisać testy, musisz zainstalować standardowe wiązania języka WebDriver w projekcie Selenium. Ta biblioteka jest dostępna w lokalnym menedżerze pakietów lub w projekcie Selenium.

Na przykład interfejsy językowe dla Pythona można 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 33 Chrome nie wymaga już rootowania urządzenia. Jeśli testy są wykonywane na starszych wersjach Chrome, urządzenia muszą mieć uprawnienia roota, ponieważ ChromeDriver wymaga dostępu do zapisu do katalogu /data/local, aby ustawić argumenty wiersza poleceń Chrome.

Uruchamianie ChromeDriver

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

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

    $ adb shell su -c chmod 777 /data/local
    
  3. Zalecamy uruchomienie ChromeDriver za pomocą biblioteki Selenium, ale możesz też uruchomić go ręcznie z poziomu wiersza poleceń.

    $ ./chromedriver
    

Opcje dostępne tylko na Androidzie

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

  • androidPackage: nazwa pakietu aplikacji Chrome lub WebView.
  • androidDeviceSerial: (opcjonalnie) numer seryjny urządzenia, na którym ma być uruchamiana aplikacja (patrz sekcja o wielu urządzeniach poniżej).
  • androidUseRunningApp: (opcjonalnie) zamiast uruchamiać aplikację z pusta katalogiem danych, możesz dołączyć do niej już uruchomioną aplikację.

Poniższe funkcje są dostępne tylko w przypadku aplikacji WebView.

  • androidActivity: nazwa aktywności hostującej WebView.
  • androidProcess: (opcjonalnie) nazwa procesu działania czynności, która obsługuje WebView (zdefiniowana przez ps). Jeśli nie podano nazwy procesu, przyjmuje się, że jest ona taka sama jak androidPackage.

Uruchom test

Testy powinny przekazywać nazwę pakietu aplikacji do 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żywać określonego urządzenia w ramach sesji, jako opcję Chrome wybierz androidDeviceSerial.

Jeśli numer seryjny nie jest określony, 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 testy powinny wywołać quit po zakończeniu.

Połącz z: wd/hub

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

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