Chrome-opties en gewenste mogelijkheden in Selenium

โšก Slimme samenvatting

Chrome-opties en gewenste mogelijkheden in Selenium WebDriver bepaalt hoe de Chrome-browser wordt gestart en zich gedraagt โ€‹โ€‹tijdens geautomatiseerde tests. Samen configureren ze argumenten, extensies, SSL-afhandeling en instellingen voor compatibiliteit tussen browsers, waardoor testruns flexibel, herhaalbaar en gebruiksklaar zijn. Selenium Grid-uitvoering.

  • ๐ŸŒ ChromeOptions: Hiermee kunnen sessies worden aangepast met argumenten zoals start-maximized, incognito en headless.
  • โš™๏ธ Gewenste mogelijkheden: Hiermee worden de browsernaam, het platform, de versie en de acceptatie van het SSL-certificaat ingesteld.
  • ๐Ÿงฉ extensions: Een CRX-bestand automatisch laden in plaats van handmatig te installeren.
  • ๏ธ Incognito en zonder hoofd: Herbruikbare code voert privรฉ- of achtergrondsessies uit voor CI-pipelines.
  • โ€‹ Selenium Raster: De mogelijkheden maken gedistribueerde testuitvoering mogelijk in verschillende browsers.
  • โš ๏ธ Selenium Opmerking voor 4: DesiredCapabilities is verouderd; geef ChromeOptions rechtstreeks door aan het stuurprogramma.

Chrome-opties en gewenste mogelijkheden in Selenium webdriver

Wat is Chrome-optieklasse?

De 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) Extrachet CRX-bestand dat overeenkomt met AdBlockuitbreiding 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);

Extract CRX-bestand

De onderstaande stappen illustreren het proces van extracCRX-bestand downloaden via Ad Blocker op de website โ€“ http://crxextractor.com/

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

Extract CRX-bestand

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

en klik op okรฉ

Extract CRX-bestand

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

Extract CRX-bestand

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

Sample Code:

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

Extract CRX-bestand

  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

Extract CRX-bestand

ChromeOptions regelt niet alleen het laden van extensies, maar ook hoe het browservenster zelf functioneert.

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.

Sample Code:

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. Tot slot moeten we de URL - 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. Tot slot moeten we de URL - 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

Veelgestelde vragen

Ja. Selenium 4. De klasse DesiredCapabilities is afgeschaft ten gunste van browseroptiesklassen zoals ChromeOptions. Selenium 3 je hebt ze samengevoegd; in Selenium 4. Je geeft ChromeOptions rechtstreeks door aan het stuurprogramma.

Roep `addArguments` aan met meerdere vlaggen, bijvoorbeeld `options.addArguments` met `start-maximized` en `incognito`. Je kunt ook meerdere aanroepen achter elkaar uitvoeren. Elk argument bepaalt hoe de Chrome-sessie wordt gestart.

`addArguments` geeft commandoregelvlaggen zoals 'headless' of 'incognito' door aan Chrome. `addExtensions` laadt een verpakt .crx-extensiebestand in de sessie. Beide functies passen het gedrag aan, maar dienen verschillende doelen.

Ja. AI-assistenten zoals Copilot genereren ChromeOptions en mogelijkheden, suggereren argumentnamen en leggen verouderde API's uit. Controleer altijd de uitvoer, omdat vlagnamen en Selenium Versies worden regelmatig gewijzigd.

AI-tools voor zelfherstel werken argumenten automatisch bij, detecteren onbetrouwbare vlaggen en stellen stabiele vervangingen voor na Chrome-upgrades. Ze verminderen het onderhoud voor headless-runs en lossen problemen met incompatibiliteit tussen CI-omgevingen op.

Ja. ChromeOptions werkt met RemoteWebDriver voor Grid-uitvoering. Je koppelt de opties aan de externe sessie, waardoor dezelfde configuratie op verschillende machines en browsers kan worden uitgevoerd.

Dit betekent meestal dat de ChromeDriver- en Chrome-browserversies niet overeenkomen. Installeer een passende ChromeDriver of gebruik een andere oplossing. Selenium Zaakvoerder Selenium 4. Het stuurprogramma automatisch oplossen.

Gebruik een experimentele optie: een voorkeurenmap met download.default_directory die wordt doorgegeven via setExperimentalOption. Chrome slaat bestanden dan automatisch op in die map tijdens geautomatiseerde tests.

Vat dit bericht samen met: