Opzioni di Chrome & Capacità desiderate: AdBlocker, Incognito, Headless

Sommario:

Anonim

Che cos'è la classe delle opzioni di Chrome?

La classe delle opzioni di Chrome viene utilizzata per manipolare varie proprietà del driver di Chrome. La classe delle opzioni di Chrome viene generalmente utilizzata insieme alle funzionalità desiderate.

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.

Opzioni ChromeOptions = nuovo ChromeOptions ()options.addArgument ("start-maximized");Driver ChromeDriver = nuovo ChromeDriver (opzioni);

Di seguito è riportato l'elenco degli argomenti disponibili e più comunemente utilizzati per la classe ChromeOptions

  • start-maximized : apre Chrome in modalità di ingrandimento
  • in incognito: apre Chrome in modalità di navigazione in incognito
  • headless: apre Chrome in modalità headless
  • disable-extensions : disabilita le estensioni esistenti nel browser Chrome
  • disable-popup-blocking : disabilita i popup visualizzati nel browser Chrome
  • make-default-browser: rende il browser predefinito di Chrome
  • versione : stampa la versione del browser Chrome
  • disable-infobars: impedisce a Chrome di visualizzare la notifica "Chrome è controllato da un software automatico

In questo tutorial imparerai

  • Che cos'è la classe delle opzioni di Chrome?
  • Classe di capacità desiderate
  • Opzioni di Chrome per l'estensione Adblocker
  • Opzioni di Chrome per la modalità di navigazione in incognito
  • Opzioni di Chrome per Headless Chrome

Classe di capacità desiderate

La classe di capacità desiderata viene utilizzata per modificare più proprietà del driver web. La classe Desired 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. Il metodo più comunemente utilizzato per la classe Desired Capabilities è il metodo setCapability. Le funzionalità desiderate vengono utilizzate più frequentemente con Selenium Grid in cui lo stesso test case deve essere eseguito su browser diversi.

Esempio:

L'esempio seguente mostra il modo per abilitare il browser Chrome ad accettare i certificati SSL sui siti Web per impostazione predefinita utilizzando la classe di capacità desiderate.

// Crea un oggetto della classe di capacità desiderata con il driver ChromeDesiredCapabilities SSLCertificate = DesiredCapabilities.chrome ();// Imposta la capacità predefinita - valore ACCEPT_SSL_CERTS su trueSSLCertificate.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true);// Apre una nuova istanza del driver chrome con la capacità desiderataDriver WebDriver = nuovo ChromeDriver (SSLCertificate);

Di seguito sono riportati i tipi di capacità predefiniti più comunemente utilizzati.

Nome capacità Descrizione
ACCEPT_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 di Chrome per l'estensione Adblocker

L'estensione Adblocker del browser Chrome può essere gestita utilizzando le opzioni Chrome e la classe Desired Capabilities. Di seguito sono riportati i passaggi per accedere all'estensione AdBlocker sul browser Chrome utilizzando la classe Desired Capabilities.

Passaggio 1) L'estensione AdBlocker deve essere installata sul browser Chrome prima di utilizzare la classe Opzioni di Chrome

Passaggio 2) Estrai il file CRX corrispondente all'estensione AdBlocker tramite http://crxextractor.com/

Passaggio 3) Passa il percorso del file CRX scaricato alla classe Opzioni di Chrome

Passaggio 4) Creare un'istanza del driver Web utilizzando la classe di capacità desiderata e l'oggetto delle opzioni di Chrome

Esempio:

L'esempio seguente mostra come attivare l'estensione del blocco degli annunci sul browser Chrome utilizzando le opzioni di Chrome e la classe delle capacità desiderate.

Opzioni ChromeOptions = new ChromeOptions ();options.addExtensions (new File ("Path to CRX File"));Capacità DesiredCapabilities = nuove DesiredCapabilities ();capacità.setCapability (ChromeOptions.CAPABILITY, opzioni);Driver ChromeDriver = nuovo ChromeDriver (funzionalità);

Estrai file CRX:

I passaggi seguenti mostrano il processo di estrazione del file CRX tramite Ad Blocker tramite il sito Web: http://crxextractor.com/

Passaggio 1) Vai su http://crxextractor.com/ e fai clic sul pulsante di avvio

Passaggio 2) Inserisci l'estensione di Chrome - URL Ad Blocker sotto la casella di testo. L'URL per Adblock sul web store di Chrome è https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

e fare clic su OK

Passaggio 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

Passaggio 4) Salvare il file sulla macchina locale, prendere nota del percorso salvato. Il passaggio successivo è passare il percorso salvato alla classe Opzioni di Chrome

Codice di esempio:

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

  1. Con l'estensione AdBlocker abilitata sul browser Chrome, gli annunci dovrebbero essere disabilitati
pacchetto 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");Opzioni ChromeOptions = new ChromeOptions ();options.addExtensions (nuovo file ("X: //extension_3_40_1_0.crx"));Capacità DesiredCapabilities = nuove DesiredCapabilities ();capacità.setCapability (ChromeOptions.CAPABILITY, opzioni);options.merge (capacità);Driver ChromeDriver = nuovo ChromeDriver (opzioni);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maxim ();//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 è necessario creare un oggetto della classe di capacità desiderata e passarlo all'istanza del driver web. Dalla versione Selenium 3.8.1, la classe di capacità del driver è obsoleta ed è necessario unire l'oggetto delle capacità 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 l'estensione AdBlocker sul browser Chrome tramite lo script di automazione invece di abilitare manualmente l'estensione Adblocker sul browser Chrome. Il file CRX è un modo per accedere all'estensione del blocco degli annunci utilizzando lo script di automazione

Produzione:

Il browser Chrome verrà abilitato con l'estensione AdBlocker 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 eseguire lo stesso.

Codice di esempio:

test del pacchetto;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 Stub del metodo generato automaticamenteSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Opzioni ChromeOptions = new ChromeOptions ();options.addArguments ("- incognito");Capacità DesiredCapabilities = nuove DesiredCapabilities ();capacità.setCapability (ChromeOptions.CAPABILITY, opzioni);options.merge (capacità);Driver ChromeDriver = nuovo ChromeDriver (opzioni);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maxim ();//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 è necessario creare un oggetto della classe Opzioni di 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 Desired Capabilities e unisci l'oggetto della classe Desired Capabilities con l'oggetto della classe Opzioni di Chrome utilizzando il metodo di unione
  4. È necessario creare un oggetto della classe Chrome Driver e passare l'oggetto Opzioni di 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 Headless Chrome

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 realizzate utilizzando gli argomenti predefiniti - headless .

Il codice di esempio per eseguirlo è menzionato di seguito.

Esempio:

test del pacchetto;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 Stub del metodo generato automaticamenteSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Opzioni ChromeOptions = new ChromeOptions ();options.addArguments ("- headless");Capacità DesiredCapabilities = nuove DesiredCapabilities ();capacità.setCapability (ChromeOptions.CAPABILITY, opzioni);options.merge (capacità);Driver ChromeDriver = nuovo ChromeDriver (opzioni);driver.get ("http://demo.guru99.com/");driver.manage (). window (). maxim ();Titolo stringa = driver.getTitle ();System.out.println ("Titolo pagina: + titolo);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 di 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 Desired Capabilities e unisci l'oggetto della classe Desired Capabilities con l'oggetto della classe Opzioni di Chrome utilizzando il metodo di unione
  4. Crea un oggetto della classe Chrome Driver e passa l'oggetto Opzioni di Chrome 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

Produzione

Il browser non sarà visibile per il codice sopra poiché Chrome funzionerà in modalità Headless. Il titolo della pagina verrà recuperato e visualizzato come di seguito.

Sommario:

  • La classe delle opzioni di Chrome viene utilizzata per manipolare varie proprietà del driver di Chrome
  • La classe Desired 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 eventuali estensioni 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 senza testa