Le funzionalità sono opzioni che puoi utilizzare per personalizzare e configurare una sessione ChromeDriver. Questa pagina illustra tutte le funzionalità supportate da ChromeDriver e come utilizzarle.
Le API del linguaggio WebDriver forniscono modi per trasferire le funzionalità a ChromeDriver. Il meccanismo esatto varia in base alla lingua, ma la maggior parte delle lingue utilizza uno o entrambi i seguenti meccanismi:
- Utilizza il corso
ChromeOptions
. Supportata da Java, Python e così via. - Utilizza il corso
DesiredCapabilities
. È supportato da Python, Ruby e così via. Sebbene sia disponibile anche in Java, il suo utilizzo in Java è deprecato.
Utilizzo della classe ChromeOptions
Puoi creare un'istanza di ChromeOptions
, che offre metodi comodi per impostare funzionalità specifiche per ChromeDriver. Dopodiché puoi passare l'ChromeOptions
nel costruttore ChromeDriver:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
A partire dalla versione 3.6.0 di Selenium, anche la classe ChromeOptions
in Java implementa l'interfaccia Capabilities
, consentendoti di specificare altre funzionalità WebDriver non specifiche di 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);
Utilizzo di DesiredCapabilities
Per utilizzare DesiredCapabilities
, devi conoscere il nome della funzionalità e il tipo di valore che richiede. Consulta l'elenco completo qui.
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
Casi d'uso comuni
Utilizza il profilo personalizzato (detto anche directory dei dati utente)
Per impostazione predefinita, ChromeDriver crea un nuovo profilo temporaneo per ogni sessione. A volte potresti voler impostare preferenze speciali o utilizzare un profilo completamente personalizzato. Nel primo caso, puoi usare il file "chrome.prefs" (descritti più avanti) per specificare le preferenze che saranno applicate dopo l'avvio di Chrome. Nel secondo caso, puoi utilizzare l'opzione della riga di comando di Chrome user-data-dir
per indicare a Chrome il profilo da utilizzare:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Puoi creare il tuo profilo personalizzato eseguendo semplicemente Chrome (dalla riga di comando o tramite ChromeDriver) con l'opzione user-data-dir
impostata su una nuova directory. Se il percorso non esiste, Chrome creerà un nuovo profilo nella posizione specificata. Puoi quindi modificare le impostazioni del profilo come preferisci e ChromeDriver potrà utilizzarlo in futuro. Apri chrome://version nel browser per vedere quale profilo utilizza Chrome.
Avvia Chrome ingrandito
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Utilizzo di un file eseguibile di Chrome in una posizione non standard
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Blocca finestre di dialogo
Per impostazione predefinita, ChromeDriver configura Chrome in modo da consentire le finestre popup. Se vuoi bloccare i popup (ovvero ripristinare il normale comportamento di Chrome quando non è controllato da ChromeDriver), procedi nel seguente modo:
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",
Arrays.asList("disable-popup-blocking"));
Imposta directory di download
Il seguente codice può essere usato per configurare Chrome in modo che scarichi i file in una directory specifica. Tuttavia, ci sono diverse avvertenze di cui tenere conto:
- Chrome non consente il download di determinate directory. In particolare, non è possibile utilizzare la cartella desktop come directory di download. Inoltre, su Linux non puoi usare la home directory per il download. Poiché l'elenco esatto di directory proibite è soggetto a modifiche, si consiglia di usare una directory che non abbia un significato particolare per il sistema.
- ChromeDriver non attende automaticamente il completamento del download. Se chiami il metodo driver.quit() troppo presto, Chrome potrebbe arrestarsi prima del termine del download.
- I percorsi relativi non sempre funzionano. Per ottenere risultati ottimali, utilizza invece il percorso completo.
- Su Windows, utilizza "" come separatori di percorso. Utilizzo di "/" non è affidabile su Windows.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Capacità riconosciute
Consulta la documentazione di Selenium e lo standard W3C WebDriver per accettate da ChromeDriver. Qui sono elencate solo le applicazioni le funzionalità di machine learning.
ChromeOptions
oggetto
La maggior parte delle funzionalità specifiche di Chrome viene esposta tramite ChromeOptions
. In alcune lingue, questa funzionalità è implementata dalla classe ChromeOptions
. Nella
altre lingue, sono memorizzate nel dizionario goog:chromeOptions
in
le funzionalità desiderate.
perfLoggingPrefs
oggetto
Il dizionario perfLoggingPrefs ha il seguente formato (tutte le chiavi sono facoltative):
Nome | Tipo | Predefinito | Descrizione |
---|---|---|---|
enableNetwork
|
booleano | true | Se raccogliere o meno eventi dal dominio di rete. |
enablePage
|
booleano | true | Se raccogliere o meno eventi dal dominio della pagina. |
traceCategories
|
stringa | (vuoto) | Una stringa di categorie di tracciamento di Chrome, separate da virgole, per cui devono essere raccolti gli eventi di traccia. Una stringa non specificata o vuota disabilita il tracciamento. |
bufferUsageReportingInterval
|
numero intero positivo | 1000 | Il numero di millisecondi richiesto tra gli eventi di utilizzo del buffer di traccia DevTools. Ad esempio, se il valore è 1000, una volta al secondo DevTools segnalerà quanto è pieno il buffer di traccia. Se un report indica che l'utilizzo del buffer è 100%, viene visualizzato un avviso. |
Funzionalità restituite
Questo è un elenco di tutte le funzionalità restituite specifiche di Chrome. (ovvero ciò che ChromeDriver restituisce quando crei una nuova sessione)
Nome | Tipo | Descrizione |
---|---|---|
chrome.chromedriverVersion
|
stringa | versione di ChromeDriver |
userDataDir
|
stringa | il percorso della directory dei dati utente utilizzata da Chrome. puoi notare che si trova all'interno di dizionario |