Mogelijkheden zijn opties die u kunt gebruiken om een ChromeDriver-sessie aan te passen en te configureren. Deze pagina documenteert alle door ChromeDriver ondersteunde mogelijkheden en hoe u deze kunt gebruiken.
De WebDriver-taal-API's bieden manieren om mogelijkheden door te geven aan ChromeDriver. Het exacte mechanisme verschilt per taal, maar de meeste talen gebruiken een of beide van de volgende mechanismen:
- Gebruik de klasse
ChromeOptions
. Dit wordt ondersteund door Java, Python, etc. - Gebruik de klasse
DesiredCapabilities
. Dit wordt ondersteund door Python, Ruby, etc. Hoewel het ook beschikbaar is in Java, is het gebruik ervan in Java verouderd.
De ChromeOptions-klasse gebruiken
U kunt een exemplaar van ChromeOptions
maken, dat handige methoden biedt voor het instellen van ChromeDriver-specifieke mogelijkheden. Vervolgens kunt u het ChromeOptions
object doorgeven aan de ChromeDriver-constructor:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Sinds Selenium versie 3.6.0 implementeert de ChromeOptions
klasse in Java ook de Capabilities
interface, waardoor u andere WebDriver-mogelijkheden kunt specificeren die niet specifiek zijn voor 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);
Gebruik de gewenste mogelijkheden
Om DesiredCapabilities
te gebruiken, moet u de naam van de mogelijkheid kennen en het type waarde dat nodig is. Bekijk de volledige lijst .
Python
caps = webdriver.DesiredCapabilities.CHROME.copy()
caps['acceptInsecureCerts'] = True
driver = webdriver.Chrome(desired_capabilities=caps)
Robijn
caps = Selenium::WebDriver::Remote::Capabilities.chrome(
"goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})
driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps
Veelvoorkomende gebruiksscenario's
Gebruik een aangepast profiel
Standaard maakt ChromeDriver voor elke sessie een nieuw tijdelijk profiel aan. Misschien wilt u speciale voorkeuren instellen of gewoon een aangepast profiel gebruiken, ook wel de map met gebruikersgegevens genoemd.
Als u het tijdelijke profiel gebruikt, kunt u de mogelijkheid chrome.prefs
gebruiken om voorkeuren op te geven die moeten worden toegepast nadat Chrome is gestart. Voor aangepaste profielen kunt u de opdrachtregeloptie user-data-dir
van Chrome gebruiken om Chrome te laten weten welk profiel moet worden gebruikt:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Maak uw eigen aangepaste profiel door Chrome op de opdrachtregel of met ChromeDriver uit te voeren, met behulp van de user-data-dir
schakelaar die is ingesteld op een nieuwe map.
Als het pad niet bestaat, maakt Chrome een nieuw profiel op de opgegeven locatie. U kunt vervolgens de profielinstellingen wijzigen, zodat ChromeDriver het profiel in de toekomst kan gebruiken. Open chrome://version
in de browser om te zien welk profiel Chrome gebruikt.
Start Chrome gemaximaliseerd
Start Chrome gemaximaliseerd door de start-maximized
schakelaar te gebruiken:
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Gebruik een uitvoerbaar Chrome-bestand op een niet-standaard locatie
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Dialoogvensters blokkeren
Standaard configureert ChromeDriver Chrome om pop-upvensters toe te staan. Als u pop-ups wilt blokkeren en het normale Chrome-gedrag wilt herstellen wanneer dit niet wordt beheerd door ChromeDriver, doet u het volgende:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
Stel de downloadmap in
De volgende code kan worden gebruikt om Chrome te configureren om bestanden naar een specifieke map te downloaden. Er zijn echter een aantal kanttekeningen waar u rekening mee moet houden:
- Chrome staat het downloaden van bepaalde mappen niet toe. In het bijzonder kunt u de bureaubladmap niet als downloadmap gebruiken. Op Linux kunt u de thuismap niet gebruiken om te downloaden. De exacte lijst met verboden mappen kan worden gewijzigd. Daarom raden we u aan een unieke map te gebruiken die geen speciale betekenis heeft voor het systeem.
- ChromeDriver wacht niet automatisch tot het downloaden is voltooid. Als u
driver.quit()
te vroeg aanroept, wordt Chrome mogelijk beëindigd voordat de download is voltooid. - Voor de beste resultaten gebruikt u volledige paden, aangezien relatieve paden niet altijd werken.
- In Windows gebruikt u
\` as path separators.
/` is niet betrouwbaar op Windows.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Erkende capaciteiten
Lees de Selenium-documentatie en de W3C WebDriver-standaard voor standaardmogelijkheden die door ChromeDriver worden geaccepteerd. Hier vermelden we de Chrome-specifieke mogelijkheden.
ChromeOptions
object
De meeste Chrome-specifieke mogelijkheden worden zichtbaar via het ChromeOptions
object. In sommige talen worden ze geïmplementeerd door de klasse ChromeOptions
. In andere talen worden ze in geselecteerde mogelijkheden opgeslagen onder het woordenboek goog:chromeOptions
.
perfLoggingPrefs
-object
Het perfLoggingPrefs
-woordenboek heeft de volgende indeling. Alle sleutels zijn optioneel:
Teruggegeven mogelijkheden
Hier is een lijst met alle Chrome-specifieke geretourneerde mogelijkheden, met andere woorden, wat ChromeDriver retourneert wanneer u een nieuwe sessie maakt.