Uprawnienia to opcje, których możesz użyć, aby dostosować i skonfigurować sesję ChromeDriver. Na tej stronie opisujemy wszystkie funkcje ChromeDriver i informacje o tym, jak z nich korzystać.
Interfejsy API języka WebDriver umożliwiają przekazywanie możliwości do ChromeDriver. Dokładny mechanizm różni się w zależności od języka, ale w większości języków używany jest co najmniej jeden z tych mechanizmów:
- Użyj zajęć
ChromeOptions
. Ta funkcja jest obsługiwana przez Javę, Pythona itp. - Użyj zajęć
DesiredCapabilities
. Ta funkcja jest obsługiwana przez Pythona, Ruby itp. Mimo że jest też dostępna w Javie, jej użycie w Javie zostało wycofane.
Korzystanie z klasy ChromeOptions
Możesz utworzyć instancję ChromeOptions
, która zawiera wygodne metody ustawiania funkcji specyficznych dla ChromeDriver. Następnie możesz przekazać obiekt ChromeOptions
do konstruktora ChromeDriver:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Od Selenium w wersji 3.6.0 klasa ChromeOptions
w Javie implementuje również interfejs Capabilities
, dzięki czemu można określić inne funkcje WebDriver, które nie są typowe dla ChromeDriver.
ChromeOptions options = new ChromeOptions();
// Add the WebDriver proxy capability.
Proxy proxy = new Proxy();
proxy.setHttpProxy("myhttpproxy:3337");
options.setCapability("proxy", proxy);
// Add a ChromeDriver-specific capability.
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Korzystanie z DesiredCapabilities
Aby użyć funkcji DesiredCapabilities
, musisz znać nazwę funkcji i typ wartości, jaką pobiera ta funkcja. Pełną listę znajdziesz tutaj.
Python
caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)
Ruby
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
Typowe przypadki użycia
Używanie profilu niestandardowego (nazywanego też katalogiem danych użytkownika)
Domyślnie ChromeDriver tworzy nowy profil tymczasowy dla każdej sesji. Może się zdarzyć, że konieczne będzie skonfigurowanie specjalnych ustawień lub po prostu korzystanie z profilu niestandardowego. W pierwszym przypadku możesz użyć funkcji „chrome.prefs” (opisanej poniżej), aby określić preferencje, które zostaną zastosowane po uruchomieniu Chrome. W tym drugim przypadku możesz użyć przełącznika wiersza poleceń Chrome user-data-dir
, aby wskazać Chrome, którego profilu ma używać:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Możesz utworzyć własny profil niestandardowy, uruchamiając Chrome (z wiersza poleceń lub za pomocą ChromeDriver) z przełącznikiem user-data-dir
ustawionym na nowy katalog. Jeśli ścieżka nie istnieje, Chrome utworzy nowy profil w określonej lokalizacji. Następnie możesz zmodyfikować ustawienia profilu i w przyszłości używać tego profilu ChromeDriver. Aby sprawdzić, jakiego profilu używa Chrome, otwórz w przeglądarce stronę chrome://version.
Uruchom Chrome z maksymalizacją
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Używanie pliku wykonywalnego Chrome w niestandardowej lokalizacji
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Blokuj okna dialogowe
Domyślnie ChromeDriver konfiguruje wyskakujące okienka w Chrome. Jeśli chcesz zablokować wyskakujące okienka (tzn. przywrócić normalne działanie Chrome, gdy nie jest kontrolowane przez ChromeDriver), wykonaj te czynności:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
Ustaw katalog pobierania
Poniższy kod pozwala skonfigurować w Chrome pobieranie plików do określonego katalogu. Pamiętaj jednak o kilku kwestiach:
- Chrome nie zezwala na pobieranie niektórych katalogów. W szczególności nie można użyć folderu na komputerze jako katalogu pobierania. W systemie Linux nie można też pobrać pliku z katalogu domowego. Ponieważ dokładna lista zabronionych katalogów może ulec zmianie, zalecamy użycie katalogu, który nie ma specjalnego znaczenia dla systemu.
- ChromeDriver nie czeka automatycznie na zakończenie pobierania. Jeśli przedwcześnie wywołasz sterownik.quit(), Chrome może zakończyć się przed zakończeniem pobierania.
- Ścieżki względne nie zawsze działają. Aby uzyskać najlepszy wynik, użyj pełnej ścieżki.
- W systemie Windows użyj „” jako separatora ścieżek. Używanie znaku „/” w systemie Windows nie działa prawidłowo.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Znane możliwości
Informacje o standardowych funkcjach akceptowanych przez ChromeDriver znajdziesz w dokumentacji Seleniu i standardzie W3C WebDriver. Wymieniamy tu tylko możliwości Chrome.
ChromeOptions
obiekt
Większość funkcji specyficznych dla Chrome jest ujawniana przez obiekt ChromeOptions
. W niektórych językach jest to implementowane przez klasę ChromeOptions
. W innych językach są one przechowywane w słowniku goog:chromeOptions
w potrzebnych funkcjach.
perfLoggingPrefs
obiekt
Słownik perfLoggingPrefs ma następujący format (wszystkie klucze są opcjonalne):
Nazwa | Typ | Domyślne | Opis |
---|---|---|---|
enableNetwork
|
boolean | prawda | Określa, czy zdarzenia z domeny sieci mają być zbierane. |
enablePage
|
boolean | prawda | Określa, czy rejestrować zdarzenia z domeny strony. |
traceCategories
|
ciąg znaków | (puste) | Ciąg znaków zawierający rozdzielone przecinkami kategorie śledzenia Chrome, dla których mają być gromadzone zdarzenia śledzenia. Nieokreślony lub pusty ciąg znaków wyłącza śledzenie. |
bufferUsageReportingInterval
|
dodatnia liczba całkowita | 1000 | Żądana liczba milisekund między zdarzeniami wykorzystania bufora śledzenia w Narzędziach deweloperskich. Jeśli na przykład wartość 1000 to 1000, to Narzędzia deweloperskie będą informowały Cię o stanie bufora śledzenia raz na sekundę. Jeśli raport wskaże, że wykorzystanie bufora wynosi 100%, pojawi się ostrzeżenie. |
Zwrócone zdolności
To jest lista wszystkich zwróconych funkcji Chrome. (tj. co zwraca ChromeDriver, gdy utworzysz nową sesję)
Nazwa | Typ | Opis |
---|---|---|
chrome.chromedriverVersion
|
string, | ChromeDriver |
userDataDir
|
string, | Ścieżka do katalogu danych użytkownika używanego przez Chrome; uwaga: to jest słownik „chrome” |