Selenium Tutorial: DesiredCapabilities
Introduction
In real-time automation using selenium webdriver, it is often required to run our tests on a various combinations of ( OS , Browser and Versions ). So, this is required for the compatibility of the application in different environments. In this tutorial, we see how we can achieve this using the DesiredCapabilities class.
DesiredCapabilities
It is a class in WebDriver API. First of all, it provides support for setting the capability to run tests.DesiredCapabilities are a series of key-value pairs (KV ) that allow customization of testing. Also, note that if a session cannot support a capability that is requested in the desired capabilities, no error is thrown. Instead, a read-only capabilities object is returned that indicates the capabilities the session actually supports.
In the below example I would take BrowserStack as an example and for running a sample test customized to run on Mozilla Firefox with version 45 and on Windows 10 OS .
For example some are listed below:
Capability | Value |
---|---|
os
OS you want to test. |
WINDOWS |
os_version
OS version you want to test. |
10 |
browser
Browser you want to test. |
Firefox |
browser_version
Browser version you want to test. |
45 |
Code snippet
To get the above capability configuration we can use the below sample code snippet:
caps.setCapability("browser", "Firefox"); caps.setCapability("browser_version", "45.0"); caps.setCapability("os", "Windows"); caps.setCapability("os_version", "10"); caps.setCapability("resolution", "1024x768");
Choosing mobile browsers for running tests :
If we want to run your Selenium test scripts on iOS by specifying the version and device in the input capabilities. These capabilities are browserName and device.
The following example code snippet for running on iPhone device:
Listing
DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browserName", "iPhone"); caps.setPlatform(Platform.MAC); caps.setCapability("device", "iPhone 5");
Example code snippet to open Twitter on Windows 10 operating system on Mozilla Firefox with version 45 on BrowserStack using desired capabilities is shown below:
DesiredCapabilities caps = new DesiredCapabilities(); caps.setCapability("browser", "Firefox"); caps.setCapability("browser_version", "45"); caps.setCapability("os", "Windows"); caps.setCapability("os_version", "10"); caps.setCapability("browserstack.debug", "true"); WebDriver driver = new RemoteWebDriver(new URL(URL), caps); driver.get("https://www.twitter.com"); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
Conclusion
Using desired capabilities with cloud, we get the freedom to run our selenium webdriver test on countless number of device combinations. Also, check out the Webdriver API desired capabilities class which has a lot of constructors and explore news of instantiating desired capabilities class with ease.
Selenium WebDriver Tutorials on this website can be found at:
https://www.testingdocs.com/selenium-webdriver-tutorial
For more details on the Selenium, visit the official website at: