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

Wyodrębnij plik CRX

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

Wyodrębnij plik CRX

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

Wyodrębnij plik CRX

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:

  1. Reklamy zobaczysz na http://demo.guru99.com/ jak poniżej

Wyodrębnij plik CRX

  1. 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:

  1. 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
  2. Aby dodać metodę rozszerzeń, musisz ustawić ścieżkę do pliku CRX
  3. 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
  4. Otwórz adres URL – http://demo.guru99.com/test/simple_context_menu.html z włączonym rozszerzeniem Ad Blocker
  5. 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

Wyodrębnij plik CRX

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:

  1. 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
  2. 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.
  3. 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
  4. Musisz utworzyć obiekt klasy Chrome Driver i przekazać obiekt Opcje Chrome jako argument
  5. Na koniec musimy przekazać adres URL – http://demo.guru99.com/test/simple_context_menu.html do metody Driver.get
  6. Zmaksymalizuj i zamknij przeglądarkę

Wyjście:

Okno przeglądarki Chrome zostanie otwarte w trybie incognito, jak poniżej

Opcje Chrome dla trybu incognito

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:

  1. 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
  2. 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.
  3. Utwórz obiekt klasy DesiredCapabilities Chrome i połącz obiekt klasy Desired Capabilities z obiektem klasy Opcje Chrome, używając metody scalania
  4. Utwórz obiekt klasy sterownika Chrome i przekaż Opcje Chrome Selenium obiekt jako argument
  5. Na koniec musimy przekazać adres URL – http://demo.guru99.com/ do metody Driver.get
  6. 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.

Opcje Chrome dla bezgłowego Chrome

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