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
Uruchom serwer Android Debug Bridge (adb) w Android SDK:
$ adb start-server
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
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