Опции и желани възможности на Chrome в Selenium
⚡ Умно обобщение
Опции на Chrome и желани възможности в Selenium WebDriver контролира начина, по който браузърът Chrome се стартира и се държи по време на автоматизирани тестове. Заедно те конфигурират аргументи, разширения, обработка на SSL и настройки за различни браузъри, което прави тестовете гъвкави, повторяеми и готови за... 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/ и щракнете върху бутона за стартиране
Стъпка 2) Въведете разширението за Chrome – Блокиране на реклами URL под текстовото поле. URL за Adblock в уеб магазина на Chrome е https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom
и щракнете върху OK
Стъпка 3) При щракване върху бутона OK етикетът на бутона ще се промени на Get .CRX, както е показано по-долу. Щракнете върху бутона Get .CRX, CRX файлът, съответстващ на разширението, ще бъде изтеглен
Стъпка 4) Запишете файла на локалната машина, отбележете запазения път. Следващата стъпка е да прехвърлите запазения път към класа с опции на Chrome
Проба Code:
- Ще видите реклами на https://demo.guru99.com/ както по-долу
- с 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 Обяснение:
- Първоначално трябва да зададете пътя до файла chromedriver.exe, като използвате метода на set property, тъй като използвате браузъра Chrome за тестване
- Трябва да зададете пътя до CRX файл, за да добавите метод на разширения
- След това трябва да създадете обект на Chrome Desired Capabilities в Selenium клас и го предайте на екземпляр на уеб драйвер. от Selenium Версия 3.8.1, класът на възможностите на драйвера е остарял и трябва да обедините обект на възможности с обект на опции на Chrome, преди да предадете същото като аргумент на конструктора на драйвер на Chrome
- Отворете URL - https://demo.guru99.com/test/simple_context_menu.html с активирано разширение за блокиране на реклами
- Увеличете и затворете браузъра
ЗАБЕЛЕЖКА: Ние даваме възможност AdBlocker разширение в браузъра Chrome чрез скрипт за автоматизация, вместо ръчно активиране на разширението Adblocker в браузъра Chrome. CRX файлът е начин за достъп до разширение за блокиране на реклами с помощта на скрипт за автоматизация
Изход:
Браузърът Chrome ще бъде активиран с AdBlocker разширението е активирано, както е показано по-долу, без никакви реклами
Освен зареждането на разширения, 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 Обяснение:
- Първоначално трябва да зададете пътя до файла chromedriver.exe, като използвате метода на set property, тъй като използвате браузъра Chrome за тестване
- След това трябва да създадете обект от клас Опции на Chrome и да го предадете на инстанция на уеб драйвер. Тъй като искаме да отворим браузъра Chrome в режим „инкогнито“, трябва да предадете аргумента –incognito към класа „Опции на Chrome“.
- След това създайте обект от клас Desired Capabilities и обединете обекта от клас Desired Capabilities с обект от клас Options на Chrome, като използвате метода на сливане
- Трябва да създадете обект от клас драйвер на Chrome и да предадете обекта Опции на Chrome като аргумент
- Накрая трябва да преминем през URL - https://demo.guru99.com/test/simple_context_menu.html към метода driver.get
- Увеличете и затворете браузъра
Изход:
Прозорецът на браузъра 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 Обяснение:
- Първоначално трябва да зададете пътя до файла chromedriver.exe, като използвате метода на set property, тъй като използвате браузъра Chrome за тестване
- След това създайте обект от клас Опции на Chrome и го предайте на екземпляр на уеб драйвер. Тъй като искаме да отворим браузъра Chrome в headless режим, трябва да предадем аргумента –headless към класа Chrome Options.
- Създайте обект от класа DesiredCapabilities на Chrome и обединете обекта на класа Desired Capabilities с обекта на класа на Chrome Options, като използвате метода на сливане
- Създайте обект от клас драйвер на Chrome и предайте опциите на Chrome Selenium обект като аргумент
- Накрая трябва да преминем през URL - https://demo.guru99.com/ към метода driver.get
- Отпечатайте заглавието на страницата и затворете браузъра
Продукция
Браузърът няма да се вижда за горния код, тъй като Chrome ще работи в режим Headless. Заглавието на страницата ще бъде извлечено и показано както е показано по-долу.







