Chrome-alternativ och önskade funktioner i Selenium Webdriver
Vad är Chrome Options Class?
Din Chromeoptions klass är ett koncept i Selenium WebDriver för att manipulera olika egenskaper hos Chrome-drivrutinen. Alternativklassen för Chrome används vanligtvis tillsammans med önskade funktioner för att anpassa Chrome-drivrutinsessioner. Det hjälper dig att utföra olika operationer som att öppna Chrome i maximerat läge, inaktivera befintliga tillägg, inaktivera popup-fönster, etc.
Exempelvis:
Nedan exempel visar ett sätt att öppna webbläsaren Chrome i maximerat läge med ChromeOptions-klassen. Vi måste skicka en instans av ChromeOptions-klassen till initieringen av webbdrivrutinen.
ChromeOptions options = new ChromeOptions() options.addArgument("start-maximized"); ChromeDriver driver = new ChromeDriver(options);
Nedan finns en lista över tillgängliga och mest använda argument för ChromeOptions-klassen
- startmaximerad: Öppnar Chrome i maximeringsläge
- inkognito: Öppnar Chrome i inkognitoläge
- huvudlös: Öppnar Chrome i huvudlöst läge
- inaktivera-tillägg: Inaktiverar befintliga tillägg i webbläsaren Chrome
- inaktivera-popup-blockering: Inaktiverar popup-fönster som visas i webbläsaren Chrome
- make-default-webbläsare: Gör Chrome till standardwebbläsare
- version: Skriver ut Chrome-webbläsarversionen
- disable-infobars: Hindrar Chrome från att visa meddelandet "Chrome styrs av automatiserad programvara
Önskad kapacitetsklass
Önskad kapacitetsklass används för att ändra flera egenskaper för webbdrivrutiner. Den tillhandahåller nyckel-värdepar för att ändra individuella egenskaper för webbdrivrutiner som webbläsarnamn, webbläsarplattform etc. En vanlig metod för klassen Desired Capabilities är setCapability-metoden. Den används mest med Selenium Grid, där samma testfall måste köras på olika webbläsare.
Exempelvis:
Exemplet nedan visar sättet att aktivera Chrome-webbläsaren för att acceptera SSL-certifikat på webbplatser som standard med önskvärda funktioner för 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);
Nedan finns de vanligaste fördefinierade kapacitetstyperna.
Kapacitetsnamn | Description |
---|---|
ACCEPT_SSL_CERTS | Den här egenskapen talar om för webbläsaren att acceptera SSL-certifikat som standard |
PLATFORM_NAME | Den här egenskapen används för att ställa in den operativsystemplattform som används för att komma åt webbplatsen |
BROWSER_NAME | Den här egenskapen används för att ställa in webbläsarnamnet för en webbdrivrutininstans |
VERSION | Den här egenskapen används för att ställa in webbläsarversionen |
Chrome Options for Adblocker extension
Adblocker-förlängning av Chrome-webbläsaren kan hanteras med ChromeDriver-alternativ och klassen Önskad kapacitet. Nedan följer stegen för att komma åt AdBlocker-tillägget i Chrome-webbläsaren med klassen önskade funktioner.
Steg 1) AdBlocker-tillägget måste installeras i webbläsaren Chrome innan du använder klassen Chrome Options
Steg 2) Extrahera CRX-filen som motsvarar AdBlocker förlängning via http://crxextractor.com/
Steg 3) Skicka den nedladdade CRX-filsökvägen till Chrome Options-klassen
Steg 4) Instantiera webbdrivrutinen med hjälp av önskad funktionsklass och Chrome-alternativ i Selenium objektet
Exempelvis:
Exemplet nedan visar hur du aktiverar annonsblockerarens tillägg i Chrome-webbläsaren med hjälp av klassen Chrome Options and Desired Capabilities.
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);
Extrahera CRX-fil
Stegen nedan visar processen att extrahera CRX-fil via Ad Blocker via webbplatsen – http://crxextractor.com/
Steg 1) Gå till http://crxextractor.com/ och klicka på startknappen
Steg 2) Ange Chrome-tillägget – Ad Blocker URL under textrutan. URL för Adblock på Chrome Web Store är https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
och klicka ok
Steg 3) När du klickar på OK-knappen kommer knappens etikett att ändras till Get .CRX enligt nedan. Klicka på knappen Hämta .CRX, CRX-fil som motsvarar tillägget kommer att laddas ner
Steg 4) Spara filen på den lokala datorn, anteckna sökvägen som sparats. Nästa steg är att skicka den sparade sökvägen till Chrome Options-klassen
Exempelkod:
- Du kommer att se annonser kl https://demo.guru99.com/ som nedan
- Med AdBlocker tillägg som är aktiverat i webbläsarannonser i Chrome bör inaktiveras
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(); } }
Kodförklaring:
- Till att börja med måste du ställa in sökvägen till chromedriver.exe-filen med metoden set property eftersom du använder Chrome-webbläsaren för att testa
- Du måste ställa in sökvägen till CRX File för att lägga till tilläggsmetoden
- Sedan måste du skapa ett objekt med Chrome Desired Capabilities i Selenium klass och skicka den till webbdrivrutinsinstansen. Från Selenium 3.8.1 version, drivrutinskapacitetsklassen är utfasad och du måste slå samman capabilities-objektet med Chrome Options-objektet innan du skickar samma som ett argument till Chrome Driver-konstruktorn
- Öppna webbadressen – https://demo.guru99.com/test/simple_context_menu.html med tillägget Ad Blocker aktiverat
- Maximera och stäng webbläsaren
OBS: Vi möjliggör AdBlocker förlängning på Chrome-webbläsaren genom automatiseringsskript istället för att manuellt aktivera Adblocker-tillägget i Chrome-webbläsaren. CRX File är ett sätt att få åtkomst till annonsblockerare med hjälp av automatiseringsskript
Produktion:
Chrome-webbläsaren kommer att aktiveras med AdBlocker-tillägget aktiverat enligt nedan utan några annonser
Chrome-alternativ för inkognitoläge
Chrome-alternativ kan användas för inkognitoläge genom att använda det fördefinierade argumentet –inkognito.
Nedan är exempelkoden för att åstadkomma detsamma.
Exempelkod:
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(); } }
Kodförklaring:
- Till att börja med måste du ställa in sökvägen till chromedriver.exe-filen med metoden set property eftersom du använder Chrome-webbläsaren för att testa
- Sedan måste du skapa ett objekt av klassen Chrome Options och skicka det till webbdrivrutinsinstansen. Eftersom vi vill öppna webbläsaren Chrome i inkognitoläge måste du skicka argumentet –inkognito till Chrome Options-klassen.
- Skapa sedan ett objekt av klassen Desired Capabilities och slå samman klassobjektet Desired Capabilities med klassobjektet Chrome Options med merge-metoden
- Du måste skapa ett objekt av Chrome Driver-klassen och skicka Chrome Options-objektet som ett argument
- Slutligen måste vi skicka webbadressen – https://demo.guru99.com/test/simple_context_menu.html till metoden driver.get
- Maximera och stäng webbläsaren
Produktion:
Chrome-webbläsarfönstret öppnas i inkognitoläge enligt nedan
Chrome-alternativ för Headless Chrome
En huvudlös webbläsare körs i bakgrunden. Du kommer inte att se webbläsarens GUI eller operationerna som har utförts på det.
Chrome-alternativ för att köra webbläsaren Chrome i huvudlöst läge kan uppnås genom att använda de fördefinierade argumenten –huvudlösa.
Exempelkod för att åstadkomma det nämns nedan.
Exempelvis:
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(); } }
Kodförklaring:
- Till att börja med måste du ställa in sökvägen till chromedriver.exe-filen med metoden set property eftersom du använder Chrome-webbläsaren för att testa
- Skapa sedan ett objekt av klassen Chrome Options och skicka det till webbdrivrutinsinstansen. Eftersom vi vill öppna webbläsaren Chrome i headless-läge måste vi skicka argumentet –headless till Chrome Options-klassen.
- Skapa ett objekt av klassen DesiredCapabilities Chrome och slå samman klassobjektet Desired Capabilities med klassobjektet Chrome Options med merge-metoden
- Skapa ett objekt av Chrome Driver-klassen och klara Chrome-alternativen Selenium objekt som argument
- Slutligen måste vi skicka webbadressen – https://demo.guru99.com/ till metoden driver.get
- Skriv ut sidtiteln och stäng webbläsaren
Produktion
Webbläsaren kommer inte att vara synlig för ovanstående kod eftersom Chrome kommer att fungera i huvudlöst läge. Sidrubrik kommer att hämtas och visas enligt nedan.
Sammanfattning
- Selenium Chrome Options-klassen används för att manipulera olika egenskaper hos Chrome-drivrutinen
- Klassen Önskad Chrome Capabilities tillhandahåller en uppsättning nyckel-värdepar för att modifiera individuella egenskaper för webbdrivrutinen som webbläsarnamn, webbläsarplattform etc.
- För att manipulera eventuella tillägg av Chrome-webbläsaren måste CRX-filen som motsvarar tillägget extraheras och läggas till i Chrome Options-klassen
- –incognito och –headless är fördefinierade argument som tillhandahålls av Chrome Options-klassen för att använda webbläsaren Chrome i inkognitoläge och headless-läge