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

Estrai il file CRX

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

Estrai il file CRX

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

Estrai il file CRX

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:

  1. Vedrai annunci su http://demo.guru99.com/ come sotto

Estrai il file CRX

  1. 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:

  1. Inizialmente, devi impostare il percorso del file chromedriver.exe utilizzando il metodo set property poiché stai utilizzando il browser Chrome per i test
  2. È necessario impostare il percorso del file CRX per aggiungere il metodo delle estensioni
  3. 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
  4. Apri l'URL – http://demo.guru99.com/test/simple_context_menu.html con l'estensione Ad Blocker abilitata
  5. 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à

Estrai il file CRX

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:

  1. Inizialmente, devi impostare il percorso del file chromedriver.exe utilizzando il metodo set property poiché stai utilizzando il browser Chrome per i test
  2. 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.
  3. 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
  4. Devi creare un oggetto della classe Chrome Driver e passare l'oggetto Opzioni Chrome come argomento
  5. Infine, dobbiamo passare l'URL: http://demo.guru99.com/test/simple_context_menu.html al metodo driver.get
  6. 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 la modalità di navigazione in incognito

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:

  1. Inizialmente, devi impostare il percorso del file chromedriver.exe utilizzando il metodo set property poiché stai utilizzando il browser Chrome per i test
  2. 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.
  3. 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
  4. Crea un oggetto della classe Chrome Driver e passa le Opzioni Chrome Selenium oggetto come argomento
  5. Infine, dobbiamo passare l'URL: http://demo.guru99.com/ al metodo driver.get
  6. 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.

Opzioni di Chrome per Chrome senza testa

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