Chrome-alternativer og ønskede funksjoner i Selenium Webdriver

Hva er Chrome Options Class?

Ocuco Chromeoptions-klasse er et konsept i Selenium WebDriver for å manipulere ulike egenskaper for Chrome-driveren. Chrome-alternativklassen brukes vanligvis sammen med Ønskede funksjoner for å tilpasse Chrome-driverøkter. Det hjelper deg med å utføre ulike operasjoner som å åpne Chrome i maksimert modus, deaktivere eksisterende utvidelser, deaktivere popup-vinduer, etc.

Eksempel:

Eksempelet nedenfor viser en måte å åpne Chrome-nettleseren i maksimert modus ved å bruke ChromeOptions-klassen. Vi må sende en forekomst av ChromeOptions-klassen til nettdriverinitialiseringen.

ChromeOptions options = new ChromeOptions()
options.addArgument("start-maximized");
ChromeDriver driver = new ChromeDriver(options);

Nedenfor er listen over tilgjengelige og mest brukte argumenter for ChromeOptions-klassen

  • startmaksimert: Åpner Chrome i maksimeringsmodus
  • inkognito: Åpner Chrome i inkognitomodus
  • hodeløs: Åpner Chrome i hodeløs modus
  • deaktiver-utvidelser: Deaktiverer eksisterende utvidelser i Chrome-nettleseren
  • deaktiver popup-blokkering: Deaktiverer popup-vinduer som vises i Chrome-nettleseren
  • make-default-nettleser: Gjør Chrome til standard nettleser
  • versjon: Skriver ut Chrome-nettleserversjon
  • deaktiver-infobarer: Hindrer Chrome fra å vise varselet «Chrome blir kontrollert av automatisert programvare

Ønsket evneklasse

Ønsket evneklasse brukes til å endre flere egenskaper for webdrivere. Den gir nøkkel-verdi-par for å endre individuelle egenskaper til nettdrivere som nettlesernavn, nettleserplattform osv. En vanlig metode for Desired Capabilities-klassen er setCapability-metoden. Den brukes mest med Selenium Grid, der samme testtilfelle må kjøres på forskjellige nettlesere.

Eksempel:

Eksemplet nedenfor viser måten å aktivere Chrome-nettleseren til å akseptere SSL-sertifikater på nettsteder som standard ved å bruke Ønskede funksjoner for Chrome-klassen.

// 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);

Nedenfor er de mest brukte forhåndsdefinerte funksjonstypene.

Kapasitetsnavn Beskrivelse
ACCEPT_SSL_CERTS Denne egenskapen forteller nettleseren å akseptere SSL-sertifikater som standard
PLATFORM_NAME Denne egenskapen brukes til å angi operativsystemplattformen som brukes for å få tilgang til nettstedet
BROWSER_NAME Denne egenskapen brukes til å angi nettlesernavnet for en nettdriverforekomst
VERSJON Denne egenskapen brukes til å angi nettleserversjonen

Chrome Options for Adblocker-utvidelse

Adblocker-utvidelse av Chrome-nettleseren kan håndteres ved hjelp av ChromeDriver Options og Desired Capabilities-klassen. Nedenfor er fremgangsmåten for å få tilgang AdBlocker-utvidelsen i Chrome-nettleseren ved å bruke klassen Ønskede egenskaper.

Trinn 1) AdBlocker-utvidelsen må installeres i Chrome-nettleseren før du bruker Chrome Options-klassen

Trinn 2) Pakk ut CRX-filen som tilsvarer AdBlocker utvidelse gjennom http://crxextractor.com/

Trinn 3) Send den nedlastede CRX-filbanen til Chrome Options-klassen

Trinn 4) Instantier nettdriveren ved å bruke ønsket funksjonsklasse og Chrome-alternativer i Selenium objekt

Eksempel:

Eksemplet nedenfor viser hvordan du aktiverer utvidelse for annonseblokkering i Chrome-nettleseren ved å bruke Chrome Options and Desired Capabilities-klassen.

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);

Pakk ut CRX-fil

Trinnene nedenfor demonstrerer prosessen med å pakke ut CRX-fil gjennom Ad Blocker gjennom nettstedet – http://crxextractor.com/

Trinn 1) Gå til http://crxextractor.com/ og klikk på startknappen

Pakk ut CRX-fil

Trinn 2) Skriv inn chrome-utvidelsen – Ad Blocker URL under tekstboksen. URL for Adblock på Chrome nettbutikk er https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

og klikk ok

Pakk ut CRX-fil

Trinn 3) Når du klikker på OK-knappen, endres etiketten til knappen til Get .CRX som nedenfor. Klikk på Get .CRX-knappen, CRX-fil som tilsvarer utvidelsen vil bli lastet ned

Pakk ut CRX-fil

Trinn 4) Lagre filen på den lokale maskinen, noter banen som er lagret. Det neste trinnet er å sende den lagrede banen til Chrome Options-klassen

Eksempelkode:

  1. Du vil se annonser kl https://demo.guru99.com/ som Nedenfor

Pakk ut CRX-fil

  1. Med AdBlocke-utvidelsen som er aktivert i Chrome-nettleserannonser, skal være deaktivert
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();
	}
	
}

Kode Forklaring:

  1. Til å begynne med må du angi banen til chromedriver.exe-filen ved å bruke set-egenskapsmetoden siden du bruker Chrome-nettleseren for testing
  2. Du må angi banen til CRX-filen for å legge til utvidelser
  3. Deretter må du opprette et objekt med Chrome Desired Capabilities i Selenium klasse og send den til webdriverforekomsten. Fra Selenium 3.8.1-versjon, driverkapasitetsklassen er utdatert og du må slå sammen capabilities-objektet med Chrome Options-objektet før du sender det samme som et argument til Chrome Driver-konstruktør
  4. Åpne URL-en – https://demo.guru99.com/test/simple_context_menu.html med annonseblokkeringsutvidelsen aktivert
  5. Maksimer og lukk nettleseren

NOTAT: Vi aktiverer AdBlocker utvidelse på Chrome-nettleseren gjennom automatiseringsskript i stedet for manuelt å aktivere Adblocker-utvidelsen på Chrome-nettleseren. CRX File er en måte å få tilgang til utvidelse av annonseblokkering ved hjelp av automatiseringsskript

Utgang:

Chrome-nettleseren vil være aktivert med AdBlocker-utvidelsen aktivert som nedenfor uten noen annonser

Pakk ut CRX-fil

Chrome-alternativer for inkognitomodus

Chrome-alternativer kan brukes for inkognitomodus ved å bruke det forhåndsdefinerte argumentet –incognito.

Nedenfor er eksempelkoden for å oppnå det samme.

Eksempelkode:

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();
	}
	}

Kode Forklaring:

  1. Til å begynne med må du angi banen til chromedriver.exe-filen ved å bruke set-egenskapsmetoden siden du bruker Chrome-nettleseren for testing
  2. Deretter må du opprette et objekt av Chrome Options-klassen og sende det til nettdriverforekomsten. Siden vi ønsker å åpne Chrome-nettleseren i inkognitomodus, må du sende argumentet –inkognito til Chrome Options-klassen.
  3. Deretter oppretter du et objekt av Desired Capabilities-klassen og slår sammen Desired Capabilities-klasseobjektet med Chrome Options-klasseobjektet ved å bruke flettemetoden
  4. Du må opprette et objekt av Chrome Driver-klassen og sende Chrome Options-objektet som et argument
  5. Til slutt må vi sende URL-en – https://demo.guru99.com/test/simple_context_menu.html til driver.get-metoden
  6. Maksimer og lukk nettleseren

Utgang:

Chrome-nettleservinduet åpnes i inkognitomodus som nedenfor

Chrome-alternativer for inkognitomodus

Chrome-alternativer for hodeløs Chrome

En hodeløs nettleser kjører i bakgrunnen. Du vil ikke se nettleserens GUI eller operasjonene som er utført på den.

Chrome-alternativer for å kjøre Chrome-nettleseren i hodeløs modus kan oppnås ved å bruke de forhåndsdefinerte argumentene –hodeløse.

Eksempelkode for å oppnå det er nevnt nedenfor.

Eksempel:

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();
		}


}

Kode Forklaring:

  1. Til å begynne med må du angi banen til chromedriver.exe-filen ved å bruke set-egenskapsmetoden siden du bruker Chrome-nettleseren for testing
  2. Deretter oppretter du et objekt av Chrome Options-klassen og sender det til nettdriverforekomsten. Siden vi ønsker å åpne Chrome-nettleseren i hodeløs modus, må vi sende argumentet – headless til Chrome Options-klassen.
  3. Opprett et objekt av DesiredCapabilities Chrome-klassen og slå sammen Desired Capabilities-klasseobjektet med Chrome Options-klasseobjektet ved å bruke flettemetoden
  4. Opprett et objekt av Chrome Driver-klassen og bestå Chrome-alternativene Selenium objekt som argument
  5. Til slutt må vi sende URL-en – https://demo.guru99.com/ til driver.get-metoden
  6. Skriv ut sidetittelen og lukk nettleseren

Produksjon

Nettleseren vil ikke være synlig for koden ovenfor, da Chrome vil fungere i hodeløs modus. Sidetittel vil bli hentet og vist som nedenfor.

Chrome-alternativer for hodeløs Chrome

Oppsummering

  • Selenium Chrome Options-klassen brukes til å manipulere ulike egenskaper for Chrome-driveren
  • Desired Chrome Capabilities-klassen gir et sett med nøkkelverdi-par for å endre individuelle egenskaper for nettdrivere som nettlesernavn, nettleserplattform osv.
  • For å manipulere utvidelser av Chrome-nettleseren, må CRX-filen som tilsvarer utvidelsen trekkes ut og legges til Chrome Options-klassen
  • –incognito og –headless er forhåndsdefinerte argumenter levert av Chrome Options-klassen for bruk av Chrome-nettleseren i inkognitomodus og headless-modus

Daglig Guru99 nyhetsbrev

Start dagen med de siste og viktigste AI-nyhetsartiklene levert akkurat nå.