Opzioni di Chrome e funzionalità desiderate in Selenium

⚡ Riepilogo intelligente

Opzioni Chrome e funzionalità desiderate in Selenium WebDriver controlla il modo in cui il browser Chrome si avvia e si comporta durante i test automatizzati. Insieme configurano argomenti, estensioni, gestione SSL e impostazioni cross-browser, rendendo le esecuzioni dei test flessibili, ripetibili e pronte per Selenium Esecuzione della griglia.

  • 🌐 Opzioni Chrome: Personalizza le sessioni con argomenti quali start-maximized, incognito e headless.
  • ⚙️ Competenze richieste: Imposta il nome del browser, la piattaforma, la versione e l'accettazione del certificato SSL.
  • 🧩 estensioni: Carica un file CRX tramite automazione anziché installarlo manualmente.
  • Incognito e senza testa: Il codice riutilizzabile esegue sessioni private o in background per le pipeline CI.
  • Selenium Griglia: Le funzionalità consentono l'esecuzione di test distribuiti su diversi browser.
  • ⚠️ Selenium Nota del 4: DesiredCapabilities è obsoleto; passare ChromeOptions direttamente al driver.

Opzioni Chrome e funzionalità desiderate in Selenium webdriver

Cos'è la classe Opzioni Chrome?

Migliori 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) Extracil file CRX corrispondente a AdBlockestensione er 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);

ExtracFile CRX

I passaggi seguenti illustrano il processo di extracScaricare il 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

ExtracFile CRX

Passo 2) Inserisci l'estensione di Chrome: Ad Blocker URL sotto la casella di testo. 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

ExtracFile 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

ExtracFile 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

Campione Code:

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

ExtracFile 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("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();
	//driver.quit();
	}
	
}

Code Spiegazione:

  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. Aprire il URL - https://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à

ExtracFile CRX

Oltre a caricare le estensioni, ChromeOptions controlla anche il funzionamento della finestra del browser stessa.

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.

Campione Code:

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("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();		
	//driver.quit();
	}
	}

Code Spiegazione:

  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 il URL - https://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("https://demo.guru99.com/");
		driver.manage().window().maximize();
		String title = driver.getTitle();
		System.out.println("Page Title: " +title);
		driver.quit();
		}


}

Code Spiegazione:

  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 il URL - https://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

DOMANDE FREQUENTI

Sì. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. Selenium 4 DesiredCapabilities deprecato a favore delle classi Options del browser come ChromeOptions. In Selenium 3 li hai uniti; in Selenium 4. Passi ChromeOptions direttamente al driver.

Chiama addArguments con diversi flag, ad esempio options.addArguments con start-maximized e incognito. Puoi anche concatenare più chiamate. Ogni argomento personalizza la modalità di avvio della sessione di Chrome.

addArguments passa a Chrome flag da riga di comando come headless o incognito. addExtensions carica un file di estensione .crx nella sessione. Entrambi personalizzano il comportamento, ma servono a scopi diversi.

Sì. Gli assistenti IA come Copilot creano configurazioni di ChromeOptions e funzionalità, suggeriscono nomi di argomenti e spiegano le API deprecate. Rivedi sempre l'output, perché i nomi dei flag e Selenium Le versioni cambiano frequentemente.

Gli strumenti di auto-riparazione basati sull'IA aggiornano automaticamente gli argomenti, rilevano flag instabili e suggeriscono alternative stabili dopo gli aggiornamenti di Chrome. Riducono la manutenzione per le esecuzioni headless e le incongruenze di funzionalità tra gli ambienti di integrazione continua (CI).

Sì. ChromeOptions funziona con RemoteWebDriver per l'esecuzione su Grid. È possibile associare le opzioni alla sessione remota, consentendo alla stessa configurazione di essere eseguita su macchine e browser distribuiti.

Questo di solito significa che le versioni di ChromeDriver e del browser Chrome non corrispondono. Installa un ChromeDriver compatibile oppure usa Selenium Direttore dentro Selenium 4 per risolvere automaticamente il driver.

Utilizza un'opzione sperimentale: una mappa delle preferenze con download.default_directory passato tramite setExperimentalOption. Chrome salverà quindi automaticamente i file in quella cartella durante i test automatizzati.

Riassumi questo post con: