Chrome-opties en gewenste mogelijkheden in Selenium Webstuurprogramma

Wat is Chrome-optieklasse?

Ocuco's Medewerkers Chromeoptions-klasse is een concept in Selenium WebDriver voor het manipuleren van verschillende eigenschappen van de Chrome driver. De Chrome options class wordt over het algemeen gebruikt in combinatie met Desired Capabilities voor het aanpassen van Chrome driver sessies. Het helpt u bij het uitvoeren van verschillende handelingen zoals het openen van Chrome in gemaximaliseerde modus, het uitschakelen van bestaande extensies, het uitschakelen van pop-ups, etc.

Voorbeeld:

Het onderstaande voorbeeld toont een manier om de Chrome-browser in de gemaximaliseerde modus te openen met behulp van de ChromeOptions-klasse. We moeten een exemplaar van de klasse ChromeOptions doorgeven aan de initialisatie van het webstuurprogramma.

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

Hieronder vindt u de lijst met beschikbare en meest gebruikte argumenten voor de ChromeOptions-klasse

  • start-gemaximaliseerd: Opent Chrome in de maximalisatiemodus
  • onherkenbaar: Opent Chrome in de incognitomodus
  • zonder hoofd: Opent Chrome in de headless-modus
  • uitschakelen-extensies: schakelt bestaande extensies in de Chrome-browser uit
  • pop-upblokkering uitschakelen: Schakelt pop-ups uit die worden weergegeven in de Chrome-browser
  • make-default-browser: Maakt van Chrome de standaardbrowser
  • versie: Drukt de Chrome-browserversie af
  • uitschakelen-infobars: Voorkomt dat Chrome de melding 'Chrome wordt beheerd door geautomatiseerde software' weergeeft

Gewenste capaciteitenklasse

Gewenste capaciteitenklasse wordt gebruikt om meerdere eigenschappen van webstuurprogramma's te wijzigen. Het biedt sleutel-waardeparen om individuele eigenschappen van webstuurprogramma's te wijzigen, zoals browsernaam, browserplatform, enz. Een veelgebruikte methode van de klasse Desired Capabilities is de setCapability-methode. Het wordt meestal gebruikt met Selenium Grid, waarbij dezelfde testcase in verschillende browsers moet worden uitgevoerd.

Voorbeeld:

Het onderstaande voorbeeld laat zien hoe u de Chrome-browser standaard SSL-certificaten op websites kunt laten accepteren met behulp van de klasse Gewenste mogelijkheden voor 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);

Hieronder vindt u de meest gebruikte, vooraf gedefinieerde capaciteitstypen.

Capability Name BESCHRIJVING
ACCEPT_SSL_CERTS Deze eigenschap vertelt de browser standaard SSL-certificaten te accepteren
PLATFORM_NAME Deze eigenschap wordt gebruikt om het besturingssysteemplatform in te stellen dat wordt gebruikt om toegang te krijgen tot de website
BROWSER_NAME Deze eigenschap wordt gebruikt om de browsernaam voor een webstuurprogramma-instantie in te stellen
VERSIE Deze eigenschap wordt gebruikt om de browserversie in te stellen

Chrome-opties voor de Adblocker-extensie

De Adblocker-extensie van de Chrome-browser kan worden afgehandeld met behulp van de ChromeDriver Options en Desired Capabilities-klasse. Hieronder staan ​​de stappen om toegang te krijgen AdBlocker-extensie in de Chrome-browser met behulp van de klasse Desired Capabilities.

Stap 1) AdBlockEr moet een extensie in de Chrome-browser worden geïnstalleerd voordat u de Chrome Options-klasse kunt gebruiken

Stap 2) Pak het CRX-bestand uit dat overeenkomt met AdBlocker-extensie via http://crxextractor.com/

Stap 3) Geef het gedownloade CRX-bestandspad door aan de klasse Chrome-opties

Stap 4) Instantieer het webstuurprogramma met behulp van de gewenste mogelijkhedenklasse en Chrome-opties in Selenium object

Voorbeeld:

Het onderstaande voorbeeld laat zien hoe u de adblocker-extensie in de Chrome-browser activeert met behulp van de Chrome Options en Desired Capabilities-klasse.

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

CRX-bestand uitpakken

De onderstaande stappen demonstreren het proces van het extraheren van een CRX-bestand via Ad Blocker via de website – http://crxextractor.com/

Stap 1) Ga naar http://crxextractor.com/ en klik op de startknop

CRX-bestand uitpakken

Stap 2) Voer de Chrome-extensie - Ad Blocker URL in onder het tekstvak. URL voor Adblock in de Chrome-webwinkel is https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

en klik op oké

CRX-bestand uitpakken

Stap 3) Als u op de knop OK klikt, verandert het label van de knop in Get .CRX, zoals hieronder. Klik op de knop Get .CRX. Het CRX-bestand dat overeenkomt met de extensie wordt gedownload

CRX-bestand uitpakken

Stap 4) Sla het bestand op de lokale computer op en noteer het opgeslagen pad. De volgende stap is om het opgeslagen pad door te geven aan de Chrome Options-klasse

Voorbeeldcode:

  1. U ziet advertenties op https://demo.guru99.com/ zoals hieronder

CRX-bestand uitpakken

  1. met AdBlockDe extensie die is ingeschakeld voor Chrome-browseradvertenties moet worden uitgeschakeld
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 Uitleg:

  1. In eerste instantie moet u het pad naar het bestand chromedriver.exe instellen met behulp van de set property-methode, aangezien u de Chrome-browser gebruikt om te testen
  2. U moet het pad naar CRX File instellen om de extensiemethode toe te voegen
  3. Vervolgens moet u een object met Chrome Desired Capabilities maken Selenium class en geef het door aan de webdriver-instantie. Van Selenium In versie 3.8.1 is de klasse stuurprogrammamogelijkheden verouderd en moet u het mogelijkhedenobject samenvoegen met het Chrome Options-object voordat u dit als argument doorgeeft aan de Chrome Driver-constructor
  4. Open de URL – https://demo.guru99.com/test/simple_context_menu.html met de Ad Blocker-extensie ingeschakeld
  5. Maximaliseer en sluit de browser

NOTITIE: Wij zijn aan het inschakelen AdBlocker extensie op de Chrome-browser via een automatiseringsscript in plaats van het handmatig inschakelen van de Adblocker-extensie op de Chrome-browser. CRX File is een manier om toegang te krijgen tot de adblocker-extensie met behulp van een automatiseringsscript

Output:

De Chrome-browser wordt ingeschakeld met AdBlocker-extensie ingeschakeld zoals hieronder zonder advertenties

CRX-bestand uitpakken

Chrome-opties voor incognitomodus

Chrome-opties kunnen worden gebruikt voor de incognitomodus door het vooraf gedefinieerde argument te gebruiken:incognito.

Hieronder vindt u de voorbeeldcode om hetzelfde te bereiken.

Voorbeeldcode:

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 Uitleg:

  1. In eerste instantie moet u het pad naar het bestand chromedriver.exe instellen met behulp van de set property-methode, aangezien u de Chrome-browser gebruikt om te testen
  2. Vervolgens moet u een object van de Chrome Options-klasse maken en dit doorgeven aan de webdriver-instantie. Omdat we de Chrome-browser in de incognitomodus willen openen, moet je het argument –incognito doorgeven aan de Chrome Options-klasse.
  3. Maak vervolgens een object van de klasse Desired Capabilities en voeg het klasseobject Desired Capabilities samen met het klasseobject Chrome Options met behulp van de merge-methode
  4. U moet een object van de Chrome Driver-klasse maken en het Chrome Options-object als argument doorgeven
  5. Ten slotte moeten we de URL doorgeven – https://demo.guru99.com/test/simple_context_menu.html naar de driver.get-methode
  6. Maximaliseer en sluit de browser

Output:

Het Chrome-browservenster wordt geopend in de incognitomodus, zoals hieronder

Chrome-opties voor incognitomodus

Chrome-opties voor Headless Chrome

Een Headless browser draait op de achtergrond. U ziet de browser GUI of de bewerkingen die erop worden uitgevoerd niet.

Chrome-opties voor het uitvoeren van de Chrome-browser in de headless-modus kunnen worden bereikt door de vooraf gedefinieerde argumenten te gebruiken:zonder hoofd.

Voorbeeldcode om dit te bereiken wordt hieronder vermeld.

Voorbeeld:

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 Uitleg:

  1. In eerste instantie moet u het pad naar het bestand chromedriver.exe instellen met behulp van de set property-methode, aangezien u de Chrome-browser gebruikt om te testen
  2. Maak vervolgens een object van de Chrome Options-klasse en geef dit door aan de webdriver-instantie. Omdat we de Chrome-browser in de headless-modus willen openen, moeten we het argument –headless doorgeven aan de Chrome Options-klasse.
  3. Maak een object van de Chrome-klasse DesiredCapabilities en voeg het klassenobject Desired Capabilities samen met het klasseobject Chrome Options met behulp van de samenvoegmethode
  4. Maak een object van de Chrome Driver-klasse en geef de Chrome-opties door Selenium object als argument
  5. Ten slotte moeten we de URL doorgeven – https://demo.guru99.com/ naar de driver.get-methode
  6. Druk de paginatitel af en sluit de browser

uitgang

De browser is niet zichtbaar voor de bovenstaande code, omdat Chrome in Headless-modus werkt. De paginatitel wordt opgehaald en weergegeven zoals hieronder.

Chrome-opties voor Headless Chrome

Samenvatting

  • Selenium De Chrome Options-klasse wordt gebruikt om verschillende eigenschappen van het Chrome-stuurprogramma te manipuleren
  • De gewenste Chrome Capabilities-klasse biedt een set sleutel-waardeparen om individuele eigenschappen van het webstuurprogramma te wijzigen, zoals browsernaam, browserplatform, enz.
  • Om extensies van de Chrome-browser te manipuleren, moet het CRX-bestand dat overeenkomt met de extensie worden uitgepakt en worden toegevoegd aan de klasse Chrome-opties
  • –incognito en –headless zijn vooraf gedefinieerde argumenten geleverd door de Chrome Options-klasse voor het gebruik van de Chrome-browser in de incognitomodus en de headless-modus