Funktionen sind Optionen, mit denen Sie eine ChromeDriver-Sitzung anpassen und konfigurieren können. Auf dieser Seite werden alle von ChromeDriver unterstützten Funktionen und ihre Verwendung dokumentiert.
Mit den Sprach-APIs von WebDriver können Sie Funktionen an ChromeDriver übergeben. Der genaue Mechanismus unterscheidet sich je nach Sprache, aber die meisten Sprachen verwenden einen oder beide der folgenden Mechanismen:
- Verwenden Sie die Klasse
ChromeOptions
. Dies wird von Java, Python usw. unterstützt. - Verwenden Sie die Klasse
DesiredCapabilities
. Dies wird von Python, Ruby usw. unterstützt. Sie ist zwar auch in Java verfügbar, wurde jedoch in Java nicht mehr unterstützt.
ChromeOptions-Klasse verwenden
Sie können eine Instanz von ChromeOptions
erstellen. Dort finden Sie praktische Methoden, um ChromeDriver-spezifische Funktionen festzulegen. Sie können dann die ChromeOptions
in den ChromeDriver-Konstruktor übertragen:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Seit Selenium Version 3.6.0 implementiert die ChromeOptions
-Klasse in Java auch die Capabilities
-Schnittstelle, sodass du andere WebDriver-Funktionen angeben kannst, die nicht speziell für ChromeDriver sind.
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);
DesiredCapabilities verwenden
Wenn Sie DesiredCapabilities
verwenden möchten, müssen Sie den Namen der Capability und den erforderlichen Werttyp kennen. Die vollständige Liste findest du hier.
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
Gängige Anwendungsfälle
Benutzerdefiniertes Profil verwenden (auch als Nutzerdatenverzeichnis bezeichnet)
ChromeDriver erstellt standardmäßig für jede Sitzung ein neues temporäres Profil. Manchmal möchten Sie vielleicht spezielle Einstellungen festlegen oder einfach nur ein benutzerdefiniertes Profil verwenden. Wenn Ersterer zutrifft, können Sie die Datei „chrome.prefs“ (wird weiter unten beschrieben), um Einstellungen festzulegen, die nach dem Start von Chrome angewendet werden. Wenn Letzteres der Fall ist, können Sie Chrome über die user-data-dir
-Befehlszeile mitteilen, welches Profil verwendet werden soll:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Sie können Ihr eigenes benutzerdefiniertes Profil erstellen, indem Sie Chrome einfach über die Befehlszeile oder über ChromeDriver ausführen und dabei den Schalter user-data-dir
auf ein neues Verzeichnis einstellen. Wenn der Pfad nicht vorhanden ist, erstellt Chrome am angegebenen Speicherort ein neues Profil. Anschließend können Sie die Profileinstellungen nach Bedarf ändern und ChromeDriver kann das Profil in Zukunft verwenden. Öffnen Sie chrome://version im Browser, um zu sehen, welches Profil Chrome verwendet.
Chrome maximiert starten
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Verwendung einer ausführbaren Chrome-Datei an einem nicht standardmäßigen Speicherort
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Dialogfenster blockieren
ChromeDriver konfiguriert Chrome standardmäßig so, dass Pop-up-Fenster zugelassen werden. Wenn Sie Pop-ups blockieren möchten, also das normale Chrome-Verhalten wiederherstellen möchten, wenn es nicht von ChromeDriver gesteuert wird, gehen Sie so vor:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
Downloadverzeichnis festlegen
Mit dem folgenden Code können Sie Chrome so konfigurieren, dass Dateien in ein bestimmtes Verzeichnis heruntergeladen werden. Es sind jedoch einige Einschränkungen zu beachten:
- Chrome unterbindet die Verwendung bestimmter Verzeichnisse zum Herunterladen. Insbesondere darf der Desktop-Ordner nicht als Downloadverzeichnis verwendet werden. Unter Linux können Sie auch das Basisverzeichnis nicht für den Download verwenden. Da die genaue Liste unzulässiger Verzeichnisse noch geändert werden kann, empfiehlt es sich, ein Verzeichnis zu verwenden, das für das System keine besondere Bedeutung hat.
- ChromeDriver wartet nicht automatisch auf den Abschluss des Downloads. Wenn Sie drive.quit() zu früh aufrufen, wird Chrome möglicherweise beendet, bevor der Download abgeschlossen ist.
- Relative Pfade funktionieren nicht immer. Verwenden Sie stattdessen den vollständigen Pfad, um ein optimales Ergebnis zu erzielen.
- Verwenden Sie unter Windows "" als Pfadtrennzeichen verwendet. "/" verwenden ist unter Windows nicht zuverlässig.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Erkannte Funktionen
Entsprechende Informationen finden Sie in der Selenium-Dokumentation und im W3C WebDriver-Standard. die von ChromeDriver akzeptiert werden. Hier sind nur Chrome-spezifische Funktionen.
ChromeOptions
Objekt
Die meisten Chrome-spezifischen Funktionen werden über die ChromeOptions
bereitgestellt.
-Objekt enthält. In einigen Sprachen wird dies durch die Klasse ChromeOptions
implementiert. In
anderen Sprachen werden sie im Wörterbuch goog:chromeOptions
gespeichert in
die gewünschten Funktionen bieten.
perfLoggingPrefs
Objekt
Das Wörterbuch perfLoggingPrefs hat das folgende Format (alle Schlüssel sind optional):
Name | Typ | Standardeinstellung | Beschreibung |
---|---|---|---|
enableNetwork
|
boolean | wahr | Gibt an, ob Ereignisse aus der Netzwerkdomain erfasst werden sollen. |
enablePage
|
boolean | wahr | Gibt an, ob Ereignisse aus der Seitendomain erfasst werden sollen. |
traceCategories
|
String | (leer) | Ein durch Kommas getrennter String der Chrome-Tracingkategorien, für die Trace-Ereignisse erfasst werden sollen. Ein nicht spezifizierter oder leerer String deaktiviert das Tracing. |
bufferUsageReportingInterval
|
positive Ganzzahl | 1000 | Die angeforderte Anzahl von Millisekunden zwischen den Nutzungsereignissen des Trace-Zwischenspeichers in den Entwicklertools. Bei 1.000 wird einmal pro Sekunde in den Entwicklertools gemeldet, wie voll der Trace-Zwischenspeicher ist. Wenn in einem Bericht angegeben ist, dass die Puffernutzung 100 % beträgt, wird eine Warnung ausgegeben. |
Zurückgegebene Funktionen
Dies ist eine Liste aller Chrome-spezifischen Funktionen. (d.h., was ChromeDriver zurückgibt, wenn Sie eine neue Sitzung erstellen)
Name | Typ | Beschreibung |
---|---|---|
chrome.chromedriverVersion
|
String | Version von ChromeDriver |
userDataDir
|
String | Pfad zum Verzeichnis der Nutzerdaten, das Chrome verwendet; Hinweis: Dies befindet sich in einem Chrome- Wörterbuch |