Chrome-alternativ och önskade funktioner i Selenium Webdriver

Vad är Chrome Options Class?

Din Chromeoptions klass är ett koncept i Selenium WebDriver för att manipulera olika egenskaper hos Chrome-drivrutinen. Alternativklassen för Chrome används vanligtvis tillsammans med önskade funktioner för att anpassa Chrome-drivrutinsessioner. Det hjälper dig att utföra olika operationer som att öppna Chrome i maximerat läge, inaktivera befintliga tillägg, inaktivera popup-fönster, etc.

Exempelvis:

Nedan exempel visar ett sätt att öppna webbläsaren Chrome i maximerat läge med ChromeOptions-klassen. Vi måste skicka en instans av ChromeOptions-klassen till initieringen av webbdrivrutinen.

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

Nedan finns en lista över tillgängliga och mest använda argument för ChromeOptions-klassen

  • startmaximerad: Öppnar Chrome i maximeringsläge
  • inkognito: Öppnar Chrome i inkognitoläge
  • huvudlös: Öppnar Chrome i huvudlöst läge
  • inaktivera-tillägg: Inaktiverar befintliga tillägg i webbläsaren Chrome
  • inaktivera-popup-blockering: Inaktiverar popup-fönster som visas i webbläsaren Chrome
  • make-default-webbläsare: Gör Chrome till standardwebbläsare
  • version: Skriver ut Chrome-webbläsarversionen
  • disable-infobars: Hindrar Chrome från att visa meddelandet "Chrome styrs av automatiserad programvara

Önskad kapacitetsklass

Önskad kapacitetsklass används för att ändra flera egenskaper för webbdrivrutiner. Den tillhandahåller nyckel-värdepar för att ändra individuella egenskaper för webbdrivrutiner som webbläsarnamn, webbläsarplattform etc. En vanlig metod för klassen Desired Capabilities är setCapability-metoden. Den används mest med Selenium Grid, där samma testfall måste köras på olika webbläsare.

Exempelvis:

Exemplet nedan visar sättet att aktivera Chrome-webbläsaren för att acceptera SSL-certifikat på webbplatser som standard med önskvärda funktioner för 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);

Nedan finns de vanligaste fördefinierade kapacitetstyperna.

Kapacitetsnamn Description
ACCEPT_SSL_CERTS Den här egenskapen talar om för webbläsaren att acceptera SSL-certifikat som standard
PLATFORM_NAME Den här egenskapen används för att ställa in den operativsystemplattform som används för att komma åt webbplatsen
BROWSER_NAME Den här egenskapen används för att ställa in webbläsarnamnet för en webbdrivrutininstans
VERSION Den här egenskapen används för att ställa in webbläsarversionen

Chrome Options for Adblocker extension

Adblocker-förlängning av Chrome-webbläsaren kan hanteras med ChromeDriver-alternativ och klassen Önskad kapacitet. Nedan följer stegen för att komma åt AdBlocker-tillägget i Chrome-webbläsaren med klassen önskade funktioner.

Steg 1) AdBlocker-tillägget måste installeras i webbläsaren Chrome innan du använder klassen Chrome Options

Steg 2) Extrahera CRX-filen som motsvarar AdBlocker förlängning via http://crxextractor.com/

Steg 3) Skicka den nedladdade CRX-filsökvägen till Chrome Options-klassen

Steg 4) Instantiera webbdrivrutinen med hjälp av önskad funktionsklass och Chrome-alternativ i Selenium objektet

Exempelvis:

Exemplet nedan visar hur du aktiverar annonsblockerarens tillägg i Chrome-webbläsaren med hjälp av klassen Chrome Options and Desired Capabilities.

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

Extrahera CRX-fil

Stegen nedan visar processen att extrahera CRX-fil via Ad Blocker via webbplatsen – http://crxextractor.com/

Steg 1) Gå till http://crxextractor.com/ och klicka på startknappen

Extrahera CRX-fil

Steg 2) Ange Chrome-tillägget – Ad Blocker URL under textrutan. URL för Adblock på Chrome Web Store är https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

och klicka ok

Extrahera CRX-fil

Steg 3) När du klickar på OK-knappen kommer knappens etikett att ändras till Get .CRX enligt nedan. Klicka på knappen Hämta .CRX, CRX-fil som motsvarar tillägget kommer att laddas ner

Extrahera CRX-fil

Steg 4) Spara filen på den lokala datorn, anteckna sökvägen som sparats. Nästa steg är att skicka den sparade sökvägen till Chrome Options-klassen

Exempelkod:

  1. Du kommer att se annonser kl https://demo.guru99.com/ som nedan

Extrahera CRX-fil

  1. Med AdBlocker tillägg som är aktiverat i webbläsarannonser i Chrome bör inaktiveras
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();
	}
	
}

Kodförklaring:

  1. Till att börja med måste du ställa in sökvägen till chromedriver.exe-filen med metoden set property eftersom du använder Chrome-webbläsaren för att testa
  2. Du måste ställa in sökvägen till CRX File för att lägga till tilläggsmetoden
  3. Sedan måste du skapa ett objekt med Chrome Desired Capabilities i Selenium klass och skicka den till webbdrivrutinsinstansen. Från Selenium 3.8.1 version, drivrutinskapacitetsklassen är utfasad och du måste slå samman capabilities-objektet med Chrome Options-objektet innan du skickar samma som ett argument till Chrome Driver-konstruktorn
  4. Öppna webbadressen – https://demo.guru99.com/test/simple_context_menu.html med tillägget Ad Blocker aktiverat
  5. Maximera och stäng webbläsaren

OBS: Vi möjliggör AdBlocker förlängning på Chrome-webbläsaren genom automatiseringsskript istället för att manuellt aktivera Adblocker-tillägget i Chrome-webbläsaren. CRX File är ett sätt att få åtkomst till annonsblockerare med hjälp av automatiseringsskript

Produktion:

Chrome-webbläsaren kommer att aktiveras med AdBlocker-tillägget aktiverat enligt nedan utan några annonser

Extrahera CRX-fil

Chrome-alternativ för inkognitoläge

Chrome-alternativ kan användas för inkognitoläge genom att använda det fördefinierade argumentet –inkognito.

Nedan är exempelkoden för att åstadkomma detsamma.

Exempelkod:

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

Kodförklaring:

  1. Till att börja med måste du ställa in sökvägen till chromedriver.exe-filen med metoden set property eftersom du använder Chrome-webbläsaren för att testa
  2. Sedan måste du skapa ett objekt av klassen Chrome Options och skicka det till webbdrivrutinsinstansen. Eftersom vi vill öppna webbläsaren Chrome i inkognitoläge måste du skicka argumentet –inkognito till Chrome Options-klassen.
  3. Skapa sedan ett objekt av klassen Desired Capabilities och slå samman klassobjektet Desired Capabilities med klassobjektet Chrome Options med merge-metoden
  4. Du måste skapa ett objekt av Chrome Driver-klassen och skicka Chrome Options-objektet som ett argument
  5. Slutligen måste vi skicka webbadressen – https://demo.guru99.com/test/simple_context_menu.html till metoden driver.get
  6. Maximera och stäng webbläsaren

Produktion:

Chrome-webbläsarfönstret öppnas i inkognitoläge enligt nedan

Chrome-alternativ för inkognitoläge

Chrome-alternativ för Headless Chrome

En huvudlös webbläsare körs i bakgrunden. Du kommer inte att se webbläsarens GUI eller operationerna som har utförts på det.

Chrome-alternativ för att köra webbläsaren Chrome i huvudlöst läge kan uppnås genom att använda de fördefinierade argumenten –huvudlösa.

Exempelkod för att åstadkomma det nämns nedan.

Exempelvis:

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


}

Kodförklaring:

  1. Till att börja med måste du ställa in sökvägen till chromedriver.exe-filen med metoden set property eftersom du använder Chrome-webbläsaren för att testa
  2. Skapa sedan ett objekt av klassen Chrome Options och skicka det till webbdrivrutinsinstansen. Eftersom vi vill öppna webbläsaren Chrome i headless-läge måste vi skicka argumentet –headless till Chrome Options-klassen.
  3. Skapa ett objekt av klassen DesiredCapabilities Chrome och slå samman klassobjektet Desired Capabilities med klassobjektet Chrome Options med merge-metoden
  4. Skapa ett objekt av Chrome Driver-klassen och klara Chrome-alternativen Selenium objekt som argument
  5. Slutligen måste vi skicka webbadressen – https://demo.guru99.com/ till metoden driver.get
  6. Skriv ut sidtiteln och stäng webbläsaren

Produktion

Webbläsaren kommer inte att vara synlig för ovanstående kod eftersom Chrome kommer att fungera i huvudlöst läge. Sidrubrik kommer att hämtas och visas enligt nedan.

Chrome-alternativ för huvudlös Chrome

Sammanfattning

  • Selenium Chrome Options-klassen används för att manipulera olika egenskaper hos Chrome-drivrutinen
  • Klassen Önskad Chrome Capabilities tillhandahåller en uppsättning nyckel-värdepar för att modifiera individuella egenskaper för webbdrivrutinen som webbläsarnamn, webbläsarplattform etc.
  • För att manipulera eventuella tillägg av Chrome-webbläsaren måste CRX-filen som motsvarar tillägget extraheras och läggas till i Chrome Options-klassen
  • –incognito och –headless är fördefinierade argument som tillhandahålls av Chrome Options-klassen för att använda webbläsaren Chrome i inkognitoläge och headless-läge