Chrome-opties & Gewenste mogelijkheden: AdBlocker, Incognito, Headless

Inhoudsopgave:

Anonim

Wat is de klasse Chrome-opties?

De klasse Chrome-opties wordt gebruikt om verschillende eigenschappen van de Chrome-driver te manipuleren. De klasse Chrome-opties wordt over het algemeen gebruikt in combinatie met de gewenste mogelijkheden.

Voorbeeld:

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

ChromeOptions-opties = nieuwe ChromeOptions ()options.addArgument ("start-gemaximaliseerd");ChromeDriver-stuurprogramma = nieuwe ChromeDriver (opties);

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

  • start-gemaximaliseerd : opent Chrome in de modus maximaliseren
  • incognito: opent Chrome in de incognitomodus
  • headless: opent Chrome in headless-modus
  • disable-extensions : schakelt bestaande extensies in de Chrome-browser uit
  • uitschakelen-pop-upblokkering : schakelt pop-ups uit die worden weergegeven in de Chrome-browser
  • make-default-browser: Maakt van Chrome de standaardbrowser
  • version : Drukt de Chrome-browserversie af
  • disable-infobars: Voorkomt dat Chrome de melding 'Chrome wordt beheerd door geautomatiseerde software' weergeeft

In deze tutorial leer je

  • Wat is de klasse Chrome-opties?
  • Gewenste capaciteitsklasse
  • Chrome-opties voor Adblocker-extensie
  • Chrome-opties voor incognitomodus
  • Chrome-opties voor Chrome zonder kop

Gewenste capaciteitsklasse

Gewenste capaciteitsklasse wordt gebruikt om meerdere eigenschappen van webstuurprogramma te wijzigen. De klasse Desired Capabilities biedt een set sleutel-waardeparen om individuele eigenschappen van het webstuurprogramma te wijzigen, zoals browsernaam, browserplatform, enz. De meest gebruikte methode van de klasse Desired Capabilities is de methode setCapability. Gewenste mogelijkheden worden het meest gebruikt met Selenium Grid waar dezelfde testcase op verschillende browsers moet worden uitgevoerd.

Voorbeeld:

Onderstaand voorbeeld toont de manier om de Chrome-browser in staat te stellen SSL-certificaten standaard op websites te accepteren met behulp van de klasse Desired Capabilities.

// Maak een object van de gewenste klasse met de Chrome-driverDesiredCapabilities SSLCertificate = DesiredCapabilities.chrome ();// Stel de vooraf gedefinieerde mogelijkheid - ACCEPT_SSL_CERTS waarde in op trueSSLCertificate.setCapability (CapabilityType.ACCEPT_SSL_CERTS, waar);// Open een nieuw exemplaar van Chrome-stuurprogramma met de gewenste mogelijkheidWebDriver-stuurprogramma = nieuwe ChromeDriver (SSLCertificate);

Hieronder staan ​​de meest gebruikte vooraf gedefinieerde vaardigheidstypen.

Mogelijkheidsnaam Omschrijving
ACCEPT_SSL_CERTS Deze eigenschap vertelt de browser om 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 in te stellen voor een exemplaar van een webstuurprogramma
VERSIE Deze eigenschap wordt gebruikt om de browserversie in te stellen

Chrome-opties voor Adblocker-extensie

Adblocker-extensie van de Chrome-browser kan worden afgehandeld met behulp van de klasse Chrome-opties en gewenste mogelijkheden. Hieronder staan ​​de stappen om toegang te krijgen tot de AdBlocker-extensie in de Chrome-browser met behulp van de klasse Desired Capabilities.

Stap 1) De AdBlocker-extensie moet in de Chrome-browser worden geïnstalleerd voordat u de klasse Chrome-opties gebruikt

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

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

Stap 4) Start het webstuurprogramma met behulp van de gewenste klasse van mogelijkheden en het Chrome-optiesobject

Voorbeeld:

Het onderstaande voorbeeld laat zien hoe u de extensie voor advertentieblokkering in de Chrome-browser activeert met behulp van de klasse Chrome-opties en gewenste mogelijkheden.

ChromeOptions-opties = nieuwe ChromeOptions ();options.addExtensions (nieuw bestand ("Pad naar CRX-bestand"));DesiredCapabilities-mogelijkheden = nieuwe DesiredCapabilities ();mogelijkheden.setCapability (ChromeOptions.CAPABILITY, opties);ChromeDriver-stuurprogramma = nieuwe ChromeDriver (mogelijkheden);

Extract CRX-bestand:

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

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

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

en klik op ok

Stap 3) Door op de OK-knop te klikken, verandert het label van de knop in Get .CRX zoals hieronder. Klik op de knop .CRX ophalen, het CRX-bestand dat overeenkomt met de extensie wordt gedownload

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

Voorbeeldcode:

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

  1. Als de AdBlocker-extensie is ingeschakeld op de Chrome-browser, moeten advertenties worden uitgeschakeld
pakket adblock;importeer java.io.File;importeer org.openqa.selenium.chrome.ChromeDriver;importeer org.openqa.selenium.chrome.ChromeOptions;importeer org.openqa.selenium.remote.DesiredCapabilities;openbare klasse AdblockDemo {public static void main (String [] args) {System.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");ChromeOptions-opties = nieuwe ChromeOptions ();options.addExtensions (nieuw bestand ("X: //extension_3_40_1_0.crx"));DesiredCapabilities-mogelijkheden = nieuwe DesiredCapabilities ();mogelijkheden.setCapability (ChromeOptions.CAPABILITY, opties);options.merge (mogelijkheden);ChromeDriver-stuurprogramma = nieuwe ChromeDriver (opties);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maximaliseren ();//driver.quit ();​​

Code Verklaring:

  1. In eerste instantie moet u het pad naar het chromedriver.exe-bestand 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 van de gewenste klasse maken en dit doorgeven aan de instantie van het webstuurprogramma. Vanaf de Selenium 3.8.1-versie is de klasse voor stuurprogrammamogelijkheden verouderd en moet u het capaciteitenobject samenvoegen met het Chrome Options-object voordat u hetzelfde als een argument doorgeeft aan de Chrome Driver-constructor
  4. Open de URL - http://demo.guru99.com/test/simple_context_menu.html met Ad Blocker-extensie ingeschakeld
  5. Maximaliseer en sluit de browser

OPMERKING: We schakelen de AdBlocker-extensie in de Chrome-browser in via een automatiseringsscript in plaats van de Adblocker-extensie handmatig in de Chrome-browser in te schakelen. CRX-bestand is een manier om toegang te krijgen tot de extensie voor advertentieblokkering met behulp van een automatiseringsscript

Uitgang:

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

Chrome-opties voor incognitomodus

Chrome-opties kunnen worden gebruikt voor de incognitomodus met behulp van het vooraf gedefinieerde argument - incognito .

Hieronder ziet u de voorbeeldcode om hetzelfde te bereiken.

Voorbeeldcode:

pakkettest;importeer java.io.File;importeer org.openqa.selenium.chrome.ChromeDriver;importeer org.openqa.selenium.chrome.ChromeOptions;importeer org.openqa.selenium.remote.DesiredCapabilities;openbare klas Incognito {public static void main (String [] args) {// TODO Automatisch gegenereerde methodestubSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");ChromeOptions-opties = nieuwe ChromeOptions ();options.addArguments ("- incognito");DesiredCapabilities-mogelijkheden = nieuwe DesiredCapabilities ();mogelijkheden.setCapability (ChromeOptions.CAPABILITY, opties);options.merge (mogelijkheden);ChromeDriver-stuurprogramma = nieuwe ChromeDriver (opties);driver.get ("http://demo.guru99.com/test/simple_context_menu.html");driver.manage (). window (). maximaliseren ();//driver.quit ();​​

Code Verklaring :

  1. In eerste instantie moet u het pad naar het chromedriver.exe-bestand 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 klasse Chrome-opties maken en dit doorgeven aan de instantie van het webstuurprogramma. Omdat we de Chrome-browser in de incognitomodus willen openen, moet u het argument -incognito doorgeven aan de klasse Chrome-opties.
  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 samenvoegmethode
  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 - http://demo.guru99.com/test/simple_context_menu.html doorgeven aan de methode driver.get
  6. Maximaliseer en sluit de browser

Uitgang:

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

Chrome-opties voor Chrome zonder kop

Een headless-browser wordt op de achtergrond uitgevoerd. U zult de browser-GUI niet zien of de bewerkingen die erop zijn uitgevoerd.

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

Voorbeeldcode om dit te bereiken wordt hieronder vermeld.

Voorbeeld:

pakkettest;importeer java.io.File;importeer org.openqa.selenium.chrome.ChromeDriver;importeer org.openqa.selenium.chrome.ChromeOptions;importeer org.openqa.selenium.remote.DesiredCapabilities;openbare klasse HeadlessModeDemo {public static void main (String [] args) {// TODO Automatisch gegenereerde methodestubSystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");ChromeOptions-opties = nieuwe ChromeOptions ();options.addArguments ("- headless");DesiredCapabilities-mogelijkheden = nieuwe DesiredCapabilities ();mogelijkheden.setCapability (ChromeOptions.CAPABILITY, opties);options.merge (mogelijkheden);ChromeDriver-stuurprogramma = nieuwe ChromeDriver (opties);driver.get ("http://demo.guru99.com/");driver.manage (). window (). maximaliseren ();String title = driver.getTitle ();System.out.println ("Paginatitel: + titel);driver.quit ();​​

Code Verklaring :

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

Uitvoer

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

Overzicht:

  • De klasse Chrome-opties wordt gebruikt om verschillende eigenschappen van de Chrome-driver te manipuleren
  • De klasse Desired Capabilities 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 toegevoegd aan de klasse Chrome-opties
  • --incognito en -headless zijn vooraf gedefinieerde argumenten van de klasse Chrome Options voor het gebruik van de Chrome-browser in de incognitomodus en de headless-modus