Le funzionalità sono opzioni che puoi utilizzare per personalizzare e configurare una sessione di ChromeDriver. Questa pagina descrive tutte le funzionalità supportate da ChromeDriver e come utilizzarle.
Le API di linguaggio WebDriver forniscono modi per passare 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 la classe
ChromeOptions
. Questo è supportato da Java, Python e così via. - Utilizza la classe
DesiredCapabilities
. Questo è supportato da Python, Ruby e così via. Anche se è disponibile anche in Java, il suo utilizzo in Java è deprecato.
Utilizzo della classe ChromeOptions
Puoi creare un'istanza di ChromeOptions
, che dispone di metodi pratici per impostare funzionalità specifiche di ChromeDriver. Puoi quindi passare l'oggetto ChromeOptions
al costruttore di ChromeDriver:
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("/path/to/extension.crx"));
ChromeDriver driver = new ChromeDriver(options);
Dalla versione 3.6.0 di Selenium, la classe ChromeOptions
in Java implementa anche l'interfaccia Capabilities
, consentendo di specificare altre funzionalità di 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);
Utilizzare DesiredCapabilities
Per utilizzare DesiredCapabilities
, devi conoscere il nome della funzionalità e il tipo di valore che accetta. Consulta l'elenco completo.
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
Utilizzare un profilo personalizzato
Per impostazione predefinita, ChromeDriver crea un nuovo profilo temporaneo per ogni sessione. Puoi impostare preferenze speciali o semplicemente utilizzare un profilo personalizzato, chiamato anche directory dei dati utente.
Se utilizzi il profilo temporaneo, puoi usare la funzionalità chrome.prefs
per specificare le preferenze da applicare all'avvio di Chrome. Per i profili personalizzati, puoi
utilizzare l'opzione user-data-dir
della riga di comando di Chrome per indicare a Chrome quale profilo
da utilizzare:
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=/path/to/your/custom/profile");
Crea il tuo profilo personalizzato eseguendo Chrome sulla riga di comando o con ChromeDriver, utilizzando l'opzione user-data-dir
impostata su una nuova directory.
Se il percorso non esiste, Chrome crea un nuovo profilo nella posizione specificata. Puoi quindi modificare le impostazioni del profilo e ChromeDriver potrà utilizzarlo in futuro. Apri chrome://version
nel browser per vedere quale profilo sta utilizzando Chrome.
Avviare Chrome a schermo intero
Avvia Chrome in modalità a schermo intero utilizzando l'opzione start-maximized
:
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
Utilizzare un file eseguibile di Chrome in una posizione non standard
ChromeOptions options = new ChromeOptions();
options.setBinary("/path/to/other/chrome/binary");
Bloccare le finestre di dialogo
Per impostazione predefinita, ChromeDriver configura Chrome in modo da consentire le finestre popup. Se vuoi bloccare i popup e 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 la directory di download
Il seguente codice può essere utilizzato per configurare Chrome in modo che scarichi i file in una directory specifica. Tuttavia, ci sono diverse avvertenze da tenere presenti:
- Chrome non consente l'utilizzo di determinate directory per il download. In particolare, non puoi utilizzare la cartella del computer come directory di download. Su Linux, non puoi usare la home directory per il download. L'elenco esatto delle directory vietate è soggetto a modifiche, pertanto ti consigliamo di utilizzare una directory univoca che non abbia un significato speciale per il sistema.
- ChromeDriver non attende automaticamente il completamento del download. Se chiami
driver.quit()
troppo presto, Chrome potrebbe terminare prima del completamento del download. - Per risultati ottimali, utilizza percorsi completi, poiché i percorsi relativi non funzionano sempre.
- Su Windows, l'utilizzo di
\` as path separators.
/` non è affidabile.
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("download.default_directory", "/directory/path");
options.setExperimentalOption("prefs", prefs);
Funzionalità riconosciute
Leggi la documentazione di Selenium e lo standard W3C WebDriver per le funzionalità standard accettate da ChromeDriver. Di seguito sono elencate le funzionalità specifiche di Chrome.
ChromeOptions
oggetto
La maggior parte delle funzionalità specifiche di Chrome è esposta tramite l'oggetto ChromeOptions
. In alcune lingue, sono implementati dalla classe ChromeOptions
. In altre lingue, sono memorizzati nel dizionario goog:chromeOptions
in funzionalità selezionate.
perfLoggingPrefs
oggetto
Il dizionario perfLoggingPrefs
ha il seguente formato. Tutte le chiavi sono facoltative:
Funzionalità restituite
Di seguito è riportato un elenco di tutte le funzionalità restituite specifiche di Chrome, in altre parole, quanto viene restituito da ChromeDriver quando crei una nuova sessione.