Mithilfe von Funktionen können Sie eine ChromeDriver-Sitzung anpassen und konfigurieren. Auf dieser Seite werden alle von ChromeDriver unterstützten Funktionen und ihre Verwendung beschrieben.
Die WebDriver-Sprach-APIs bieten Möglichkeiten, ChromeDriver Funktionen zu übergeben. Der genaue Mechanismus unterscheidet sich je nach Sprache. In den meisten Sprachen werden jedoch einer oder beide der folgenden Mechanismen verwendet:
- 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. Die Funktion ist zwar auch in Java verfügbar, wird dort aber nicht mehr unterstützt.
ChromeOptions-Klasse verwenden
Sie können eine Instanz von ChromeOptions
erstellen, die praktische Methoden zum Festlegen von ChromeDriver-spezifischen Funktionen bietet. Sie können das ChromeOptions
-Objekt dann an den ChromeDriver-Konstruktor übergeben:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Seit Selenium 3.6.0 implementiert die ChromeOptions
-Klasse in Java auch die Capabilities
-Schnittstelle. So können Sie andere WebDriver-Funktionen angeben, die nicht spezifisch 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 Funktion und den Werttyp kennen. Vollständige Liste
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
Standardmäßig erstellt ChromeDriver für jede Sitzung ein neues temporäres Profil. Sie können spezielle Einstellungen festlegen oder einfach ein benutzerdefiniertes Profil verwenden, das auch als Nutzerdatenverzeichnis bezeichnet wird.
Wenn Sie das temporäre Profil verwenden, können Sie mit der Funktion chrome.prefs
Einstellungen festlegen, die nach dem Starten von Chrome angewendet werden sollen. Bei benutzerdefinierten Profilen können Sie Chrome über die Chrome-Befehlszeilenoption user-data-dir
mitteilen, welches Profil verwendet werden soll:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Erstellen Sie ein eigenes benutzerdefiniertes Profil, indem Sie Chrome über die Befehlszeile oder mit ChromeDriver ausführen und dabei die Option user-data-dir
auf ein neues Verzeichnis festlegen.
Wenn der Pfad nicht vorhanden ist, erstellt Chrome ein neues Profil an dem angegebenen Speicherort. Sie können dann die Profileinstellungen ändern und ChromeDriver kann das Profil in Zukunft verwenden. Öffnen Sie chrome://version
im Browser, um zu sehen, welches Profil in Chrome verwendet wird.
Chrome maximiert starten
Maximieren Sie Chrome mit der Taste start-maximized
:
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Chrome-Ausführbares Programm an einem nicht standardmäßigen Speicherort verwenden
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Dialogfelder blockieren
Standardmäßig konfiguriert ChromeDriver Chrome so, dass Pop-up-Fenster zugelassen werden. Wenn Sie Pop-ups blockieren und das normale Chrome-Verhalten wiederherstellen möchten, wenn Chrome nicht vom 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 gibt jedoch einige Einschränkungen:
- Chrome erlaubt nicht, bestimmte Verzeichnisse für den Download zu verwenden. Insbesondere können Sie den Desktop-Ordner nicht als Downloadverzeichnis verwenden. Unter Linux können Sie das Basisverzeichnis nicht für den Download verwenden. Die genaue Liste der verbotenen Verzeichnisse kann sich ändern. Wir empfehlen daher, ein eindeutiges Verzeichnis zu verwenden, das für das System keine besondere Bedeutung hat.
- ChromeDriver wartet nicht automatisch, bis der Download abgeschlossen ist. Wenn Sie
driver.quit()
zu früh aufrufen, wird Chrome möglicherweise beendet, bevor der Download abgeschlossen ist. - Die besten Ergebnisse erzielen Sie mit vollständigen Pfaden, da relative Pfade nicht immer funktionieren.
- Unter Windows: Verwenden Sie
\` as path separators.
. Unter Windows ist das Zeichen „/`“ 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);
Unterstützte Funktionen
Lesen Sie die Selenium-Dokumentation und den W3C WebDriver-Standard, um mehr über die von ChromeDriver unterstützten Standardfunktionen zu erfahren. Hier sind die Chrome-spezifischen Funktionen aufgeführt.
ChromeOptions
Objekt
Die meisten Chrome-spezifischen Funktionen werden über das ChromeOptions
-Objekt bereitgestellt. In einigen Sprachen werden sie von der Klasse ChromeOptions
implementiert. In anderen Sprachen werden sie in ausgewählten Funktionen im goog:chromeOptions
-Wörterbuch gespeichert.
perfLoggingPrefs
Objekt
Das perfLoggingPrefs
-Wörterbuch hat folgendes Format: Alle Schlüssel sind optional:
Zurückgegebene Funktionen
Hier finden Sie eine Liste aller Chrome-spezifischen zurückgegebenen Funktionen, d. h., was ChromeDriver zurückgibt, wenn Sie eine neue Sitzung erstellen.