Opzioni di Chrome e funzionalità desiderate in Selenium Webdriver
Cos'è la classe Opzioni Chrome?
Il Classe Chromeoptions è un concetto in Selenium WebDriver per manipolare varie proprietà del driver Chrome. La classe delle opzioni di Chrome viene generalmente utilizzata insieme alle funzionalità desiderate per personalizzare le sessioni dei driver di Chrome. Ti aiuta a eseguire varie operazioni come aprire Chrome in modalità ingrandita, disabilitare le estensioni esistenti, disabilitare i popup, ecc.
Esempio:
L'esempio seguente mostra un modo per aprire il browser Chrome in modalità ingrandita utilizzando la classe ChromeOptions. Dobbiamo passare un'istanza della classe ChromeOptions all'inizializzazione del driver web.
ChromeOptions options = new ChromeOptions() options.addArgument("start-maximized"); ChromeDriver driver = new ChromeDriver(options);
Di seguito è riportato l'elenco degli argomenti disponibili e più comunemente utilizzati per la classe ChromeOptions
- inizio-massimizzato: apre Chrome in modalità di ingrandimento
- incognito: Apre Chrome in modalità di navigazione in incognito
- senza testa: Apre Chrome in modalità headless
- disabilita-estensioni: disabilita le estensioni esistenti sul browser Chrome
- disabilitare il blocco dei popup: disabilita i popup visualizzati sul browser Chrome
- make-default-browser: Rende il browser Chrome predefinito
- versione: stampa la versione del browser Chrome
- barre informative disabilitate: Impedisce a Chrome di visualizzare la notifica "Chrome è controllato da un software automatizzato".
Classe delle capacità desiderate
Classe di capacità desiderate viene utilizzato per modificare più proprietà dei driver Web. Fornisce coppie chiave-valore per modificare le singole proprietà dei driver Web come nome del browser, piattaforma del browser, ecc. Un metodo comune della classe Desired Capabilities è il metodo setCapability. Viene utilizzato principalmente con Selenium Grid, dove lo stesso test case deve essere eseguito su browser diversi.
Esempio:
L'esempio seguente mostra come abilitare il browser Chrome ad accettare i certificati SSL sui siti Web per impostazione predefinita utilizzando le funzionalità desiderate per la classe Chrome.
// Create an object of desired capabilities class with Chrome driver DesiredCapabilities SSLCertificate = DesiredCapabilities.chrome(); // Set the pre defined capability – ACCEPT_SSL_CERTS value to true SSLCertificate.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); // Open a new instance of chrome driver with the desired capability WebDriver driver = new ChromeDriver(SSLCertificate);
Di seguito sono riportati i tipi di funzionalità predefinite più comunemente utilizzati.
Nome della capacità | Descrizione |
---|---|
ACCETTA_SSL_CERTS | Questa proprietà indica al browser di accettare i certificati SSL per impostazione predefinita |
PLATFORM_NAME | Questa proprietà viene utilizzata per impostare la piattaforma del sistema operativo utilizzata per accedere al sito web |
BROWSER_NAME | Questa proprietà viene utilizzata per impostare il nome del browser per un'istanza del driver Web |
VERSIONE | Questa proprietà viene utilizzata per impostare la versione del browser |
Opzioni Chrome per l'estensione Adblocker
L'estensione Adblocker del browser Chrome può essere gestita tramite la classe ChromeDriver Options e Desired Capabilities. Di seguito sono riportati i passaggi per accedere AdBlocker sul browser Chrome utilizzando la classe Desired Capabilities.
Passo 1) AdBlockL'estensione er deve essere installata sul browser Chrome prima di utilizzare la classe Opzioni Chrome
Passo 2) Estrai il file CRX corrispondente a AdBlocker estensione tramite http://crxextractor.com/
Passo 3) Passa il percorso del file CRX scaricato alla classe Opzioni di Chrome
Passo 4) Crea un'istanza del driver Web utilizzando la classe di funzionalità desiderata e le Opzioni Chrome in Selenium oggetto
Esempio:
L'esempio seguente mostra come attivare l'estensione per il blocco degli annunci sul browser Chrome utilizzando la classe Opzioni di Chrome e Funzionalità desiderate.
ChromeOptions options = new ChromeOptions(); options.addExtensions(new File("Path to CRX File")); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); ChromeDriver driver = new ChromeDriver(capabilities);
Estrai il file CRX
I passaggi seguenti dimostrano il processo di estrazione del file CRX tramite Ad Blocker attraverso il sito web – http://crxextractor.com/
Passo 1) Vai su http://crxextractor.com/ e fare clic sul pulsante di avvio
Passo 2) Inserisci l'estensione di Chrome – URL di Ad Blocker nella casella di testo. L'URL per Adblock sul Chrome Web Store è https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
e fai clic su OK
Passo 3) Facendo clic sul pulsante OK, l'etichetta del pulsante cambierà in Ottieni .CRX come di seguito. Fare clic sul pulsante Ottieni .CRX, verrà scaricato il file CRX corrispondente all'estensione
Passo 4) Salvare il file sul computer locale, prendere nota del percorso salvato. Il passaggio successivo è passare il percorso salvato alla classe Opzioni di Chrome
Codice d'esempio:
- Vedrai annunci su
http://demo.guru99.com/
come sotto
- Con AdBlockL'estensione abilitata sugli annunci del browser Chrome deve essere disabilitata
package adblock; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class AdblockDemo { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addExtensions(new File("X://extension_3_40_1_0.crx")); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("http://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Spiegazione del codice:
- Inizialmente, devi impostare il percorso del file chromedriver.exe utilizzando il metodo set property poiché stai utilizzando il browser Chrome per i test
- È necessario impostare il percorso del file CRX per aggiungere il metodo delle estensioni
- Quindi devi creare un oggetto di Chrome Desired Capabilities in Selenium class e passarlo all'istanza del driver web. Da Selenium Versione 3.8.1, la classe delle funzionalità del driver è deprecata ed è necessario unire l'oggetto delle funzionalità con l'oggetto delle opzioni di Chrome prima di passare lo stesso come argomento al costruttore del driver di Chrome
- Apri l'URL –
http://demo.guru99.com/test/simple_context_menu.html
con l'estensione Ad Blocker abilitata - Ingrandisci e chiudi il browser
NOTA: Stiamo abilitando AdBlockehm estensione sul browser Chrome tramite script di automazione invece di abilitare manualmente l'estensione Adblocker sul browser Chrome. CRX File è un modo per accedere all'estensione di blocco degli annunci utilizzando lo script di automazione
Produzione:
Il browser Chrome verrà abilitato con AdBlocker estensione abilitata come di seguito senza pubblicità
Opzioni di Chrome per la modalità di navigazione in incognito
Le Opzioni di Chrome possono essere utilizzate per la modalità di navigazione in incognito utilizzando l'argomento predefinito:incognito.
Di seguito è riportato il codice di esempio per ottenere lo stesso risultato.
Codice d'esempio:
package test; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class Incognito{ public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("--incognito"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("http://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Spiegazione del codice:
- Inizialmente, devi impostare il percorso del file chromedriver.exe utilizzando il metodo set property poiché stai utilizzando il browser Chrome per i test
- Quindi devi creare un oggetto della classe Opzioni Chrome e passarlo all'istanza del driver web. Poiché vogliamo aprire il browser Chrome in modalità di navigazione in incognito, devi passare l'argomento –incognito alla classe Opzioni di Chrome.
- Successivamente, crea un oggetto della classe Funzionalità desiderate e unisci l'oggetto della classe Funzionalità desiderate con l'oggetto della classe Opzioni di Chrome utilizzando il metodo merge
- Devi creare un oggetto della classe Chrome Driver e passare l'oggetto Opzioni Chrome come argomento
- Infine, dobbiamo passare l'URL:
http://demo.guru99.com/test/simple_context_menu.html
al metodo driver.get - Ingrandisci e chiudi il browser
Produzione:
La finestra del browser Chrome verrà aperta in modalità di navigazione in incognito come di seguito
Opzioni di Chrome per Chrome senza testa
Un browser headless viene eseguito in background. Non vedrai la GUI del browser o le operazioni eseguite su di esso.
Le opzioni di Chrome per l'esecuzione del browser Chrome in modalità headless possono essere eseguite utilizzando gli argomenti predefiniti:senza testa.
Il codice di esempio per realizzarlo è menzionato di seguito.
Esempio:
package test; import java.io.File; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.DesiredCapabilities; public class HeadlessModeDemo { public static void main(String[] args) { // TODO Auto-generated method stub System.setProperty("webdriver.chrome.driver","X://chromedriver.exe"); ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(ChromeOptions.CAPABILITY, options); options.merge(capabilities); ChromeDriver driver = new ChromeDriver(options); driver.get("http://demo.guru99.com/"); driver.manage().window().maximize(); String title = driver.getTitle(); System.out.println("Page Title: " +title); driver.quit(); } }
Spiegazione del codice:
- Inizialmente, devi impostare il percorso del file chromedriver.exe utilizzando il metodo set property poiché stai utilizzando il browser Chrome per i test
- Successivamente, crea un oggetto della classe Opzioni Chrome e passalo all'istanza del driver web. Poiché vogliamo aprire il browser Chrome in modalità headless, dobbiamo passare l'argomento –headless alla classe Opzioni di Chrome.
- Crea un oggetto della classe DesiredCapabilities di Chrome e unisci l'oggetto della classe Desired Capabilities con l'oggetto della classe Opzioni di Chrome utilizzando il metodo merge
- Crea un oggetto della classe Chrome Driver e passa le Opzioni Chrome Selenium oggetto come argomento
- Infine, dobbiamo passare l'URL:
http://demo.guru99.com/
al metodo driver.get - Stampa il titolo della pagina e chiudi il browser
Uscita
Il browser non sarà visibile per il codice precedente poiché Chrome funzionerà in modalità Headless. Il titolo della pagina verrà recuperato e visualizzato come di seguito.
Sommario
- Selenium La classe Opzioni di Chrome viene utilizzata per manipolare varie proprietà del driver Chrome
- La classe Desired Chrome Capabilities fornisce una serie di coppie chiave-valore per modificare le singole proprietà del driver Web come il nome del browser, la piattaforma del browser, ecc.
- Per manipolare qualsiasi estensione del browser Chrome, è necessario estrarre il file CRX corrispondente all'estensione e aggiungerlo alla classe Opzioni di Chrome
- –incognito e –headless sono argomenti predefiniti forniti dalla classe Opzioni di Chrome per l'utilizzo del browser Chrome in modalità di navigazione in incognito e in modalità headless