Опции и желани възможности на Chrome в Selenium

⚡ Умно обобщение

Опции на Chrome и желани възможности в Selenium WebDriver контролира начина, по който браузърът Chrome се стартира и се държи по време на автоматизирани тестове. Заедно те конфигурират аргументи, разширения, обработка на SSL и настройки за различни браузъри, което прави тестовете гъвкави, повторяеми и готови за... Selenium Изпълнение на мрежата.

  • 🌐 Опции на Chrome: Персонализира сесии с аргументи като стартиране с максимизиране, инкогнито и безглавие.
  • Желани способности: Задава име на браузъра, платформа, версия и приемане на 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 в режим без глава
  • disable-extensions: Деактивира съществуващите разширения в браузъра Chrome
  • деактивиране на блокиране на изскачащи прозорци: Деактивира изскачащите прозорци, показвани в браузъра Chrome
  • make-default-browser: Прави Chrome браузър по подразбиране
  • версия: Отпечатва версия на браузъра Chrome
  • disable-infobars: Не позволява на Chrome да показва известието „Chrome се управлява от автоматизиран софтуер

Клас на желаните способности

Желан клас способности се използва за модифициране на множество свойства на уеб драйвери. Той предоставя двойки ключ-стойност за промяна на индивидуалните свойства на уеб драйверите, като име на браузър, платформа на браузъра и т.н. Често срещан метод на класа Desired Capabilities е методът 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);

По-долу са най-често използваните предварително дефинирани типове възможности.

Име на възможността Descriptйон
ACCEPT_SSL_CERTS Това свойство казва на браузъра да приема SSL сертификати по подразбиране
PLATFORM_NAME Това свойство се използва за задаване на платформата на операционната система, използвана за достъп до уеб сайта
BROWSER_NAME Това свойство се използва за задаване на името на браузъра за екземпляр на уеб драйвер
ВЕРСИЯ Това свойство се използва за задаване на версията на браузъра

Опции на Chrome за разширение Adblocker

Разширението Adblocker на браузъра Chrome може да се управлява с помощта на ChromeDriver Options и Desired Capabilities class. По-долу са стъпките за достъп AdBlocker разширение в браузъра Chrome с помощта на класа Desired Capabilities.

Стъпка 1) AdBlockРазширението er трябва да бъде инсталирано в браузъра Chrome, преди да използвате клас Опции на Chrome

Стъпка 2) ExtracCRX файла, съответстващ на 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);

ExtracCRX файл

Стъпките по-долу демонстрират процеса на extracИзтегляне на CRX файл чрез Ad Blocker през уебсайта – http://crxextractor.com/

Стъпка 1) Отиди http://crxextractor.com/ и щракнете върху бутона за стартиране

ExtracCRX файл

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

и щракнете върху OK

ExtracCRX файл

Стъпка 3) При щракване върху бутона OK етикетът на бутона ще се промени на Get .CRX, както е показано по-долу. Щракнете върху бутона Get .CRX, CRX файлът, съответстващ на разширението, ще бъде изтеглен

ExtracCRX файл

Стъпка 4) Запишете файла на локалната машина, отбележете запазения път. Следващата стъпка е да прехвърлите запазения път към класа с опции на Chrome

Проба Code:

  1. Ще видите реклами на https://demo.guru99.com/ както по-долу

ExtracCRX файл

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

Code Обяснение:

  1. Първоначално трябва да зададете пътя до файла chromedriver.exe, като използвате метода на set property, тъй като използвате браузъра 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 с активирано разширение за блокиране на реклами
  5. Увеличете и затворете браузъра

ЗАБЕЛЕЖКА: Ние даваме възможност AdBlocker разширение в браузъра Chrome чрез скрипт за автоматизация, вместо ръчно активиране на разширението Adblocker в браузъра Chrome. CRX файлът е начин за достъп до разширение за блокиране на реклами с помощта на скрипт за автоматизация

Изход:

Браузърът Chrome ще бъде активиран с AdBlocker разширението е активирано, както е показано по-долу, без никакви реклами

ExtracCRX файл

Освен зареждането на разширения, 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 и да го предадете на инстанция на уеб драйвер. Тъй като искаме да отворим браузъра Chrome в режим „инкогнито“, трябва да предадете аргумента –incognito към класа „Опции на Chrome“.
  3. След това създайте обект от клас Desired Capabilities и обединете обекта от клас Desired Capabilities с обект от клас Options на Chrome, като използвате метода на сливане
  4. Трябва да създадете обект от клас драйвер на Chrome и да предадете обекта Опции на Chrome като аргумент
  5. Накрая трябва да преминем през URL - https://demo.guru99.com/test/simple_context_menu.html към метода driver.get
  6. Увеличете и затворете браузъра

Изход:

Прозорецът на браузъра Chrome ще се отвори в режим „инкогнито“, както е показано по-долу

Опции на Chrome за режим „инкогнито“.

Опции на Chrome за Headless Chrome

Headless браузър работи във фонов режим. Няма да видите GUI на браузъра или операциите, извършени върху него.

Опциите на 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 и го предайте на екземпляр на уеб драйвер. Тъй като искаме да отворим браузъра Chrome в headless режим, трябва да предадем аргумента –headless към класа Chrome Options.
  3. Създайте обект от класа DesiredCapabilities на Chrome и обединете обекта на класа Desired Capabilities с обекта на класа на Chrome Options, като използвате метода на сливане
  4. Създайте обект от клас драйвер на Chrome и предайте опциите на Chrome Selenium обект като аргумент
  5. Накрая трябва да преминем през URL - https://demo.guru99.com/ към метода driver.get
  6. Отпечатайте заглавието на страницата и затворете браузъра

Продукция

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

Опции на Chrome за Headless Chrome

Въпроси и Отговори

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

Извикайте addArguments с няколко флага, например options.addArguments с start-maximized и incognito. Можете също така да верижно извиквате няколко извиквания. Всеки аргумент персонализира начина на стартиране на сесията на Chrome.

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

Да. Асистенти с изкуствен интелект, като например Copilot, създават скеле на ChromeOptions и настройки на възможностите, предлагат имена на аргументи и обясняват остарели API. Винаги преглеждайте резултата, защото маркират имена и Selenium версиите се променят често.

Инструментите за самовъзстановяване с изкуствен интелект актуализират автоматично аргументите, откриват нестабилни флагове и предлагат стабилни заместители след надстройки на Chrome. Те намаляват поддръжката за безжични изпълнения и несъответствия във възможностите в различните CI среди.

Да. ChromeOptions работи с RemoteWebDriver за изпълнение в Grid. Прикачвате опциите към отдалечената сесия, позволявайки на същата конфигурация да се изпълнява на разпределени машини и браузъри.

Това обикновено означава, че версиите на ChromeDriver и браузъра Chrome не съвпадат. Инсталирайте съответстващ ChromeDriver или използвайте Selenium Мениджър в Selenium 4 за автоматично разрешаване на проблема с драйвера.

Използвайте експериментална опция: карта с предпочитания (prefs map) с download.default_directory, предадена чрез setExperimentalOption. След това Chrome автоматично запазва файловете в тази папка по време на автоматизирани тестове.

Обобщете тази публикация с: