Co to jest klasa opcji Chrome?
Klasa opcji Chrome służy do manipulowania różnymi właściwościami sterownika Chrome. Klasa opcji Chrome jest zwykle używana w połączeniu z pożądanymi możliwościami.
Przykład:
Poniższy przykład pokazuje sposób otwierania przeglądarki Chrome w trybie zmaksymalizowanym przy użyciu klasy ChromeOptions. Musimy przekazać wystąpienie klasy ChromeOptions do inicjalizacji sterownika sieciowego.
Opcje ChromeOptions = nowe ChromeOptions ()options.addArgument ("start-maximized");Sterownik ChromeDriver = nowy ChromeDriver (opcje);
Poniżej znajduje się lista dostępnych i najczęściej używanych argumentów dla klasy ChromeOptions
- start-maximized : otwiera Chrome w trybie maksymalizacji
- incognito: otwiera Chrome w trybie incognito
- headless: otwiera Chrome w trybie headless
- disable-extensions : 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 Chrome jako domyślną przeglądarkę
- version : Wyświetla wersję przeglądarki Chrome
- disable-infobars: zapobiega wyświetlaniu przez Chrome powiadomienia „Chrome jest kontrolowany przez automatyczne oprogramowanie
W tym samouczku dowiesz się
- Co to jest klasa opcji Chrome?
- Pożądana klasa możliwości
- Opcje Chrome dla rozszerzenia Adblocker
- Opcje Chrome w trybie incognito
- Opcje Chrome dla bezgłowego Chrome
Pożądana klasa możliwości
Pożądana klasa możliwości służy do modyfikowania wielu właściwości sterownika sieci web. Klasa Desired Capabilities zawiera zestaw par klucz-wartość do zmiany poszczególnych właściwości sterownika WWW, np. Nazwy przeglądarki, platformy przeglądarki itp. Najczęściej stosowaną metodą klasy Desired Capabilities jest metoda setCapability. Pożądane możliwości są najczęściej używane z Selenium Grid, gdzie ten sam przypadek testowy musi zostać wykonany w różnych przeglądarkach.
Przykład:
Poniższy przykład pokazuje sposób, aby przeglądarka Chrome domyślnie akceptowała certyfikaty SSL w witrynach internetowych przy użyciu klasy Desired Capabilities.
// Utwórz obiekt o żądanej klasie możliwości za pomocą sterownika ChromeDesiredCapabilities SSLCertificate = DesiredCapabilities.chrome ();// Ustaw wstępnie zdefiniowaną zdolność - ACCEPT_SSL_CERTS wartość trueSSLCertificate.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true);// Otwórz nową instancję sterownika chrome z wymaganymi możliwościamiSterownik WebDriver = nowy ChromeDriver (SSLCertificate);
Poniżej znajdują się najczęściej używane predefiniowane 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 |
PLATFORM_NAME | Ta właściwość służy do ustawiania platformy systemu operacyjnego używanej do uzyskiwania dostępu do witryny sieci Web |
BROWSER_NAME | Ta właściwość służy do ustawiania nazwy przeglądarki dla wystąpienia sterownika sieci web |
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 Chrome Options i Desired Capabilities. Poniżej znajdują się kroki, aby uzyskać dostęp do rozszerzenia AdBlocker w przeglądarce Chrome przy użyciu klasy Desired Capabilities.
Krok 1) Rozszerzenie AdBlocker musi być zainstalowane w przeglądarce Chrome przed użyciem klasy Opcje Chrome
Krok 2) Wyodrębnij plik CRX odpowiadający rozszerzeniu AdBlocker przez http://crxextractor.com/
Krok 3) Przekaż pobraną ścieżkę pliku CRX do klasy opcji Chrome
Krok 4) Utwórz instancję sterownika sieciowego, używając żądanej klasy możliwości i obiektu opcji chrome
Przykład:
Poniższy przykład pokazuje, jak aktywować rozszerzenie blokujące reklamy w przeglądarce Chrome przy użyciu klasy Opcje i pożądane możliwości Chrome.
Opcje ChromeOptions = nowe ChromeOptions ();options.addExtensions (nowy plik ("Ścieżka do pliku CRX"));Możliwości DesiredCapabilities = new DesiredCapabilities ();możliwości.setCapability (ChromeOptions.CAPABILITY, opcje);Sterownik ChromeDriver = nowy ChromeDriver (możliwości);
Wyodrębnij plik CRX:
Poniższe kroki przedstawiają proces wyodrębniania pliku CRX za pomocą Ad Blocker za pośrednictwem strony internetowej - http://crxextractor.com/
Krok 1) Przejdź do http://crxextractor.com/ i kliknij przycisk Start
Krok 2) Wprowadź rozszerzenie chrome - adres URL Ad Blocker pod polem tekstowym. URL sklepu internetowego Adblock w 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 Get .CRX, jak poniżej. Kliknij przycisk Pobierz .CRX, zostanie pobrany plik CRX odpowiadający rozszerzeniu
Krok 4) Zapisz plik na komputerze lokalnym, zanotuj zapisaną ścieżkę. Następnym krokiem jest przekazanie zapisanej ścieżki do klasy Chrome Options
Przykładowy kod:
- Zobaczysz reklamy na http://demo.guru99.com/, jak poniżej
- Przy włączonym rozszerzeniu AdBlocker w przeglądarce Chrome reklamy powinny być wyłączone
pakiet 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");Opcje ChromeOptions = nowe ChromeOptions ();options.addExtensions (new File ("X: //extension_3_40_1_0.crx"));Możliwości DesiredCapabilities = new DesiredCapabilities ();możliwości.setCapability (ChromeOptions.CAPABILITY, opcje);options.merge (możliwości);Sterownik ChromeDriver = nowy ChromeDriver (opcje);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 set property, ponieważ do testowania używasz przeglądarki Chrome
- Musisz ustawić ścieżkę do pliku CRX, aby dodać metodę rozszerzeń
- Następnie należy utworzyć obiekt o żądanej klasie możliwości i przekazać go do instancji sterownika sieciowego. Od wersji Selenium 3.8.1 klasa możliwości sterownika jest przestarzała i należy scalić obiekt możliwości z obiektem opcji Chrome przed przekazaniem tego samego 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: Włączamy rozszerzenie AdBlocker 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 uzyskanie dostępu do rozszerzenia blokującego reklamy za pomocą skryptu automatyzacji
Wynik:
Przeglądarka Chrome zostanie włączona z włączonym rozszerzeniem AdBlocker, jak poniżej, bez żadnych reklam
Opcje Chrome w trybie incognito
Opcji Chrome można używać w trybie incognito, używając wstępnie zdefiniowanego argumentu - incognito .
Poniżej znajduje się przykładowy kod, aby osiągnąć to samo.
Przykładowy kod:
test opakowania;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 Automatycznie wygenerowany kod pośredniczący metodySystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Opcje ChromeOptions = nowe ChromeOptions ();options.addArguments ("- incognito");Możliwości DesiredCapabilities = new DesiredCapabilities ();możliwości.setCapability (ChromeOptions.CAPABILITY, opcje);options.merge (możliwości);Sterownik ChromeDriver = nowy ChromeDriver (opcje);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 set property, ponieważ do testowania używasz przeglądarki Chrome
- Następnie musisz utworzyć obiekt klasy Chrome Options i przekazać go do instancji sterownika sieciowego. Ponieważ chcemy otworzyć przeglądarkę Chrome w trybie incognito, musimy przekazać argument -incognito do klasy opcji Chrome.
- Następnie utwórz obiekt klasy Desired Capabilities i połącz obiekt klasy Desired Capabilities z obiektem klasy Chrome Options metodą merge
- Musisz utworzyć obiekt klasy sterownika Chrome i przekazać obiekt opcji 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ę
Wynik:
Okno przeglądarki Chrome zostanie otwarte w trybie incognito, jak poniżej
Opcje Chrome dla bezgłowego Chrome
W tle działa przeglądarka Headless. Nie zobaczysz GUI przeglądarki ani operacji na nim wykonanych.
Opcje Chrome do uruchamiania przeglądarki Chrome w trybie headless można uzyskać za pomocą predefiniowanych argumentów - headless .
Przykładowy kod, aby to osiągnąć, jest wymieniony poniżej.
Przykład:
test opakowania;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 Automatycznie wygenerowany kod pośredniczący metodySystem.setProperty ("webdriver.chrome.driver", "X: //chromedriver.exe");Opcje ChromeOptions = nowe ChromeOptions ();options.addArguments ("- bezgłowy");Możliwości DesiredCapabilities = new DesiredCapabilities ();możliwości.setCapability (ChromeOptions.CAPABILITY, opcje);options.merge (możliwości);Sterownik ChromeDriver = nowy ChromeDriver (opcje);driver.get („http://demo.guru99.com/”);driver.manage (). window (). maximize ();Tytuł ciągu = driver.getTitle ();System.out.println ("Tytuł strony: + tytuł);driver.quit ();}}
Objaśnienie kodu :
- Początkowo musisz ustawić ścieżkę do pliku chromedriver.exe przy użyciu metody set property, ponieważ do testowania używasz przeglądarki Chrome
- Następnie utwórz obiekt klasy Chrome Options i przekaż go do instancji sterownika sieciowego. Ponieważ chcemy otworzyć przeglądarkę Chrome w trybie headless, musimy przekazać argument -headless do klasy Chrome Options.
- Utwórz obiekt klasy Desired Capabilities i połącz obiekt klasy Desired Capabilities z obiektem klasy Chrome Options przy użyciu metody scalania
- Utwórz obiekt klasy sterownika Chrome i przekaż obiekt opcji Chrome jako argument
- Na koniec musimy przekazać adres URL - http://demo.guru99.com/ do metody driver.get
- Wydrukuj tytuł strony i zamknij przeglądarkę
Wynik
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 jak poniżej.
Podsumowanie:
- Klasa opcji Chrome służy do manipulowania różnymi właściwościami sterownika Chrome
- Klasa Desired Capabilities udostępnia zestaw par klucz-wartość służący do modyfikowania poszczególnych właściwości sterownika internetowego, takich jak nazwa przeglądarki, platforma przeglądarki itp.
- Aby manipulować jakimikolwiek 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ę Chrome Options do używania przeglądarki Chrome w trybie incognito i bezgłowym