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