Opcje Chrome i pożądane możliwości w Selenium Sterownik internetowy
Co to jest klasa opcji Chrome?
Kurs Klasa opcji Chrome jest koncepcją w Selenium WebDriver do manipulowania różnymi właściwościami sterownika Chrome. Klasa opcji Chrome jest zazwyczaj używana w połączeniu z Desired Capabilities do dostosowywania sesji sterownika Chrome. Pomaga wykonywać różne operacje, takie jak otwieranie Chrome w trybie zmaksymalizowanym, wyłączanie istniejących rozszerzeń, wyłączanie wyskakujących okienek itp.
Przykład:
Poniższy przykład pokazuje sposób otwarcia przeglądarki Chrome w trybie zmaksymalizowanym przy użyciu klasy ChromeOptions. Musimy przekazać instancję klasy ChromeOptions do inicjalizacji sterownika sieciowego.
ChromeOptions options = new ChromeOptions() options.addArgument("start-maximized"); ChromeDriver driver = new ChromeDriver(options);
Poniżej znajduje się lista dostępnych i najczęściej używanych argumentów klasy ChromeOptions
- maksymalny start: otwiera przeglądarkę Chrome w trybie maksymalizacji
- incognito: Otwiera Chrome w trybie incognito
- bezgłowy: Otwiera Chrome w trybie bezgłowym
- wyłącz rozszerzenia: wyłącza istniejące rozszerzenia w przeglądarce Chrome
- wyłącz blokowanie wyskakujących okienek: Wyłącza wyskakujące okienka wyświetlane w przeglądarce Chrome
- Make-Default-Browser: Ustawia przeglądarkę Chrome jako domyślną
- wersja: Drukuje wersję przeglądarki Chrome
- wyłącz paski informacyjne: Uniemożliwia Chrome wyświetlanie powiadomienia „Chrome jest kontrolowany przez zautomatyzowane oprogramowanie”.
Pożądana klasa możliwości
Pożądana klasa możliwości służy do modyfikowania wielu właściwości sterowników internetowych. Udostępnia pary klucz-wartość umożliwiające zmianę indywidualnych właściwości sterowników sieciowych, takich jak nazwa przeglądarki, platforma przeglądarki itp. Powszechną metodą klasy Desired Capabilities jest metoda setCapability. Najczęściej używany z Selenium Grid, w którym ten sam przypadek testowy należy wykonać w różnych przeglądarkach.
Przykład:
Poniższy przykład pokazuje, jak włączyć przeglądarkę Chrome, aby domyślnie akceptowała certyfikaty SSL na stronach internetowych przy użyciu klasy Desired Capabilities for 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);
Poniżej znajdują się najczęściej używane wstępnie zdefiniowane typy możliwości.
Nazwa zdolności | Opis |
---|---|
ACCEPT_SSL_CERTS | Ta właściwość informuje przeglądarkę, aby domyślnie akceptowała certyfikaty SSL |
Platformy PLATFORM_NAME | Ta właściwość służy do ustawiania platformy systemu operacyjnego używanej do uzyskiwania dostępu do witryny internetowej |
NAZWA PRZEGLĄDARKI | Ta właściwość służy do ustawiania nazwy przeglądarki dla instancji sterownika internetowego |
WERSJA | Ta właściwość służy do ustawiania wersji przeglądarki |
Opcje Chrome dla rozszerzenia Adblocker
Rozszerzenie Adblocker przeglądarki Chrome można obsługiwać za pomocą klasy ChromeDriver Options i Desired Capabilities. Poniżej przedstawiono kroki dostępu AdBlocker w przeglądarce Chrome przy użyciu klasy Desired Capabilities.
Krok 1) AdBlocker musi być zainstalowane w przeglądarce Chrome przed użyciem klasy Opcje Chrome
Krok 2) Wyodrębnij plik CRX odpowiadający AdBlocker poprzez http://crxextractor.com/
Krok 3) Przekaż ścieżkę pobranego pliku CRX do klasy Opcje Chrome
Krok 4) Utwórz instancję sterownika internetowego, korzystając z żądanej klasy możliwości i opcji Chrome w Selenium przedmiot
Przykład:
Poniższy przykład pokazuje, jak aktywować rozszerzenie blokujące reklamy w przeglądarce Chrome przy użyciu opcji Chrome i klasy 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);
Wyodrębnij plik CRX
Poniższe kroki przedstawiają proces wyodrębniania pliku CRX za pomocą narzędzia Ad Blocker za pośrednictwem witryny internetowej – http://crxextractor.com/
Krok 1) Iść do http://crxextractor.com/ i kliknij przycisk Start
Krok 2) Wpisz adres URL rozszerzenia Chrome – Ad Blocker w polu tekstowym. Adres URL Adblocka w sklepie internetowym Chrome to https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
i kliknij OK
Krok 3) Po kliknięciu przycisku OK etykieta przycisku zmieni się na Pobierz .CRX, jak poniżej. Kliknij przycisk Pobierz .CRX, plik CRX odpowiadający rozszerzeniu zostanie pobrany
Krok 4) Zapisz plik na komputerze lokalnym, zanotuj zapisaną ścieżkę. Następnym krokiem jest przekazanie zapisanej ścieżki do klasy Opcje Chrome
Przykładowy kod:
- Reklamy zobaczysz na
http://demo.guru99.com/
jak poniżej
- Wraz z AdBlocker włączone w reklamach przeglądarki Chrome powinno być wyłączone
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(); } }
Objaśnienie kodu:
- Początkowo musisz ustawić ścieżkę do pliku chromedriver.exe przy użyciu metody ustawiania właściwości, ponieważ do testowania używasz przeglądarki Chrome
- Aby dodać metodę rozszerzeń, musisz ustawić ścieżkę do pliku CRX
- Następnie musisz utworzyć obiekt pożądanych możliwości Chrome w Selenium class i przekazać ją do instancji sterownika internetowego. Z Selenium Wersja 3.8.1, klasa możliwości sterownika jest przestarzała i należy połączyć obiekt możliwości z obiektem Opcji Chrome przed przekazaniem tego samego jako argumentu do konstruktora sterownika Chrome
- Otwórz adres URL –
http://demo.guru99.com/test/simple_context_menu.html
z włączonym rozszerzeniem Ad Blocker - Zmaksymalizuj i zamknij przeglądarkę
UWAGA: Umożliwiamy AdBlockeee rozszerzenie w przeglądarce Chrome za pomocą skryptu automatyzacji zamiast ręcznego włączania rozszerzenia Adblocker w przeglądarce Chrome. Plik CRX to sposób na dostęp do rozszerzenia Adblocker za pomocą skryptu automatyzacji
Wyjście:
Przeglądarka Chrome zostanie włączona AdBlocker włączone jak poniżej, bez żadnych reklam
Opcje Chrome dla trybu incognito
Opcji Chrome można używać w trybie incognito, używając predefiniowanego argumentu –incognito.
Poniżej znajduje się przykładowy kod umożliwiający osiągnięcie tego samego.
Przykładowy kod:
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(); } }
Objaśnienie kodu:
- Początkowo musisz ustawić ścieżkę do pliku chromedriver.exe przy użyciu metody ustawiania właściwości, ponieważ do testowania używasz przeglądarki Chrome
- Następnie musisz utworzyć obiekt klasy Opcje Chrome i przekazać go do instancji sterownika internetowego. Ponieważ chcemy otworzyć przeglądarkę Chrome w trybie incognito, należy przekazać argument –incognito do klasy Opcje Chrome.
- Następnie utwórz obiekt klasy Desired Capabilities i połącz obiekt klasy Desired Capabilities z obiektem klasy Chrome Options, używając metody scalania
- Musisz utworzyć obiekt klasy Chrome Driver i przekazać obiekt Opcje Chrome jako argument
- Na koniec musimy przekazać adres URL –
http://demo.guru99.com/test/simple_context_menu.html
do metody Driver.get - Zmaksymalizuj i zamknij przeglądarkę
Wyjście:
Okno przeglądarki Chrome zostanie otwarte w trybie incognito, jak poniżej
Opcje Chrome dla Headless Chrome
Przeglądarka Headless działa w tle. Nie zobaczysz GUI przeglądarki ani operacji, które zostały na niej wykonane.
Opcje Chrome umożliwiające uruchomienie przeglądarki Chrome w trybie bezgłowym można ustawić za pomocą predefiniowanych argumentów –bezgłowy.
Przykładowy kod umożliwiający osiągnięcie tego celu znajduje się poniżej.
Przykład:
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(); } }
Objaśnienie kodu:
- Początkowo musisz ustawić ścieżkę do pliku chromedriver.exe przy użyciu metody ustawiania właściwości, ponieważ do testowania używasz przeglądarki Chrome
- Następnie utwórz obiekt klasy Opcje Chrome i przekaż go do instancji sterownika internetowego. Ponieważ chcemy otworzyć przeglądarkę Chrome w trybie headless, musimy przekazać argument –headless do klasy Opcje Chrome.
- Utwórz obiekt klasy DesiredCapabilities Chrome i połącz obiekt klasy Desired Capabilities z obiektem klasy Opcje Chrome, używając metody scalania
- Utwórz obiekt klasy sterownika Chrome i przekaż Opcje Chrome Selenium obiekt jako argument
- Na koniec musimy przekazać adres URL –
http://demo.guru99.com/
do metody Driver.get - Wydrukuj tytuł strony i zamknij przeglądarkę
Wydajność
Przeglądarka nie będzie widoczna dla powyższego kodu, ponieważ Chrome będzie działać w trybie Headless. Tytuł strony zostanie pobrany i wyświetlony w sposób pokazany poniżej.
Podsumowanie
- Selenium Klasa Opcje Chrome służy do manipulowania różnymi właściwościami sterownika Chrome
- Klasa Desired Chrome Capabilities udostępnia zestaw par klucz-wartość umożliwiający modyfikowanie poszczególnych właściwości sterownika internetowego, takich jak nazwa przeglądarki, platforma przeglądarki itp.
- Aby manipulować rozszerzeniami przeglądarki Chrome, należy wyodrębnić plik CRX odpowiadający rozszerzeniu i dodać go do klasy Opcje Chrome
- –incognito i –headless to predefiniowane argumenty dostarczane przez klasę Opcje Chrome umożliwiające korzystanie z przeglądarki Chrome w trybie incognito i trybie bezgłowym