Параметри 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 у безголовому режимі
  • disable-extensions: вимикає наявні розширення в браузері Chrome
  • disable-popup-blocking: вимикає спливаючі вікна, які відображаються в браузері Chrome
  • make-default-browser: Робить Chrome браузером за умовчанням
  • версія: друкує версію браузера Chrome
  • disable-infobars: Запобігає відображенню Chrome сповіщенням «Chrome керується автоматизованим програмним забезпеченням».

Бажаний клас можливостей

Бажаний клас можливостей використовується для зміни кількох властивостей веб-драйверів. Він надає пари ключ-значення для зміни окремих властивостей веб-драйверів, таких як ім’я браузера, платформа браузера тощо. Поширеним методом класу бажаних можливостей є метод setCapability. В основному використовується з Selenium Сітка, де один і той самий тест потрібно виконати в різних браузерах.

приклад:

У наведеному нижче прикладі показано спосіб увімкнути браузер 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 Ця властивість використовується для встановлення платформи операційної системи, яка використовується для доступу до веб-сайту
BROWSER_NAME Ця властивість використовується для встановлення імені браузера для примірника веб-драйвера
Версія Ця властивість використовується для встановлення версії браузера

Параметри Chrome для розширення Adblocker

Розширення Adblocker для веб-переглядача Chrome можна керувати за допомогою параметрів ChromeDriver і класу бажаних можливостей. Нижче наведено кроки для доступу AdBlocker у браузері Chrome за допомогою класу бажаних можливостей.

Крок 1) AdBlockПеред використанням класу параметрів Chrome необхідно встановити розширення er у браузері Chrome

Крок 2) Розпакуйте відповідний файл CRX AdBlocker розширення через http://crxextractor.com/

Крок 3) Передайте шлях до завантаженого файлу CRX до класу Chrome Options

Крок 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/ і натисніть кнопку «Пуск».

Розпакуйте файл CRX

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

і натисніть OK

Розпакуйте файл CRX

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

Розпакуйте файл CRX

Крок 4) Збережіть файл на локальній машині, запишіть збережений шлях. Наступним кроком є ​​передача збереженого шляху до класу Chrome Options

Зразок коду:

  1. Ви побачите рекламу на https://demo.guru99.com/ як зазначено нижче

Розпакуйте файл CRX

  1. З AdBlockрозширення, увімкнене в рекламі браузера 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();
	}
	
}

Пояснення коду:

  1. Спочатку вам потрібно встановити шлях до файлу chromedriver.exe за допомогою методу властивості set, оскільки ви використовуєте веб-переглядач Chrome для тестування
  2. Щоб додати метод розширення, потрібно встановити шлях до файлу CRX
  3. Потім вам потрібно створити об’єкт Chrome Desired Capabilities у Selenium клас і передати його екземпляру веб-драйвера. Від Selenium Версія 3.8.1, клас можливостей драйвера застарів, і вам потрібно об’єднати об’єкт можливостей з об’єктом параметрів Chrome, перш ніж передавати те саме як аргумент у конструктор драйвера Chrome
  4. Відкрийте URL – https://demo.guru99.com/test/simple_context_menu.html з увімкненим розширенням Ad Blocker
  5. Розгорніть і закрийте браузер

ПРИМІТКА: Ми уможливлюємо AdBlocker розширення у браузері Chrome за допомогою сценарію автоматизації замість того, щоб вручну ввімкнути розширення Adblocker у веб-переглядачі Chrome. Файл CRX — це спосіб отримати доступ до розширення блокувальника реклами за допомогою сценарію автоматизації

вихід:

Браузер Chrome буде ввімкнено за допомогою AdBlockрозширення er увімкнено, як показано нижче, без реклами

Розпакуйте файл CRX

Параметри 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();
	}
	}

Пояснення коду:

  1. Спочатку вам потрібно встановити шлях до файлу chromedriver.exe за допомогою методу властивості set, оскільки ви використовуєте веб-переглядач Chrome для тестування
  2. Потім вам потрібно створити об’єкт класу Chrome Options і передати його екземпляру веб-драйвера. Оскільки ми хочемо відкрити браузер Chrome у режимі анонімного перегляду, вам потрібно передати аргумент –incognito класу Chrome Options.
  3. Далі створіть об’єкт класу Desired Capabilities і об’єднайте об’єкт класу Desired Capabilities з об’єктом класу Chrome Options за допомогою методу merge
  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();
		}


}

Пояснення коду:

  1. Спочатку вам потрібно встановити шлях до файлу chromedriver.exe за допомогою методу властивості set, оскільки ви використовуєте веб-переглядач Chrome для тестування
  2. Далі створіть об’єкт класу параметрів Chrome і передайте його екземпляру веб-драйвера. Оскільки ми хочемо відкрити браузер Chrome у безголовому режимі, нам потрібно передати аргумент –headless до класу Chrome Options.
  3. Створіть об’єкт класу DesiredCapabilities Chrome і об’єднайте об’єкт класу Desired Capabilities з об’єктом класу Chrome Options за допомогою методу merge
  4. Створіть об’єкт класу драйвера Chrome і передайте параметри Chrome Selenium об'єкт як аргумент
  5. Нарешті, нам потрібно передати URL – https://demo.guru99.com/ до методу driver.get
  6. Роздрукуйте назву сторінки та закрийте браузер

Вихід

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

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

Підсумки

  • Selenium Клас параметрів Chrome використовується для керування різними властивостями драйвера Chrome
  • Клас бажаних можливостей Chrome надає набір пар ключ-значення для зміни окремих властивостей веб-драйвера, як-от ім’я браузера, платформа браузера тощо.
  • Щоб маніпулювати будь-якими розширеннями браузера Chrome, файл CRX, що відповідає цьому розширенню, потрібно розпакувати та додати до класу параметрів Chrome
  • –incognito та –headless – це попередньо визначені аргументи, надані класом параметрів Chrome для використання браузера Chrome у режимі анонімного перегляду та безголовому режимі