Chrome-indstillinger og ønskede funktioner i Selenium Webdriver

Hvad er Chrome Options Class?

Chromeoptions klasse er et koncept i Selenium WebDriver til at manipulere forskellige egenskaber for Chrome-driveren. Chrome-indstillingsklassen bruges generelt sammen med ønskede funktioner til at tilpasse Chrome-driversessioner. Det hjælper dig med at udføre forskellige handlinger som at åbne Chrome i maksimeret tilstand, deaktivere eksisterende udvidelser, deaktivere pop op-vinduer osv.

Eksempel:

Nedenstående eksempel viser en måde at åbne Chrome-browseren i maksimeret tilstand ved hjælp af ChromeOptions-klassen. Vi skal videregive en forekomst af ChromeOptions-klassen til webdriverinitialiseringen.

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

Nedenfor er listen over tilgængelige og mest brugte argumenter for ChromeOptions-klassen

  • startmaksimeret: Åbner Chrome i maksimeringstilstand
  • inkognito: Åbner Chrome i inkognitotilstand
  • hovedløs: Åbner Chrome i hovedløs tilstand
  • deaktiver-udvidelser: Deaktiverer eksisterende udvidelser i Chrome-browseren
  • deaktiver-popup-blokering: Deaktiverer pop op-vinduer, der vises i Chrome-browseren
  • make-default-browser: Gør Chrome til standardbrowser
  • udgave: Udskriver Chrome-browserversion
  • deaktiver-infobarer: Forhindrer Chrome i at vise meddelelsen "Chrome styres af automatiseret software

Ønskede evner klasse

Ønskede kapacitetsklasse bruges til at ændre flere egenskaber for webdrivere. Det giver nøgleværdi-par til at ændre individuelle egenskaber for webdrivere, såsom browsernavn, browserplatform osv. En almindelig metode til Desired Capabilities-klassen er setCapability-metoden. Det bruges mest med Selenium Grid, hvor den samme testcase skal udføres på forskellige browsere.

Eksempel:

Nedenstående eksempel viser måden at aktivere Chrome-browseren til at acceptere SSL-certifikater på websteder som standard ved brug af Ønskede funktioner til 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 almindeligt anvendte foruddefinerede kapacitetstyper.

Kapacitetsnavn Description
ACCEPT_SSL_CERTS Denne egenskab fortæller browseren at acceptere SSL-certifikater som standard
Platform_name. Denne egenskab bruges til at indstille den operativsystemplatform, der bruges til at få adgang til webstedet
BROWSER_NAME Denne egenskab bruges til at indstille browsernavnet for en webdriverforekomst
VERSION Denne egenskab skal bruges til at indstille browserversionen

Chrome-indstillinger for Adblocker-udvidelse

Adblocker-udvidelse af Chrome-browseren kan håndteres ved hjælp af ChromeDriver Options og Desired Capabilities klasse. Nedenfor er trinene for at få adgang AdBlocker-udvidelse på Chrome-browseren ved hjælp af klassen Ønskede funktioner.

Trin 1) AdBlocker-udvidelsen skal installeres på Chrome-browseren, før du bruger Chrome Options-klassen

Trin 2) Udpak den CRX-fil, der svarer til AdBlocker udvidelse via http://crxextractor.com/

Trin 3) Send den downloadede CRX-filsti til Chrome Options-klassen

Trin 4) Instantiér webdriveren ved hjælp af den ønskede kapacitetsklasse og Chrome-indstillinger i Selenium objekt

Eksempel:

Nedenstående eksempel viser, hvordan du aktiverer udvidelsen til annonceblokering i Chrome-browseren ved hjælp af klassen Chrome-indstillinger og ønskede funktioner.

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

Udpak CRX-fil

Nedenstående trin demonstrerer processen med at udtrække CRX-fil via Ad Blocker via webstedet - http://crxextractor.com/

Trin 1) Gå til http://crxextractor.com/ og klik på startknappen

Udpak CRX-fil

Trin 2) Indtast chrome-udvidelsen – Ad Blocker URL under tekstboksen. URL for Adblock på Chrome webbutik er https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

og klik ok

Udpak CRX-fil

Trin 3) Når du klikker på OK-knappen, ændres etiketten på knappen til Hent .CRX som nedenfor. Klik på Hent .CRX-knappen, CRX-fil, der svarer til udvidelsen, vil blive downloadet

Udpak CRX-fil

Trin 4) Gem filen på den lokale maskine, noter den gemte sti. Det næste trin er at videregive den gemte sti til Chrome Options-klassen

Prøvekode:

  1. Du vil se annoncer kl http://demo.guru99.com/ som nedenfor

Udpak CRX-fil

  1. Med AdBlockudvidelsen aktiveret på Chrome-browserannoncer bør være deaktiveret
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();
	}
	
}

Kode Forklaring:

  1. Til at begynde med skal du indstille stien til chromedriver.exe-filen ved hjælp af set-egenskabsmetoden, da du bruger Chrome-browseren til at teste
  2. Du skal indstille stien til CRX-fil for at tilføje udvidelsesmetode
  3. Så skal du oprette et objekt med Chrome Desired Capabilities i Selenium klasse og videregive den til webdriverinstansen. Fra Selenium 3.8.1 version, driver kapacitetsklasse er forældet, og du skal flette kapacitetsobjekt med Chrome Options objekt, før du sender det samme som et argument til Chrome Driver constructor
  4. Åbn URL'en - http://demo.guru99.com/test/simple_context_menu.html med Ad Blocker-udvidelsen aktiveret
  5. Maksimer og luk browseren

BEMÆRK VENLIGST: Vi muliggør AdBlocker forlængelse på Chrome-browseren gennem automatiseringsscript i stedet for manuelt at aktivere Adblocker-udvidelsen på Chrome-browseren. CRX File er en måde at få adgang til annonceblokeringsudvidelse ved hjælp af automatiseringsscript

Output:

Chrome-browseren vil blive aktiveret med AdBlockudvidelsen er aktiveret som nedenfor uden nogen annoncer

Udpak CRX-fil

Chrome-indstillinger for inkognitotilstand

Chrome-indstillinger kan bruges til inkognitotilstand ved at bruge det foruddefinerede argument –incognito.

Nedenfor er prøvekoden for at opnå det samme.

Prøvekode:

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

Kode Forklaring:

  1. Til at begynde med skal du indstille stien til chromedriver.exe-filen ved hjælp af set-egenskabsmetoden, da du bruger Chrome-browseren til at teste
  2. Derefter skal du oprette et objekt af Chrome Options-klassen og videregive det til webdriverforekomsten. Da vi ønsker at åbne Chrome-browseren i inkognitotilstand, skal du videregive argumentet -incognito til Chrome Options-klassen.
  3. Derefter skal du oprette et objekt af klassen Desired Capabilities og flette klasseobjektet Desired Capabilities med klasseobjektet Chrome Options ved hjælp af flettemetoden
  4. Du skal oprette et objekt af Chrome Driver-klassen og sende Chrome Options-objektet som et argument
  5. Til sidst skal vi videregive URL'en - http://demo.guru99.com/test/simple_context_menu.html til driver.get-metoden
  6. Maksimer og luk browseren

Output:

Chrome-browservinduet åbnes i inkognitotilstand som nedenfor

Chrome-indstillinger for inkognitotilstand

Chrome-indstillinger til Chrome uden hoved

En hovedløs browser kører i baggrunden. Du vil ikke se browserens GUI eller de operationer, der er blevet udført på den.

Chrome-indstillinger for at køre Chrome-browseren i hovedløs tilstand kan opnås ved at bruge de foruddefinerede argumenter -hovedløs.

Eksempelkode for at opnå det er nævnt 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("http://demo.guru99.com/");
		driver.manage().window().maximize();
		String title = driver.getTitle();
		System.out.println("Page Title: " +title);
		driver.quit();
		}


}

Kode Forklaring:

  1. Til at begynde med skal du indstille stien til chromedriver.exe-filen ved hjælp af set-egenskabsmetoden, da du bruger Chrome-browseren til at teste
  2. Derefter skal du oprette et objekt af Chrome Options-klassen og sende det til webdriverforekomsten. Da vi vil åbne Chrome-browseren i hovedløs tilstand, skal vi videregive argumentet – hovedløst til Chrome Options-klassen.
  3. Opret et objekt af DesiredCapabilities Chrome-klassen, og flet Desired Capabilities-klasseobjektet med Chrome Options-klasseobjektet ved hjælp af flettemetoden
  4. Opret et objekt af Chrome Driver-klassen, og bestå Chrome-indstillingerne Selenium objekt som argument
  5. Til sidst skal vi videregive URL'en - http://demo.guru99.com/ til driver.get-metoden
  6. Udskriv sidetitlen og luk browseren

Produktion

Browseren vil ikke være synlig for ovenstående kode, da Chrome vil arbejde i hovedløs tilstand. Sidetitlen vil blive hentet og vist som nedenfor.

Chrome-muligheder til Chrome uden hoved

Resumé

  • Selenium Chrome Options-klassen bruges til at manipulere forskellige egenskaber for Chrome-driveren
  • Desired Chrome Capabilities-klasse giver et sæt nøgleværdi-par til at ændre individuelle egenskaber for webdriveren, såsom browsernavn, browserplatform osv.
  • For at manipulere eventuelle udvidelser af Chrome-browseren skal CRX-filen, der svarer til udvidelsen, udpakkes og føjes til Chrome Options-klassen
  • –incognito og –headless er foruddefinerede argumenter leveret af Chrome Options-klassen til brug af Chrome-browseren i inkognitotilstand og hovedløs tilstand