Chrome-indstillinger og ønskede funktioner i Selenium Webdriver
Hvad er Chrome Options Class?
Chromeoptions klasse er et koncept i Selenium WebDriver til at manipulere forskellige egenskaber for Chrome-driveren. Chrome-indstillingsklassen bruges generelt sammen med ønskede funktioner til at tilpasse Chrome-driversessioner. Det hjælper dig med at udføre forskellige handlinger som at åbne Chrome i maksimeret tilstand, deaktivere eksisterende udvidelser, deaktivere pop op-vinduer osv.
Eksempel:
Nedenstående eksempel viser en måde at åbne Chrome-browseren i maksimeret tilstand ved hjælp af ChromeOptions-klassen. Vi skal videregive en forekomst af ChromeOptions-klassen til webdriverinitialiseringen.
ChromeOptions options = new ChromeOptions() options.addArgument("start-maximized"); ChromeDriver driver = new ChromeDriver(options);
Nedenfor er listen over tilgængelige og mest brugte argumenter for ChromeOptions-klassen
- startmaksimeret: Åbner Chrome i maksimeringstilstand
- inkognito: Åbner Chrome i inkognitotilstand
- hovedløs: Åbner Chrome i hovedløs tilstand
- deaktiver-udvidelser: Deaktiverer eksisterende udvidelser i Chrome-browseren
- deaktiver-popup-blokering: Deaktiverer pop op-vinduer, der vises i Chrome-browseren
- make-default-browser: Gør Chrome til standardbrowser
- udgave: Udskriver Chrome-browserversion
- deaktiver-infobarer: Forhindrer Chrome i at vise meddelelsen "Chrome styres af automatiseret software
Ønskede evner klasse
Ønskede kapacitetsklasse bruges til at ændre flere egenskaber for webdrivere. Det giver nøgleværdi-par til at ændre individuelle egenskaber for webdrivere, såsom browsernavn, browserplatform osv. En almindelig metode til Desired Capabilities-klassen er setCapability-metoden. Det bruges mest med Selenium Grid, hvor den samme testcase skal udføres på forskellige browsere.
Eksempel:
Nedenstående eksempel viser måden at aktivere Chrome-browseren til at acceptere SSL-certifikater på websteder som standard ved brug af Ønskede funktioner til 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 almindeligt anvendte foruddefinerede kapacitetstyper.
Kapacitetsnavn | Description |
---|---|
ACCEPT_SSL_CERTS | Denne egenskab fortæller browseren at acceptere SSL-certifikater som standard |
Platform_name. | Denne egenskab bruges til at indstille den operativsystemplatform, der bruges til at få adgang til webstedet |
BROWSER_NAME | Denne egenskab bruges til at indstille browsernavnet for en webdriverforekomst |
VERSION | Denne egenskab skal bruges til at indstille browserversionen |
Chrome-indstillinger for Adblocker-udvidelse
Adblocker-udvidelse af Chrome-browseren kan håndteres ved hjælp af ChromeDriver Options og Desired Capabilities klasse. Nedenfor er trinene for at få adgang AdBlocker-udvidelse på Chrome-browseren ved hjælp af klassen Ønskede funktioner.
Trin 1) AdBlocker-udvidelsen skal installeres på Chrome-browseren, før du bruger Chrome Options-klassen
Trin 2) Udpak den CRX-fil, der svarer til AdBlocker udvidelse via http://crxextractor.com/
Trin 3) Send den downloadede CRX-filsti til Chrome Options-klassen
Trin 4) Instantiér webdriveren ved hjælp af den ønskede kapacitetsklasse og Chrome-indstillinger i Selenium objekt
Eksempel:
Nedenstående eksempel viser, hvordan du aktiverer udvidelsen til annonceblokering i Chrome-browseren ved hjælp af klassen Chrome-indstillinger og ønskede funktioner.
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);
Udpak CRX-fil
Nedenstående trin demonstrerer processen med at udtrække CRX-fil via Ad Blocker via webstedet - http://crxextractor.com/
Trin 1) Gå til http://crxextractor.com/ og klik på startknappen
Trin 2) Indtast chrome-udvidelsen – Ad Blocker URL under tekstboksen. URL for Adblock på Chrome webbutik er https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
og klik ok
Trin 3) Når du klikker på OK-knappen, ændres etiketten på knappen til Hent .CRX som nedenfor. Klik på Hent .CRX-knappen, CRX-fil, der svarer til udvidelsen, vil blive downloadet
Trin 4) Gem filen på den lokale maskine, noter den gemte sti. Det næste trin er at videregive den gemte sti til Chrome Options-klassen
Prøvekode:
- Du vil se annoncer kl
http://demo.guru99.com/
som nedenfor
- Med AdBlockudvidelsen aktiveret på Chrome-browserannoncer bør være deaktiveret
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("http://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Kode Forklaring:
- Til at begynde med skal du indstille stien til chromedriver.exe-filen ved hjælp af set-egenskabsmetoden, da du bruger Chrome-browseren til at teste
- Du skal indstille stien til CRX-fil for at tilføje udvidelsesmetode
- Så skal du oprette et objekt med Chrome Desired Capabilities i Selenium klasse og videregive den til webdriverinstansen. Fra Selenium 3.8.1 version, driver kapacitetsklasse er forældet, og du skal flette kapacitetsobjekt med Chrome Options objekt, før du sender det samme som et argument til Chrome Driver constructor
- Åbn URL'en -
http://demo.guru99.com/test/simple_context_menu.html
med Ad Blocker-udvidelsen aktiveret - Maksimer og luk browseren
BEMÆRK VENLIGST: Vi muliggør AdBlocker forlængelse på Chrome-browseren gennem automatiseringsscript i stedet for manuelt at aktivere Adblocker-udvidelsen på Chrome-browseren. CRX File er en måde at få adgang til annonceblokeringsudvidelse ved hjælp af automatiseringsscript
Output:
Chrome-browseren vil blive aktiveret med AdBlockudvidelsen er aktiveret som nedenfor uden nogen annoncer
Chrome-indstillinger for inkognitotilstand
Chrome-indstillinger kan bruges til inkognitotilstand ved at bruge det foruddefinerede argument –incognito.
Nedenfor er prøvekoden for at opnå det samme.
Prøvekode:
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("http://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Kode Forklaring:
- Til at begynde med skal du indstille stien til chromedriver.exe-filen ved hjælp af set-egenskabsmetoden, da du bruger Chrome-browseren til at teste
- Derefter skal du oprette et objekt af Chrome Options-klassen og videregive det til webdriverforekomsten. Da vi ønsker at åbne Chrome-browseren i inkognitotilstand, skal du videregive argumentet -incognito til Chrome Options-klassen.
- Derefter skal du oprette et objekt af klassen Desired Capabilities og flette klasseobjektet Desired Capabilities med klasseobjektet Chrome Options ved hjælp af flettemetoden
- Du skal oprette et objekt af Chrome Driver-klassen og sende Chrome Options-objektet som et argument
- Til sidst skal vi videregive URL'en -
http://demo.guru99.com/test/simple_context_menu.html
til driver.get-metoden - Maksimer og luk browseren
Output:
Chrome-browservinduet åbnes i inkognitotilstand som nedenfor
Chrome-indstillinger til Chrome uden hoved
En hovedløs browser kører i baggrunden. Du vil ikke se browserens GUI eller de operationer, der er blevet udført på den.
Chrome-indstillinger for at køre Chrome-browseren i hovedløs tilstand kan opnås ved at bruge de foruddefinerede argumenter -hovedløs.
Eksempelkode for at opnå det er nævnt 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("http://demo.guru99.com/"); driver.manage().window().maximize(); String title = driver.getTitle(); System.out.println("Page Title: " +title); driver.quit(); } }
Kode Forklaring:
- Til at begynde med skal du indstille stien til chromedriver.exe-filen ved hjælp af set-egenskabsmetoden, da du bruger Chrome-browseren til at teste
- Derefter skal du oprette et objekt af Chrome Options-klassen og sende det til webdriverforekomsten. Da vi vil åbne Chrome-browseren i hovedløs tilstand, skal vi videregive argumentet – hovedløst til Chrome Options-klassen.
- Opret et objekt af DesiredCapabilities Chrome-klassen, og flet Desired Capabilities-klasseobjektet med Chrome Options-klasseobjektet ved hjælp af flettemetoden
- Opret et objekt af Chrome Driver-klassen, og bestå Chrome-indstillingerne Selenium objekt som argument
- Til sidst skal vi videregive URL'en -
http://demo.guru99.com/
til driver.get-metoden - Udskriv sidetitlen og luk browseren
Produktion
Browseren vil ikke være synlig for ovenstående kode, da Chrome vil arbejde i hovedløs tilstand. Sidetitlen vil blive hentet og vist som nedenfor.
Resumé
- Selenium Chrome Options-klassen bruges til at manipulere forskellige egenskaber for Chrome-driveren
- Desired Chrome Capabilities-klasse giver et sæt nøgleværdi-par til at ændre individuelle egenskaber for webdriveren, såsom browsernavn, browserplatform osv.
- For at manipulere eventuelle udvidelser af Chrome-browseren skal CRX-filen, der svarer til udvidelsen, udpakkes og føjes til Chrome Options-klassen
- –incognito og –headless er foruddefinerede argumenter leveret af Chrome Options-klassen til brug af Chrome-browseren i inkognitotilstand og hovedløs tilstand