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
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é
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
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:
- U ziet advertenties op https://demo.guru99.com/ zoals hieronder
- 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:
- 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
- U moet het pad naar CRX File instellen om de extensiemethode toe te voegen
- 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
- Open de URL – https://demo.guru99.com/test/simple_context_menu.html met de Ad Blocker-extensie ingeschakeld
- 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
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:
- 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
- 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.
- 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
- U moet een object van de Chrome Driver-klasse maken en het Chrome Options-object als argument doorgeven
- Ten slotte moeten we de URL doorgeven – https://demo.guru99.com/test/simple_context_menu.html naar de driver.get-methode
- Maximaliseer en sluit de browser
Output:
Het Chrome-browservenster wordt geopend in de incognitomodus, zoals hieronder
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:
- 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
- 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.
- 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
- Maak een object van de Chrome Driver-klasse en geef de Chrome-opties door Selenium object als argument
- Ten slotte moeten we de URL doorgeven – https://demo.guru99.com/ naar de driver.get-methode
- 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.
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