Параметры Chrome и желаемые возможности в Selenium

⚡ Умное резюме

Параметры Chrome и необходимые возможности в Selenium WebDriver управляет запуском и поведением браузера Chrome во время автоматизированных тестов. Вместе они настраивают аргументы, расширения, обработку SSL и параметры кроссбраузерной совместимости, что делает запуск тестов гибким, воспроизводимым и готовым к использованию. Selenium Выполнение сетки.

  • 🌐 ChromeOptions: Настраивает сессии с помощью таких параметров, как запуск в полноэкранном режиме, режим инкогнито и безголовый режим.
  • ⚙️ Желаемые возможности: Задает имя браузера, платформу, версию и условия приема SSL-сертификатов.
  • 🧩 Расширения: Загрузите CRX-файл с помощью автоматизации вместо ручной установки.
  • 🇧🇷 Инкогнито и без головы: Многократно используемый код запускает частные или фоновые сессии для конвейеров CI.
  • 🖥️ Selenium Сетка: Эти возможности обеспечивают кроссбраузерное и распределенное выполнение тестов.
  • ⚠️ Selenium Примечание 4 года: Функция DesiredCapabilities устарела; передавайте ChromeOptions непосредственно драйверу.

Параметры Chrome и необходимые возможности в Selenium Вебдрайвер

Что такое класс параметров Chrome?

Класс Chromeoptions это концепция в Selenium WebDriver для управления различными свойствами драйвера Chrome. Класс параметров Chrome обычно используется вместе с желаемыми возможностями для настройки сеансов драйверов Chrome. Он помогает вам выполнять различные операции, такие как открытие Chrome в развернутом режиме, отключение существующих расширений, отключение всплывающих окон и т. д.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

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

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

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

  • стартово-максимизированный: открывает Chrome в максимальном режиме.
  • инкогнито: Открывает Chrome в режиме инкогнито.
  • Обезглавленный: Открывает Chrome в безголовом режиме
  • отключить-расширения: отключает существующие расширения в браузере Chrome.
  • отключить блокировку всплывающих окон: отключает всплывающие окна, отображаемые в браузере Chrome.
  • сделать браузер по умолчанию: Делает Chrome браузером по умолчанию
  • версия: печатает версию браузера Chrome.
  • отключить-информационные панели: Запрещает Chrome отображать уведомление «Chrome управляется автоматическим программным обеспечением».

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

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

В приведенном ниже примере показан способ разрешить браузеру Chrome принимать сертификаты SSL на веб-сайтах по умолчанию с использованием класса 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);

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

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

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

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

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

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

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

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

В приведенном ниже примере показано, как активировать расширение для блокировки рекламы в браузере Chrome с помощью параметров Chrome и класса желаемых возможностей.

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

Extract CRX файл

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

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

Extract CRX файл

Шаг 2) Установите расширение для Chrome – Ad Blocker. URL под текстовым полем. URL В интернет-магазине Chrome есть Adblock. https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

и нажмите ОК

Extract CRX файл

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

Extract CRX файл

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

Образец Code:

  1. Вы увидите рекламу на https://demo.guru99.com/ как ниже

Extract CRX файл

  1. С AdBlockРасширение er, включенное в рекламе браузера 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("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();
	//driver.quit();
	}
	
}

Code объяснение:

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

ПРИМЕЧАНИЕ: Мы даем возможность AdBlockэээ расширение в браузере Chrome с помощью сценария автоматизации вместо включения расширения Adblocker вручную в браузере Chrome. CRX-файл — это способ получить доступ к расширению блокировщика рекламы с помощью скрипта автоматизации.

Выход:

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

Extract CRX файл

Помимо загрузки расширений, ChromeOptions также управляет работой самого окна браузера.

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

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

Ниже приведен пример кода, позволяющий сделать то же самое.

Образец Code:

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("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();		
	//driver.quit();
	}
	}

Code объяснение:

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

Выход:

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

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

Параметры Chrome для Headless 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("https://demo.guru99.com/");
		driver.manage().window().maximize();
		String title = driver.getTitle();
		System.out.println("Page Title: " +title);
		driver.quit();
		}


}

Code объяснение:

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

Результат

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

Параметры Chrome для Headless Chrome

Часто задаваемые вопросы (FAQ)

Да. Selenium 4. Класс DesiredCapabilities устарел и заменен классами параметров браузера, такими как ChromeOptions. Selenium 3. Вы их объединили; в Selenium 4. Вы передаете ChromeOptions непосредственно драйверу.

Вызывайте метод addArguments с несколькими флагами, например, options.addArguments с флагами start-wallimized и incognito. Вы также можете объединять несколько вызовов в цепочку. Каждый аргумент настраивает способ запуска сессии Chrome.

Функция addArguments передает в Chrome флаги командной строки, такие как headless или incognito. Функция addExtensions загружает в сессию упакованный файл расширения .crx. Обе функции настраивают поведение, но служат разным целям.

Да. Искусственные интеллекты, такие как Copilot, помогают настраивать параметры ChromeOptions и возможности, предлагают названия аргументов и объясняют устаревшие API. Всегда проверяйте вывод, поскольку названия флагов и Selenium Версии часто меняются.

Инструменты самовосстановления на основе ИИ автоматически обновляют аргументы, обнаруживают нестабильные флаги и предлагают стабильные замены после обновления Chrome. Они сокращают затраты на обслуживание при работе в безголовом режиме и устраняют несоответствия возможностей в средах CI.

Да. ChromeOptions работает с RemoteWebDriver для выполнения в распределенной среде. Вы прикрепляете параметры к удаленной сессии, позволяя одной и той же конфигурации работать на распределенных машинах и в разных браузерах.

Обычно это означает, что версии ChromeDriver и браузера Chrome не совпадают. Установите подходящий ChromeDriver или используйте... Selenium Менеджер в Selenium 4. Для автоматического определения драйвера.

Используйте экспериментальную опцию: карту настроек с параметром download.default_directory, передаваемым через setExperimentalOption. В этом случае Chrome будет автоматически сохранять файлы в эту папку во время автоматизированных тестов.

Подведем итог этой публикации следующим образом: