Uprawnienia to opcje, których możesz używać do dostosowywania i konfigurowania sesji ChromeDriver. Na tej stronie opisujemy wszystkie funkcje obsługiwane przez ChromeDriver i informacje o sposobie ich używania.
Interfejsy API języka WebDriver zapewniają sposoby przekazywania możliwości do ChromeDriver. Dokładny mechanizm różni się w zależności od języka, ale większość języków korzysta z jednego lub obu z tych mechanizmów:
- Użyj klasy
ChromeOptions
. Ta funkcja jest obsługiwana przez Javę, Pythona itp. - Użyj klasy
DesiredCapabilities
. Ta funkcja jest obsługiwana przez języki Python i Ruby. Chociaż ta funkcja jest też dostępna w języku Java, została wycofana.
Używanie klasy ChromeOptions
Możesz utworzyć instancję ChromeOptions
, która udostępnia wygodne metody konfigurowania funkcji typowych dla ChromeDriver. Możesz wtedy przekazać ChromeOptions
do konstruktora ChromeDriver:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Od wersji Selenium w wersji 3.6.0 klasa ChromeOptions
w Javie implementuje również interfejs Capabilities
, umożliwiając określanie innych funkcji 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żywać funkcji DesiredCapabilities
, musisz znać nazwę możliwości i rodzaj potrzebnej wartości. 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
Częste zastosowania
Używanie profilu niestandardowego (nazywanego też katalogiem danych użytkownika)
Domyślnie ChromeDriver tworzy nowy profil tymczasowy na potrzeby każdej sesji. Czasem możesz określić specjalne preferencje lub użyć po prostu profilu niestandardowego. W pierwszym przypadku możesz użyć pliku „chrome.prefs” możliwość (opisana poniżej) określania preferencji, które zostaną zastosowane po uruchomieniu Chrome. Jeśli w tym drugim przypadku chcesz określić, którego profilu ma używać, za pomocą przełącznika wiersza poleceń Chrome user-data-dir
możesz określić, 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 (w wierszu poleceń lub ChromeDriver) i ustaw przełącznik user-data-dir
na nowy katalog. Jeśli ścieżka nie istnieje, Chrome utworzy nowy profil w podanej lokalizacji. Możesz następnie zmienić ustawienia profilu, a ChromeDriver będzie mógł używać tego profilu w przyszłości. Otwórz w przeglądarce stronę chrome://version, aby zobaczyć, jakiego profilu używa Chrome.
Uruchom Chrome zmaksymalizowane
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
Domyślnie ChromeDriver zezwala na wyświetlanie wyskakujących okienek w Chrome. Jeśli chcesz zablokować wyskakujące okienka (tzn. przywrócić normalne działanie Chrome, gdy nie jest ono kontrolowane przez ChromeDriver), wykonaj te czynności:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
Ustaw katalog pobierania
Poniższego kodu można użyć do skonfigurowania Chrome w taki sposób, aby pobierał pliki do określonego katalogu. Należy jednak pamiętać o kilku kwestiach:
- Chrome nie zezwala na używanie do pobierania określonych katalogów. W szczególności nie można użyć folderu na komputerze jako katalogu pobierania. W Linuksie nie można też używać katalogu głównego do pobierania. Dokładna lista zabronionych katalogów może ulec zmianie, dlatego zalecamy użycie katalogu, który nie ma specjalnego znaczenia dla systemu.
- ChromeDriver nie czeka automatycznie na zakończenie pobierania. Jeśli zbyt wcześnie wywołasz drive.quit(), Chrome może przestać działać 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 klawisza „” jako separatorów ścieżek. Używanie znaku „/” nie jest niezawodna w systemie Windows.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Uznane funkcje
W przypadku standardu W3C WebDriver można zapoznać się z dokumentacją Selenium i standardem W3C WebDriver. możliwości akceptowanych przez ChromeDriver. Tutaj podane są wyłącznie funkcje zabezpieczeń.
ChromeOptions
obiekt
Większość funkcji typowych dla Chrome jest widoczna w ChromeOptions
obiektu. W niektórych językach jest to implementowane przez klasę ChromeOptions
. W
innych języków są przechowywane w słowniku goog:chromeOptions
w
niezbędnych funkcji.
perfLoggingPrefs
obiekt
Słownik perfLoggingPrefs ma następujący format (wszystkie klucze są opcjonalne):
Nazwa | Typ | Domyślny | Opis |
---|---|---|---|
enableNetwork
|
wartość logiczna | prawda | Określa, czy mają być zbierane zdarzenia z domeny sieci. |
enablePage
|
wartość logiczna | prawda | Określa, czy mają być zbierane 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ć rejestrowane 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 użycia bufora śledzenia w Narzędziach deweloperskich. Jeśli np. wartość wynosi 1000, a potem raz na sekundę, Narzędzia deweloperskie zgłaszają poziom naładowania bufora śledzenia. Jeśli w raporcie pojawi się informacja o wykorzystaniu bufora na poziomie 100%, pojawi się ostrzeżenie. |
Zwrócone funkcje
To jest lista wszystkich zwróconych funkcji Chrome. (tj. jakie informacje zwraca ChromeDriver po utworzeniu nowej sesji)
Nazwa | Typ | Opis |
---|---|---|
chrome.chromedriverVersion
|
tekst | wersja ChromeDriver |
userDataDir
|
tekst | ścieżka do katalogu danych użytkownika, którego używa Chrome; Uwaga, to jest w „Chrome” słownik |