Chrome-alternativer og ønskede funksjoner i Selenium Webdriver
Hva er Chrome Options Class?
Ocuco Chromeoptions-klasse er et konsept i Selenium WebDriver for å manipulere ulike egenskaper for Chrome-driveren. Chrome-alternativklassen brukes vanligvis sammen med Ønskede funksjoner for å tilpasse Chrome-driverøkter. Det hjelper deg med å utføre ulike operasjoner som å åpne Chrome i maksimert modus, deaktivere eksisterende utvidelser, deaktivere popup-vinduer, etc.
Eksempel:
Eksempelet nedenfor viser en måte å åpne Chrome-nettleseren i maksimert modus ved å bruke ChromeOptions-klassen. Vi må sende en forekomst av ChromeOptions-klassen til nettdriverinitialiseringen.
ChromeOptions options = new ChromeOptions() options.addArgument("start-maximized"); ChromeDriver driver = new ChromeDriver(options);
Nedenfor er listen over tilgjengelige og mest brukte argumenter for ChromeOptions-klassen
- startmaksimert: Åpner Chrome i maksimeringsmodus
- inkognito: Åpner Chrome i inkognitomodus
- hodeløs: Åpner Chrome i hodeløs modus
- deaktiver-utvidelser: Deaktiverer eksisterende utvidelser i Chrome-nettleseren
- deaktiver popup-blokkering: Deaktiverer popup-vinduer som vises i Chrome-nettleseren
- make-default-nettleser: Gjør Chrome til standard nettleser
- versjon: Skriver ut Chrome-nettleserversjon
- deaktiver-infobarer: Hindrer Chrome fra å vise varselet «Chrome blir kontrollert av automatisert programvare
Ønsket evneklasse
Ønsket evneklasse brukes til å endre flere egenskaper for webdrivere. Den gir nøkkel-verdi-par for å endre individuelle egenskaper til nettdrivere som nettlesernavn, nettleserplattform osv. En vanlig metode for Desired Capabilities-klassen er setCapability-metoden. Den brukes mest med Selenium Grid, der samme testtilfelle må kjøres på forskjellige nettlesere.
Eksempel:
Eksemplet nedenfor viser måten å aktivere Chrome-nettleseren til å akseptere SSL-sertifikater på nettsteder som standard ved å bruke Ønskede funksjoner for 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);
Nedenfor er de mest brukte forhåndsdefinerte funksjonstypene.
Kapasitetsnavn | Beskrivelse |
---|---|
ACCEPT_SSL_CERTS | Denne egenskapen forteller nettleseren å akseptere SSL-sertifikater som standard |
PLATFORM_NAME | Denne egenskapen brukes til å angi operativsystemplattformen som brukes for å få tilgang til nettstedet |
BROWSER_NAME | Denne egenskapen brukes til å angi nettlesernavnet for en nettdriverforekomst |
VERSJON | Denne egenskapen brukes til å angi nettleserversjonen |
Chrome Options for Adblocker-utvidelse
Adblocker-utvidelse av Chrome-nettleseren kan håndteres ved hjelp av ChromeDriver Options og Desired Capabilities-klassen. Nedenfor er fremgangsmåten for å få tilgang AdBlocker-utvidelsen i Chrome-nettleseren ved å bruke klassen Ønskede egenskaper.
Trinn 1) AdBlocker-utvidelsen må installeres i Chrome-nettleseren før du bruker Chrome Options-klassen
Trinn 2) Pakk ut CRX-filen som tilsvarer AdBlocker utvidelse gjennom http://crxextractor.com/
Trinn 3) Send den nedlastede CRX-filbanen til Chrome Options-klassen
Trinn 4) Instantier nettdriveren ved å bruke ønsket funksjonsklasse og Chrome-alternativer i Selenium objekt
Eksempel:
Eksemplet nedenfor viser hvordan du aktiverer utvidelse for annonseblokkering i Chrome-nettleseren ved å bruke Chrome Options and Desired Capabilities-klassen.
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);
Pakk ut CRX-fil
Trinnene nedenfor demonstrerer prosessen med å pakke ut CRX-fil gjennom Ad Blocker gjennom nettstedet – http://crxextractor.com/
Trinn 1) Gå til http://crxextractor.com/ og klikk på startknappen
Trinn 2) Skriv inn chrome-utvidelsen – Ad Blocker URL under tekstboksen. URL for Adblock på Chrome nettbutikk er https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
og klikk ok
Trinn 3) Når du klikker på OK-knappen, endres etiketten til knappen til Get .CRX som nedenfor. Klikk på Get .CRX-knappen, CRX-fil som tilsvarer utvidelsen vil bli lastet ned
Trinn 4) Lagre filen på den lokale maskinen, noter banen som er lagret. Det neste trinnet er å sende den lagrede banen til Chrome Options-klassen
Eksempelkode:
- Du vil se annonser kl https://demo.guru99.com/ som Nedenfor
- Med AdBlocke-utvidelsen som er aktivert i Chrome-nettleserannonser, skal være deaktivert
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(); } }
Kode Forklaring:
- Til å begynne med må du angi banen til chromedriver.exe-filen ved å bruke set-egenskapsmetoden siden du bruker Chrome-nettleseren for testing
- Du må angi banen til CRX-filen for å legge til utvidelser
- Deretter må du opprette et objekt med Chrome Desired Capabilities i Selenium klasse og send den til webdriverforekomsten. Fra Selenium 3.8.1-versjon, driverkapasitetsklassen er utdatert og du må slå sammen capabilities-objektet med Chrome Options-objektet før du sender det samme som et argument til Chrome Driver-konstruktør
- Åpne URL-en – https://demo.guru99.com/test/simple_context_menu.html med annonseblokkeringsutvidelsen aktivert
- Maksimer og lukk nettleseren
NOTAT: Vi aktiverer AdBlocker utvidelse på Chrome-nettleseren gjennom automatiseringsskript i stedet for manuelt å aktivere Adblocker-utvidelsen på Chrome-nettleseren. CRX File er en måte å få tilgang til utvidelse av annonseblokkering ved hjelp av automatiseringsskript
Utgang:
Chrome-nettleseren vil være aktivert med AdBlocker-utvidelsen aktivert som nedenfor uten noen annonser
Chrome-alternativer for inkognitomodus
Chrome-alternativer kan brukes for inkognitomodus ved å bruke det forhåndsdefinerte argumentet –incognito.
Nedenfor er eksempelkoden for å oppnå det samme.
Eksempelkode:
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(); } }
Kode Forklaring:
- Til å begynne med må du angi banen til chromedriver.exe-filen ved å bruke set-egenskapsmetoden siden du bruker Chrome-nettleseren for testing
- Deretter må du opprette et objekt av Chrome Options-klassen og sende det til nettdriverforekomsten. Siden vi ønsker å åpne Chrome-nettleseren i inkognitomodus, må du sende argumentet –inkognito til Chrome Options-klassen.
- Deretter oppretter du et objekt av Desired Capabilities-klassen og slår sammen Desired Capabilities-klasseobjektet med Chrome Options-klasseobjektet ved å bruke flettemetoden
- Du må opprette et objekt av Chrome Driver-klassen og sende Chrome Options-objektet som et argument
- Til slutt må vi sende URL-en – https://demo.guru99.com/test/simple_context_menu.html til driver.get-metoden
- Maksimer og lukk nettleseren
Utgang:
Chrome-nettleservinduet åpnes i inkognitomodus som nedenfor
Chrome-alternativer for hodeløs Chrome
En hodeløs nettleser kjører i bakgrunnen. Du vil ikke se nettleserens GUI eller operasjonene som er utført på den.
Chrome-alternativer for å kjøre Chrome-nettleseren i hodeløs modus kan oppnås ved å bruke de forhåndsdefinerte argumentene –hodeløse.
Eksempelkode for å oppnå det er nevnt nedenfor.
Eksempel:
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(); } }
Kode Forklaring:
- Til å begynne med må du angi banen til chromedriver.exe-filen ved å bruke set-egenskapsmetoden siden du bruker Chrome-nettleseren for testing
- Deretter oppretter du et objekt av Chrome Options-klassen og sender det til nettdriverforekomsten. Siden vi ønsker å åpne Chrome-nettleseren i hodeløs modus, må vi sende argumentet – headless til Chrome Options-klassen.
- Opprett et objekt av DesiredCapabilities Chrome-klassen og slå sammen Desired Capabilities-klasseobjektet med Chrome Options-klasseobjektet ved å bruke flettemetoden
- Opprett et objekt av Chrome Driver-klassen og bestå Chrome-alternativene Selenium objekt som argument
- Til slutt må vi sende URL-en – https://demo.guru99.com/ til driver.get-metoden
- Skriv ut sidetittelen og lukk nettleseren
Produksjon
Nettleseren vil ikke være synlig for koden ovenfor, da Chrome vil fungere i hodeløs modus. Sidetittel vil bli hentet og vist som nedenfor.
Oppsummering
- Selenium Chrome Options-klassen brukes til å manipulere ulike egenskaper for Chrome-driveren
- Desired Chrome Capabilities-klassen gir et sett med nøkkelverdi-par for å endre individuelle egenskaper for nettdrivere som nettlesernavn, nettleserplattform osv.
- For å manipulere utvidelser av Chrome-nettleseren, må CRX-filen som tilsvarer utvidelsen trekkes ut og legges til Chrome Options-klassen
- –incognito og –headless er forhåndsdefinerte argumenter levert av Chrome Options-klassen for bruk av Chrome-nettleseren i inkognitomodus og headless-modus