Учебники

78) Опции Chrome и желаемые возможности

Что такое класс Chrome Options?

Класс параметров Chrome используется для управления различными свойствами драйвера Chrome. Класс параметров Chrome обычно используется вместе с желаемыми возможностями.

Пример:

В следующем примере показан способ открытия браузера Chrome в развернутом режиме с помощью класса ChromeOptions. Нам нужно передать экземпляр класса ChromeOptions в инициализацию веб-драйвера.

ChromeOptions options = new ChromeOptions()
options.addArgument("start-maximized");
ChromeDriver driver = new ChromeDriver(options);

Ниже приведен список доступных и наиболее часто используемых аргументов для класса ChromeOptions.

  • start-maximized : открывает Chrome в режиме максимизации
  • инкогнито: открывает Chrome в режиме инкогнито
  • без головы: открывает Chrome в режиме без головы
  • disable-extensions : отключает существующие расширения в браузере Chrome
  • disable-popup-blocking : отключает всплывающие окна, отображаемые в браузере Chrome
  • make-default-browser: делает браузер Chrome стандартным
  • версия : печатает версию браузера Chrome
  • disable-infobars: не позволяет Chrome отображать уведомление. Chrome управляется автоматическим программным обеспечением

В этом уроке вы узнаете

Класс желаемых возможностей

Класс требуемых возможностей используется для изменения нескольких свойств веб-драйвера. Класс Desired Capabilities предоставляет набор пар ключ-значение для изменения отдельных свойств веб-драйвера, таких как имя браузера, платформа браузера и т. Д. Наиболее часто используемым методом класса Desired Capabilities является метод setCapability. Желаемые возможности чаще всего используются с Selenium Grid, где один и тот же тестовый пример должен выполняться в разных браузерах.

Пример:

Ниже приведен пример, позволяющий браузеру Chrome принимать SSL-сертификаты на веб-сайтах по умолчанию с помощью класса Desired Capabilities.

// 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);

Ниже приведены наиболее часто используемые предопределенные типы возможностей.

Название возможности Описание
ACCEPT_SSL_CERTS Это свойство сообщает браузеру принимать SSL-сертификаты по умолчанию
PLATFORM_NAME Это свойство используется для установки платформы операционной системы, используемой для доступа к веб-сайту.
BROWSER_NAME Это свойство используется для установки имени браузера для экземпляра веб-драйвера
ВЕРСИЯ Это свойство используется для установки версии браузера

Параметры Chrome для расширения Adblocker

Расширение Adblocker браузера Chrome может быть обработано с помощью Chrome Options и класса Desired Capabilities. Ниже приведены шаги для доступа к расширению AdBlocker в браузере Chrome с использованием класса Desired Capabilities.

Шаг 1) Расширение AdBlocker должно быть установлено в браузере Chrome перед использованием класса Chrome Options

Шаг 2) Извлеките файл CRX, соответствующий расширению AdBlocker, через http://crxextractor.com/

Шаг 3) Передайте путь загруженного файла CRX в класс Chrome Options

Шаг 4) Создание веб-драйвера с использованием нужного класса возможностей и объекта параметров Chrome

Пример:

Ниже приведен пример активации расширения блокировщика рекламы в браузере Chrome с использованием классов Chrome Options и 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);

Извлечь файл CRX:

Ниже приведены шаги по извлечению файла CRX через блокировщик рекламы через веб-сайт — http://crxextractor.com/.

Шаг 1) Перейдите на http://crxextractor.com/ и нажмите кнопку « Пуск».

Шаг 2) Введите расширение Chrome — URL рекламного блокиратора под текстовым полем. URL-адрес для Adblock в интернет-магазине Chrome: https://chrome.google.com/webstore/detail/adblock/gighmmpiobklfepjocnamgkkbiglidom

и нажмите ОК

Шаг 3) При нажатии на кнопку «OK» метка кнопки изменится на Get .CRX, как показано ниже. Нажмите кнопку «Получить .CRX», будет загружен файл CRX, соответствующий расширению.

Шаг 4) Сохраните файл на локальном компьютере, запишите сохраненный путь. Следующий шаг — передать сохраненный путь в класс Chrome Options.

Образец кода:

  1. Вы увидите рекламу на http://demo.guru99.com/, как показано ниже

  1. С включенным расширением AdBlocker в браузере Chrome реклама должна быть отключена
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();
	}
	
}

Объяснение кода:

  1. Сначала необходимо указать путь к файлу chromedriver.exe с помощью метода set property, поскольку вы используете Chrome Browser для тестирования
  2. Вам нужно установить путь к файлу CRX, чтобы добавить метод расширений
  3. Затем вам нужно создать объект с нужным классом возможностей и передать его экземпляру веб-драйвера. Начиная с версии Selenium 3.8.1, класс возможностей драйвера устарел, и вам необходимо объединить объект возможностей с объектом Chrome Options, прежде чем передавать его в качестве аргумента в конструктор Chrome Driver.
  4. Откройте URL — http://demo.guru99.com/test/simple_context_menu.html с включенным расширением блокировщика рекламы.
  5. Разверните и закройте браузер

ПРИМЕЧАНИЕ. Мы включаем расширение AdBlocker в браузере Chrome с помощью скрипта автоматизации вместо того, чтобы вручную включать расширение Adblocker в браузере Chrome. CRX File — это способ получить доступ к расширению блокировщика рекламы, используя скрипт автоматизации

Вывод:

Браузер Chrome будет включен с расширением AdBlocker, как показано ниже, без рекламы

Параметры Chrome для режима инкогнито

Параметры Chrome можно использовать для режима инкогнито, используя предопределенный аргумент — инкогнито .

Ниже приведен пример кода для достижения того же.

Образец кода:

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();
	}
	}

Объяснение кода :

  1. Сначала необходимо указать путь к файлу chromedriver.exe с помощью метода set property, поскольку вы используете Chrome Browser для тестирования
  2. Затем вам нужно создать объект класса Chrome Options и передать его экземпляру веб-драйвера. Поскольку мы хотим открыть браузер Chrome в режиме инкогнито, вам нужно передать аргумент –incognito в класс Chrome Options.
  3. Затем создайте объект класса Desired Capabilities и объедините объект класса Desired Capabilities с объектом класса Chrome Options с помощью метода merge.
  4. Вам необходимо создать объект класса Chrome Driver и передать объект Chrome Options в качестве аргумента.
  5. Наконец, нам нужно передать URL — http://demo.guru99.com/test/simple_context_menu.html в метод driver.get
  6. Разверните и закройте браузер

Вывод:

Окно браузера Chrome откроется в режиме инкогнито, как показано ниже

Варианты Chrome для Chrome без головы

Безголовый браузер работает в фоновом режиме. Вы не увидите графический интерфейс браузера или операции над ним.

Параметры Chrome для запуска браузера Chrome в режиме без заголовка могут быть выполнены с использованием предопределенных аргументов — без заголовка .

Пример кода для его выполнения указан ниже.

Пример:

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();
		}


}

Объяснение кода :

  1. Сначала необходимо указать путь к файлу chromedriver.exe с помощью метода set property, поскольку вы используете Chrome Browser для тестирования
  2. Затем создайте объект класса Chrome Options и передайте его экземпляру веб-драйвера. Поскольку мы хотим открыть браузер Chrome в автономном режиме, нам нужно передать аргумент — без заголовка в класс Chrome Options.
  3. Создайте объект класса Desired Capabilities и объедините объект класса Desired Capabilities с объектом класса Chrome Options, используя метод слияния
  4. Создайте объект класса Chrome Driver и передайте объект Chrome Options в качестве аргумента
  5. Наконец, нам нужно передать URL — http://demo.guru99.com/ методу driver.get
  6. Распечатайте заголовок страницы и закройте браузер

Вывод

Браузер не будет виден для вышеуказанного кода, так как Chrome будет работать в режиме без головы. Заголовок страницы будет выбран и отображен, как показано ниже.

Резюме:

  • Класс параметров Chrome используется для управления различными свойствами драйвера Chrome
  • Класс Desired Capabilities предоставляет набор пар ключ-значение для изменения отдельных свойств веб-драйвера, таких как имя браузера, платформа браузера и т. Д.
  • Чтобы манипулировать любыми расширениями браузера Chrome, необходимо извлечь файл CRX, соответствующий расширению, и добавить его в класс параметров Chrome.
  • —incognito и –headless — это предопределенные аргументы, предоставляемые классом Chrome Options для использования браузера Chrome в режиме инкогнито и в режиме без головы