Funkcje i opcje Chrome

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:

  1. Użyj klasy ChromeOptions. Ta funkcja jest obsługiwana przez Javę, Pythona itp.
  2. 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.

Nazwa Typ Domyślny  Opis 
args  lista ciągów   Lista argumentów wiersza poleceń, które mają być używane podczas uruchamiania Chrome. Argumenty z powiązaną wartością powinny być rozdzielone znakiem „=” (np. ['start-maximized'], „user-data-dir=/tmp/temp_profile']). Zobacz tutaj .
binary tekst   Ścieżka do pliku wykonywalnego Chrome, którego chcesz użyć (w systemie Mac OS X powinien to być rzeczywisty plik binarny, a nie tylko aplikacja, na przykład „/Applications/Google Chrome.app/Contents/MacOS/Google Chrome”)
extensions lista ciągów   Lista rozszerzeń do Chrome do zainstalowania przy uruchamianiu. Każda pozycja na liście powinna być rozszerzeniem do Chrome (.crx) zakodowanym w formacie base-64.
localState słownik   Słownik z każdym wpisem składającym się z nazwy preferencji i jej wartości. Te ustawienia są stosowane do pliku stanu lokalnego w folderze danych użytkownika.
prefs słownik   Słownik z każdym wpisem składającym się z nazwy preferencji i jej wartości. Te ustawienia mają zastosowanie tylko do używanego profilu użytkownika. Zobacz „Preferencje” w katalogu danych użytkownika Chrome.
detach wartość logiczna fałsz Jeśli zasada ma wartość false (fałsz), przeglądarka Chrome zostanie zamknięta po zakończeniu działania ChromeDriver niezależnie od tego, czy sesja zostanie zakończona. Jeśli ma wartość prawda, przeglądarka Chrome zostanie zamknięta tylko w przypadku zakończenia lub zamknięcia sesji. Uwaga: jeśli ma wartość prawda, a sesja nie została zamknięta, ChromeDriver nie może wyczyścić tymczasowego katalogu danych użytkownika używanego przez uruchomioną instancję Chrome.
debuggerAddress tekst
Adres serwera debugera Chrome, z którym ma się połączyć, w formacie <nazwa hosta/ip:port>, np. „127.0.0.1:38947”
excludeSwitches lista ciągów   Lista przełączników wiersza poleceń Chrome, które wyłączają domyślnie dane ChromeDriver podczas uruchamiania Chrome. Nie prefiksuj przełączników znakiem --.
minidumpPath  tekst   Katalog do przechowywania minizrzutów Chrome . (Funkcja obsługiwana tylko w systemie Linux).
mobileEmulation słownik   Słownik z wartością „deviceName” lub wartościami „deviceMetrics” i „userAgent”. Więcej informacji znajdziesz w artykule o emulacji mobilnej.
perfLoggingPrefs słownik   Opcjonalny słownik, który określa preferencje logowania wydajności. Więcej informacji znajdziesz poniżej.
windowTypes lista ciągów   Lista typów okien, które pojawią się na liście uchwytów. Aby uzyskać dostęp do elementu <webview> Uwzględnij atrybut „webview”, na tej liście.

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