Opțiuni Chrome și Capabilități dorite în Selenium Webdriver
Ce este Chrome Options Class?
Clasa Chromeoptions este un concept în Selenium WebDriver pentru manipularea diferitelor proprietăți ale driverului Chrome. Clasa de opțiuni Chrome este utilizată în general împreună cu Capabilitățile dorite pentru personalizarea sesiunilor de driver Chrome. Vă ajută să efectuați diverse operațiuni, cum ar fi deschiderea Chrome în modul maximizat, dezactivarea extensiilor existente, dezactivarea ferestrelor pop-up etc.
Exemplu:
Exemplul de mai jos arată o modalitate de a deschide browserul Chrome în modul maximizat folosind clasa ChromeOptions. Trebuie să transmitem o instanță a clasei ChromeOptions inițializării driverului web.
ChromeOptions options = new ChromeOptions() options.addArgument("start-maximized"); ChromeDriver driver = new ChromeDriver(options);
Mai jos sunt lista argumentelor disponibile și cele mai frecvent utilizate pentru clasa ChromeOptions
- start-maximizat: Deschide Chrome în modul de maximizare
- incognito: Deschide Chrome în modul incognito
- fara cap: Deschide Chrome în modul fără cap
- dezactivare-extensii: dezactivează extensiile existente în browserul Chrome
- dezactivați blocarea pop-up-urilor: dezactivează ferestrele pop-up afișate în browserul Chrome
- make-default-browser: Setează browserul Chrome implicit
- versiune: Imprimă versiunea browserului Chrome
- disable-infobars: Împiedică Chrome să afișeze notificarea „Chrome este controlat de software automatizat
Clasa de capabilități dorite
Clasa de capabilități dorite este folosit pentru a modifica mai multe proprietăți ale driverelor web. Oferă perechi cheie-valoare pentru a modifica proprietățile individuale ale driverelor web, cum ar fi numele browserului, platforma browserului etc. O metodă comună a clasei Desired Capabilities este metoda setCapability. Este folosit mai ales cu Selenium Grid, unde același caz de testare trebuie executat pe browsere diferite.
Exemplu:
Exemplul de mai jos arată modul de a activa browserul Chrome să accepte certificate SSL pe site-uri web în mod prestabilit, utilizând funcțiile dorite pentru clasa 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);
Mai jos sunt cele mai frecvent utilizate tipuri de capabilități predefinite.
Numele capacității | Descriere |
---|---|
ACCEPT_SSL_CERTS | Această proprietate îi spune browserului să accepte certificatele SSL în mod implicit |
PLATFORM_NAME | Această proprietate este utilizată pentru a seta platforma sistemului de operare utilizată pentru accesarea site-ului web |
BROWSER_NAME | Această proprietate este utilizată pentru a seta numele browserului pentru o instanță de driver web |
VERSIUNE | Această proprietate va fi folosită pentru a seta versiunea browserului |
Opțiuni Chrome pentru extensia Adblocker
Extensia Adblocker a browserului Chrome poate fi gestionată folosind opțiunile ChromeDriver și clasa Capabilități dorite. Mai jos sunt pașii de acces AdBlocker în browserul Chrome utilizând clasa Capabilități dorite.
Pas 1) AdBlockExtensia er trebuie instalată pe browserul Chrome înainte de a utiliza clasa Opțiuni Chrome
Pas 2) Extrageți fișierul CRX corespunzător AdBlockextensia er prin http://crxextractor.com/
Pas 3) Transmite calea fișierului CRX descărcat la clasa Opțiuni Chrome
Pas 4) Instanciați driverul web folosind clasa de capabilități dorită și Opțiuni Chrome în Selenium obiect
Exemplu:
Exemplul de mai jos demonstrează cum să activați extensia de blocare a reclamelor în browserul Chrome utilizând opțiunile Chrome și clasa Capabilități dorite.
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);
Extrageți fișierul CRX
Pașii de mai jos demonstrează procesul de extragere a fișierului CRX prin Ad Blocker prin intermediul site-ului web - http://crxextractor.com/
Pas 1) Mergi la pagina http://crxextractor.com/ și faceți clic pe butonul de pornire
Pas 2) Introduceți extensia Chrome – Adresa URL pentru blocarea anunțurilor sub caseta de text. Adresa URL pentru Adblock pe magazinul web Chrome este https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
și faceți clic pe ok
Pas 3) Făcând clic pe butonul OK, eticheta butonului se va schimba în Obține .CRX ca mai jos. Faceți clic pe butonul Obține .CRX, fișierul CRX corespunzător extensiei va fi descărcat
Pas 4) Salvați fișierul pe mașina locală, notați calea salvată. Următorul pas este să treceți calea salvată către clasa Opțiuni Chrome
Cod simplu:
- Veți vedea reclame la
http://demo.guru99.com/
ca mai jos
- cu AdBlockExtensia er activată pe reclamele din browserul Chrome ar trebui dezactivată
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(); } }
Explicarea codului:
- Inițial, trebuie să setați calea către fișierul chromedriver.exe folosind metoda set property, deoarece utilizați browserul Chrome pentru testare
- Trebuie să setați calea către fișierul CRX pentru a adăuga metoda extensiilor
- Apoi, trebuie să creați un obiect pentru Chrome Desired Capabilities în Selenium clasa și transmiteți-o instanței driverului web. Din Selenium Versiunea 3.8.1, clasa de capabilități a driverului este depreciată și trebuie să îmbinați obiectul de capabilități cu obiectul Opțiuni Chrome înainte de a transmite același argument ca argument constructorului driverului Chrome
- Deschideți adresa URL -
http://demo.guru99.com/test/simple_context_menu.html
cu extensia Ad Blocker activată - Maximizați și închideți browserul
NOTĂ: Noi permitem AdBlocko extensie în browserul Chrome prin script de automatizare în loc să activați manual extensia Adblocker în browserul Chrome. CRX File este o modalitate de a accesa extensia de blocare a reclamelor folosind un script de automatizare
ieșire:
Browserul Chrome va fi activat cu AdBlockExtensia er activată ca mai jos, fără reclame
Opțiuni Chrome pentru modul incognito
Opțiunile Chrome pot fi folosite pentru modul incognito folosind argumentul predefinit -incognito.
Mai jos este un exemplu de cod pentru a realiza același lucru.
Cod simplu:
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(); } }
Explicarea codului:
- Inițial, trebuie să setați calea către fișierul chromedriver.exe folosind metoda set property, deoarece utilizați browserul Chrome pentru testare
- Apoi trebuie să creați un obiect din clasa Opțiuni Chrome și să-l transmiteți instanței driverului web. Deoarece dorim să deschidem browserul Chrome în modul incognito, trebuie să treceți argumentul –incognito la clasa Opțiuni Chrome.
- Apoi, creați un obiect din clasa Capabilități dorite și îmbinați obiectul clasei Capabilități dorite cu obiectul clasei Opțiuni Chrome folosind metoda de îmbinare
- Trebuie să creați un obiect din clasa Driver Chrome și să transmiteți obiectul Opțiuni Chrome ca argument
- În cele din urmă, trebuie să transmitem adresa URL -
http://demo.guru99.com/test/simple_context_menu.html
la șofer.metoda obține - Maximizați și închideți browserul
ieșire:
Fereastra browserului Chrome va fi deschisă în modul Incognito, ca mai jos
Opțiuni Chrome pentru Chrome fără cap
Un browser Headless rulează în fundal. Nu veți vedea interfața grafică a browserului sau operațiunile operate pe acesta.
Opțiunile Chrome pentru rularea browserului Chrome în modul headless pot fi realizate folosind argumentele predefinite -zăpăcit.
Exemplu de cod pentru a-l realiza este menționat mai jos.
Exemplu:
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(); } }
Explicarea codului:
- Inițial, trebuie să setați calea către fișierul chromedriver.exe folosind metoda set property, deoarece utilizați browserul Chrome pentru testare
- Apoi, creați un obiect din clasa Opțiuni Chrome și transmiteți-l instanței driverului web. Deoarece vrem să deschidem browserul Chrome în modul headless, trebuie să transmitem argumentul –headless la clasa Opțiuni Chrome.
- Creați un obiect din clasa DesiredCapabilities Chrome și îmbinați obiectul clasei Desired Capabilities cu obiectul clasei Opțiuni Chrome folosind metoda de îmbinare
- Creați un obiect din clasa Driver Chrome și treceți Opțiunile Chrome Selenium obiect ca argument
- În cele din urmă, trebuie să transmitem adresa URL -
http://demo.guru99.com/
la șofer.metoda obține - Imprimați titlul paginii și închideți browserul
producție
Browserul nu va fi vizibil pentru codul de mai sus, deoarece Chrome va funcționa în modul Headless. Titlul paginii va fi preluat și afișat ca mai jos.
Rezumat
- Selenium Clasa Opțiuni Chrome este folosită pentru a manipula diferite proprietăți ale driverului Chrome
- Clasa Capabilități Chrome dorite oferă un set de perechi cheie-valoare pentru a modifica proprietățile individuale ale driverului web, cum ar fi numele browserului, platforma browserului etc.
- Pentru a manipula orice extensie a browserului Chrome, fișierul CRX corespunzător extensiei trebuie extras și trebuie adăugat la clasa Opțiuni Chrome
- –incognito și –headless sunt argumente predefinite furnizate de clasa Opțiuni Chrome pentru utilizarea browserului Chrome în modul incognito și modul fără cap