Желани възможности в Selenium уебдрайвер
⚡ Умно обобщение
Желаните способности са Selenium клас, който съхранява настройките на браузъра, платформата и устройството като двойки ключ-стойност, позволявайки на един тестов набор да е насочен към много среди в Selenium Грид, облачни грид и мобилна автоматизация.
Какво представляват желаните способности?
Желаните способности са курс по Selenium използва се за задаване на свойства на браузъри за извършване на кръстосано тестване на уеб приложения на браузъра. Той съхранява възможностите като двойки ключ-стойност и тези възможности се използват за задаване на свойства на браузъра като име на браузъра, версия на браузъра, път на драйвера на браузъра в системата и т.н., за да се определи поведението на браузъра по време на изпълнение.
- Желаната възможност може да се използва и за конфигуриране на екземпляра на драйвера на Selenium WebDriver.
- Можем да конфигурираме екземпляр на драйвер като FirefoxДрайвер, ChromeDriver, InternetExplorerDriver чрез използване на желаните възможности.
Бележка към версията: Selenium 4 замества DesiredCapabilities с класове за опции на браузъра — ChromeOptions, FirefoxOptions, EdgeOptions, InternetExplorerOptions. Примерите по-долу запазват оригиналния синтаксис.
Защо се нуждаем от желаните способности?
Желаните способности са необходими, защото всеки Тестване сценарият трябва да се изпълни в някаква специфична тестова среда. Средата за тестване може да бъде уеб браузър, подвижен устройство, мобилен емулатор, мобилен симулатор и др. Класът Desired Capabilities ни помага да кажем на WebDriver коя среда ще използваме в нашия тестов скрипт.
Методът setCapability на класа DesiredCapabilities, който е обяснен в по-късната част на тази страница, може да се използва в Selenium Решетка. Използва се за извършване на паралелно изпълнение при различни конфигурации на машините.
Например: Решетка (показана по-долу).
Използва се за задаване на свойствата на браузъра (напр. Chrome, IE), име на платформа (напр. Linux, Windows), които се използват по време на изпълнението на Тестов случай.
В случай на мобилна автоматизация, тъй като извършваме тестовете на различни разновидности на мобилни устройства, мобилната платформа (напр. iOS, Android) Версия на платформата (Напр. 3.x,4.x in Android) може да се настрои.
Примерът за емулатор по-долу показва платформата Android и версията на платформата IceCream Sandwich (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.
Решение:
Решението за горния проблем е дадено в предупредителния раздел на самата грешка.
- Изтеглете самостоятелния сървър на Internet ExplorerDriver за 32 или 64 бита.
- Запазете драйвера на подходящо място в системата.
- Задайте пътя за драйвера, използвайки метода System.setProperty. Той се използва за задаване на IE драйвера със свойството webdriver. Помага за локализиране на изпълнимия файл на драйвера, който се съхранява в системното местоположение. (Напр.: „C:\IEDriverLocation\IEDriver.exe“)
Бележка към версията: Selenium 4.6 и по-нови версии разрешават проблема с драйвера автоматично чрез Selenium Мениджър, така че 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 Обяснение:
В кода по-горе,
- Операторите за импортиране импортират необходимите пакети за Selenium WebDriver, необходимите пакети за драйвера на Internet Explorer и пакетите за желаните възможности.
- setCapability приема различните възможности като входни променливи, които след това се използват от уеб драйвера за стартиране на приложението в желаната среда.
- setProperty се използва за задаване на пътя, където се намира драйверът. След това WebDriver намира необходимия драйвер.
- Gmail Уебсайтът се отваря в браузъра Internet Explorer, като се използва методът „get“.
Изход:
Тестовият случай в браузъра Internet Explorer ще се изпълни успешно с помощта на Selenium WebDriver.


