Możliwości to opcje, których możesz używać do dostosowywania i konfigurowania sesji ChromeDriver. Ta strona zawiera informacje o wszystkich obsługiwanych przez ChromeDriver funkcjach i o sposobie ich używania.
Interfejsy API języka WebDriver umożliwiają przekazywanie funkcji do ChromeDriver. Dokładny mechanizm zależy od języka, ale większość języków używa jednego lub obu z tych mechanizmów:
- Użyj klasy
ChromeOptions
. Jest to obsługiwane przez Java, Python itp. - Użyj klasy
DesiredCapabilities
. Jest to obsługiwane przez Pythona, Ruby itp. Chociaż jest też dostępne w Java, jego użycie w tym języku jest nieużywane.
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 wersji 3.6.0 Selenium klasa ChromeOptions
w Javie implementuje również interfejs Capabilities
, co pozwala określać inne możliwości WebDrivera, które nie są specyficzne dla ChromeDrivera.
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);
Używanie DesiredCapabilities
Aby używać funkcji DesiredCapabilities
, musisz znać jej nazwę i typ wartości, którą zwraca. Zobacz pełną listę.
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 zastosowania
Używanie profilu niestandardowego
Domyślnie ChromeDriver tworzy nowy tymczasowy profil dla każdej sesji. Możesz ustawić specjalne ustawienia lub po prostu użyć profilu niestandardowego, zwanego też katalogiem danych użytkownika.
Jeśli używasz profilu tymczasowego, możesz użyć funkcji chrome.prefs
, aby określić ustawienia, które mają być stosowane po uruchomieniu Chrome. W przypadku profili niestandardowych możesz użyć przełącznika wiersza poleceń Chrome user-data-dir
, aby określić, którego profilu użyć:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Utwórz własny profil niestandardowy, uruchamiając Chrome w wierszu poleceń lub za pomocą ChromeDriver, używając przełącznika user-data-dir
ustawionego na nowy katalog.
Jeśli ścieżka nie istnieje, Chrome utworzy nowy profil w określonym miejscu. Następnie możesz zmodyfikować ustawienia profilu, a ChromeDriver będzie mógł go używać w przyszłości. Otwórz chrome://version
w przeglądarce, aby sprawdzić, którego profilu używa Chrome.
Uruchom Chrome w trybie pełnoekranowym
Uruchom Chrome w trybie pełnoekranowym, używając przełącznika start-maximized
:
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");
Blokowanie okien dialogowych
Domyślnie ChromeDriver konfiguruje Chrome tak, aby zezwalał na okna wyskakujące. Jeśli chcesz zablokować wyskakujące okienka i 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"));
Ustawianie katalogu pobierania
Aby skonfigurować Chrome tak, aby pobierało pliki do określonego katalogu, możesz użyć poniższego kodu. Należy jednak pamiętać o kilku ograniczeniach:
- Chrome nie zezwala na pobieranie plików z pewnych katalogów. W szczególności nie możesz użyć folderu na pulpicie jako katalogu pobierania. W systemie Linux nie można pobierać plików do katalogu domowego. Dokładna lista zakazanych katalogów może ulec zmianie, dlatego zalecamy używanie unikalnego katalogu, który nie ma specjalnego znaczenia dla systemu.
- ChromeDriver nie czeka automatycznie na zakończenie pobierania. Jeśli wywołasz funkcję
driver.quit()
zbyt wcześnie, Chrome może się zamknąć przed zakończeniem pobierania. - Aby uzyskać najlepsze wyniki, używaj pełnych ścieżek, ponieważ ścieżki względne nie zawsze działają.
- W systemie Windows użyj
\` as path separators.
/`.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Rozpoznane funkcje
Zapoznaj się z dokumentacją Selenium i standardem W3C WebDriver, aby dowiedzieć się, jakie standardowe funkcje są obsługiwane przez ChromeDriver. Poniżej przedstawiamy funkcje dostępne w Chrome.
ChromeOptions
obiekt
Większość funkcji specyficznych dla Chrome jest udostępniana za pomocą obiektu ChromeOptions
. W niektórych językach są one implementowane przez klasę ChromeOptions
. W innych językach są one przechowywane w słowniku goog:chromeOptions
w wybranych funkcjach.
perfLoggingPrefs
obiekt
Słownik perfLoggingPrefs
ma następujący format. Wszystkie klucze są opcjonalne:
Zwrócone możliwości
Oto lista wszystkich zwracanych przez Chrome funkcji, czyli tego, co zwraca obiekt ChromeDriver, gdy tworzysz nową sesję.