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