Параметры 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) Извлеките файл CRX, соответствующий AdBlockрасширение через 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);
Извлечь файл CRX
Ниже приведены шаги, демонстрирующие процесс извлечения файла CRX с помощью блокировщика рекламы через веб-сайт: http://crxextractor.com/
Шаг 1) Перейдите на http://crxextractor.com/ и нажмите кнопку «Пуск»
Шаг 2) Введите расширение Chrome – URL-адрес Ad Blocker под текстовым полем. URL-адрес для Adblock в интернет-магазине Chrome: https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
и нажмите ОК
Шаг 3) При нажатии кнопки «ОК» надпись кнопки изменится на «Получить .CRX», как показано ниже. Нажмите кнопку «Получить .CRX», будет загружен файл CRX, соответствующий расширению.
Шаг 4) Сохраните файл на локальном компьютере, запишите сохраненный путь. Следующий шаг — передать сохраненный путь в класс параметров Chrome.
Образец кода:
- Вы увидите рекламу на https://demo.guru99.com/ как ниже
- В 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(); } }
Код Пояснение:
- Первоначально вам необходимо указать путь к файлу chromedriver.exe, используя метод set property, поскольку для тестирования вы используете браузер Chrome.
- Вам необходимо указать путь к файлу CRX, чтобы добавить метод расширений.
- Затем вам нужно создать объект Chrome Desired Capabilities в Selenium class и передать его экземпляру веб-драйвера. От Selenium Версия 3.8.1, класс возможностей драйвера устарел, и вам необходимо объединить объект возможностей с объектом параметров Chrome, прежде чем передавать его в качестве аргумента в конструктор драйвера Chrome.
- Откройте URL-адрес – https://demo.guru99.com/test/simple_context_menu.html с включенным расширением блокировщика рекламы
- Развернуть и закрыть браузер
ПРИМЕЧАНИЕ: Мы даем возможность AdBlockэээ расширение в браузере Chrome с помощью сценария автоматизации вместо включения расширения Adblocker вручную в браузере Chrome. CRX-файл — это способ получить доступ к расширению блокировщика рекламы с помощью скрипта автоматизации.
Вывод:
Браузер Chrome будет включен с AdBlockрасширение включено, как показано ниже, без рекламы
Параметры 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("https://demo.guru99.com/test/simple_context_menu.html"); driver.manage().window().maximize(); //driver.quit(); } }
Код Пояснение:
- Первоначально вам необходимо указать путь к файлу chromedriver.exe, используя метод set property, поскольку для тестирования вы используете браузер Chrome.
- Затем вам нужно создать объект класса Chrome Options и передать его экземпляру веб-драйвера. Поскольку мы хотим открыть браузер Chrome в режиме инкогнито, вам необходимо передать аргумент –incognito в класс параметров Chrome.
- Затем создайте объект класса Desired Capabilities и объедините объект класса Desired Capabilities с объектом класса Chrome Options, используя метод слияния.
- Вам необходимо создать объект класса Chrome Driver и передать объект Chrome Options в качестве аргумента.
- Наконец, нам нужно передать URL – https://demo.guru99.com/test/simple_context_menu.html к методу driver.get
- Развернуть и закрыть браузер
Вывод:
Окно браузера 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(); } }
Код Пояснение:
- Первоначально вам необходимо указать путь к файлу chromedriver.exe, используя метод set property, поскольку для тестирования вы используете браузер Chrome.
- Затем создайте объект класса Chrome Options и передайте его экземпляру веб-драйвера. Поскольку мы хотим открыть браузер Chrome в безгласном режиме, нам нужно передать аргумент –headless в класс Chrome Options.
- Создайте объект класса DesiredCapabilities Chrome и объедините объект класса Desired Capabilities с объектом класса Chrome Options, используя метод слияния.
- Создайте объект класса Chrome Driver и передайте параметры Chrome. Selenium объект как аргумент
- Наконец, нам нужно передать URL – https://demo.guru99.com/ к методу driver.get
- Распечатайте заголовок страницы и закройте браузер
Результат
Браузер не будет виден для приведенного выше кода, поскольку Chrome будет работать в безголовом режиме. Заголовок страницы будет получен и отображен, как показано ниже.
Резюме
- Selenium Класс Chrome Options используется для управления различными свойствами драйвера Chrome.
- Класс Desired Chrome Capabilities предоставляет набор пар ключ-значение для изменения отдельных свойств веб-драйвера, таких как имя браузера, платформа браузера и т. д.
- Чтобы манипулировать любыми расширениями браузера Chrome, необходимо извлечь файл CRX, соответствующий расширению, и добавить его в класс параметров Chrome.
- –incognito и –headless — это предопределенные аргументы, предоставляемые классом Chrome Options для использования браузера Chrome в режиме инкогнито и безголовом режиме.