Бажані можливості в Selenium веб-драйвер

⚡ Розумний підсумок

Бажані здібності – це Selenium клас, який зберігає налаштування браузера, платформи та пристрою у вигляді пар ключ-значення, дозволяючи одному набору тестів орієнтуватися на багато середовищ у різних Selenium Grid, хмарні gridy та мобільна автоматизація.

  • 🔘 Визначення: Пари ключ-значення, що називають браузер, версію, платформу та шлях до драйвера.
  • ☑️ Мета: Один пакет працює на різних браузерах, операційних системах та мобільних пристроях.
  • методи: setCapability(), getCapability(), setBrowserName(), setVersion() та setPlatform() описують середовище.
  • 🧪 приклад: У покроковому посібнику з Internet Explorer відтворено помилку шляху драйвера та її виправлення.
  • 🛠️ Сучасний еквівалент: Selenium 4 містить ті самі налаштування в класах параметрів браузера.

Бажані можливості в Selenium веб-драйвер

Що таке бажані можливості?

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

  • Потрібну можливість також можна використовувати для налаштування екземпляра драйвера Selenium WebDriver.
  • Ми можемо налаштувати екземпляр драйвера, наприклад FirefoxДрайвер, ChromeDriver, InternetExplorerDriver за допомогою бажаних можливостей.

Примітка до версії: Selenium 4 замінює DesiredCapabilities класами параметрів браузера — ChromeOptions, FirefoxПараметри, EdgeOptions, InternetExplorerOptions. У наведених нижче прикладах збережено оригінальний синтаксис.

Навіщо нам потрібні бажані можливості?

Бажані здібності необхідні, тому що кожен Тестування Сценарій повинен виконуватися в певному середовищі тестування. Середовищем тестування може бути веб-браузер, Mobile пристрій, мобільний емулятор, мобільний симулятор тощо. Клас бажаних можливостей допомагає нам повідомити WebDriver, яке середовище ми будемо використовувати в нашому тестовому скрипті.

Метод setCapability класу DesiredCapabilities, який пояснюється в наступній частині цієї сторінки, можна використовувати в Selenium Сітка. Вона використовується для виконання паралельне виконання на різних конфігураціях машин.

Наприклад: Сітка (показано нижче).

Selenium Налаштування сітки, зумовлене бажаними можливостями

Він використовується для встановлення властивостей браузера (наприклад, Chrome, IE), назви платформи (наприклад, Linux, Windows), що використовуються під час виконання Тестовий випадок.

У випадку мобільної автоматизації, оскільки ми проводимо тести на різних мобільних пристроях, Мобільна платформа (наприклад, iOS, Android) Версія платформи (Напр. 3.x, 4.x в Android) можна встановити.

У наведеному нижче прикладі емулятора показано платформу Android та версію платформи IceCream Sandwich (4.x).

Можливості мобільного емулятора встановлені на Android платформа та версія 4.x

Бажані можливості більш корисні в таких випадках:

  • В автоматизації мобільних додатків, де можна налаштувати властивості браузера та властивості пристрою.
  • In Selenium Grid, коли ми хочемо запустити тестові випадки в іншому браузері з різними операційними системами та версіями.

Типи методів бажаних можливостей

Тут ми побачимо різні методи бажаних можливостей та як використовувати один з них, метод setCapability().

#1) getBrowserName()

public java.lang.String getBrowserName()

#2) setBrowserName()

public void setBrowserName(java.lang.String browserName)

#3) getVersion()

public java.lang.String getVersion()

#4) setVersion()

public void setVersion(java.lang.String version)

#5) getPlatform()

public Platform getPlatform()

#6) setPlatform()

public Platform setPlatform()

#7) Метод getCapability().

Метод getCapability() класу DesiredCapabilities можна використовувати для отримання можливостей, які зараз використовуються в системі.

public java.lang.Object getCapability(java.lang.String capabilityName)

#8) Метод setCapability().

Метод setCapability() класу Desired Capabilities використовується для встановлення властивостей тестового середовища, таких як назва пристрою, назва та версія ОС, назва та версія браузера, абсолютний шлях до тестованої програми (файл .apk Android тестується програма), активність програми (в Android) та appPackage (у Java).

«Метод setCapability» у Java має такі декларації:

setCapability : public void setCapability(java.lang.String capabilityName,boolean value)
setCapability  :public void setCapability(java.lang.String capabilityName,java.lang.String value)
setCapability  :public void setCapability(java.lang.String capabilityName,Platform value)
setCapability  :public void setCapability(java.lang.String key,java.lang.Object value)

Встановіть можливості Selenium Приклад

Розглянемо приклад, де ми хочемо запустити наш тестовий кейс у браузері Internet Explorer, щоб відкрити вебсайт www.gmail.com за допомогою Selenium WebDriver.

Нижче наведено код.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {
  
WebDriver driver = new InternetExplorerDriver();
 driver.manage().window().maximize();
 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

Тепер запустіть цей код із Eclipse і перевірте консоль.

вихід:

Під час виконання наведеного вище коду виникне наступна помилка. Помилка виникає, оскільки шлях до драйвера браузера (IE у вищезгаданому випадку) не вказано. Браузер не вдалося знайти програмі. Selenium Код.

The path to the driver executable must be set by the webdriver.ie.driver system property; formore information, see http://code.google.com/p/selenium/wiki/InternetExplorerDriver. The latest version can be downloaded from http://code.google.com/p/selenium/downloads/list

Dec 11, 201212:59:43PM org.openqa.selenium.ie.InternetExplorerDriverServer initializeLib

WARNING: This method of starting the IE driver is deprecated and will be removed in selenium 2.26. Please download the IEDriverServer.exe from http://code.google.com/p/selenium/downloads/list and ensure that it is in your PATH.

Рішення:

Рішення вищевказаної проблеми наведено в розділі попередження самої помилки.

  1. Завантажте окремий сервер Internet ExplorerDriver для 32- або 64-розрядної версії.
  2. Збережіть драйвер у відповідному місці системи.
  3. Встановіть шлях для драйвера за допомогою методу System.setProperty. Він використовується для встановлення драйвера IE за допомогою властивості webdriver. Це допомагає знайти виконуваний файл драйвера, який зберігається в системному місці розташування. (Наприклад: "C:\IEDriverLocation\IEDriver.exe")

Примітка до версії: Selenium 4.6 та пізніших версій автоматично вирішують проблему з драйвером через Selenium Manager, тому System.setProperty є необов'язковим. Історичний код нижче не змінився.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

public class IEtestforDesiredCapabilities {
  
 public static void main(String[] args) {

//it is used to define IE capability 
 DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
  
capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE");
capabilities.setCapability(InternetExplorerDriver.
  INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);


System.setProperty("webdriver.ie.driver", "C:\\IEDriverServer.exe");
  
 //it is used to initialize the IE driver
 WebDriver driver = new InternetExplorerDriver(capabilities);
  
 driver.manage().window().maximize();

 driver.get("http://gmail.com");
  
 driver.quit();
 }
  
}

Code Пояснення:

У коді вище,

  • Оператори import імпортують необхідні пакети для Selenium WebDriver, необхідні пакети для драйвера Internet Explorer та пакети для бажаних можливостей.
  • setCapability приймає різні можливості як вхідні змінні, які потім використовуються веб-драйвером для запуску програми в потрібному середовищі.
  • setProperty використовується для встановлення шляху, де знаходиться драйвер. Потім WebDriver знаходить потрібний драйвер.
  • Gmail Вебсайт відкривається в браузері Internet Explorer за допомогою методу «get».

вихід:

Тестовий випадок у браузері Internet Explorer буде успішно виконано з використанням Selenium WebDriver.

Поширені запитання

Він залишається для зворотної сумісності, але фактично є застарілим. Selenium 4 маршрутизує сеанси через об'єкти Options браузера, сумісні з W3C, тому нові пакети повинні надавати перевагу Options.

Параметри Chrome, FirefoxOptions, EdgeOptions, SafariOptions та InternetExplorerOptions. Кожен об'єкт переходить безпосередньо до відповідного конструктора драйвера або до RemoteWebDriver.

Стандартними є лише browserName, browserVersion, platformName, acceptInsecureCerts, pageLoadStrategy, proxy, timeouts та unhandledPromptBehavior. Для всіх інших потрібен префікс вендора, наприклад, goog:chromeOptions.

Appium очікується platformName, automationName, deviceName та або app, або appPackage, а також appActivity, усі з префіксом appium:.

Ні. Від Selenium 4.6, Selenium менеджер автоматично завантажує відповідний драйвер. Встановлюйте це лише під час закріплення певної збірки драйвера.

Постачальники хмарних послуг зчитують ті самі пари ключ-значення для розподілу браузера, операційної системи та пристрою, а також додаткові параметри з префіксом постачальника, такі як назва збірки.

Моделі штучного інтелекту аналізують аналітику виробництва та історію дефектів, щоб оцінити, які браузери, версії та комбінації пристроїв заслуговують на охоплення, скорочуючи некеровану матрицю.

Copilot швидко створює чернетки блоків можливостей, але часто пропонує застарілий синтаксис DesiredCapabilities, вивчений зі старого коду, тому переглядайте кожен згенерований рядок.

Підсумуйте цей пост за допомогою: