×

Desired Capabilities in Selenium Web Driver in C++

  • A class called Desired Capabilities is used to specify a set of fundamental requirements, such as browser, operating system, and version combinations.to carry out automated testing of a web application across multiple browsers.
  • When using Selenium automation testing to try to automate our test scripts, we need to consider these combinations when declaring a specific test environment in which our website or web application should render flawlessly.
  • Screen resolutions, mobile devices, desktop computers, and mobile browsers are all examples of these environments.
  • We use the Desired Capabilities in Selenium testing or Appium testing to declare these environments in our Selenium automation testing script, and this is exactly what we will discuss in this article.
  • I will assist you in familiarizing yourself with the Appium and Selenium Desired Capabilities.
  • With examples, I will explain what they are and how they are utilized in Appium and Selenium automation testing.

What kinds of Skills are D esired?

  • The org.open a.selenium.remote contains a component called Desired Capabilities.Package of DesiredCapabilities.
  • It assists Selenium WebDriver in setting the browser properties. Thus, we can set browser properties by utilizing various capabilities from the Desired Capabilities class.
  • Examples include the browser's name, version, and so forth.When we set these capabilities for browsers; we use key-value pairs.
  • For all of the specific methods, etc., you can look to the GitHub library for the Desired Capabilities.
  • When using Selenium automation testing, we always have different requirements for execution, such as which browser to use, which operating system to use, and which version to use for the test.
  • This is where Desired Capabilities on Selenium Grid come in handy.
  • We can use the set Capability method from the DesiredCapabilities class to set the various types of browser capabilities to declare Desired Capabilities in Selenium automation testing with Grid.IE, Firefox, Edge, and Chrome) platform name(Mac OS, Windows, etc.)
  • Setup Selenium Grid for Parallel Execution in Multiple Browsers In the case of mobile application automation, where we need to execute test automation on a variety of browser and device properties, the Desired Capabilities class comes in handy.
  • To use automation testing for various mobile platforms, including iOS and Android, among others.In addition, there may be various platforms (operating system) versions, such as Android 9.x, and 10.x, and iOS 12.x, 13.x, etc.; these properties can be set using Desired Capabilities in Appium for Android or iOS by our requirements.
  • Selenium Advanced-certification this certification is great for professionals in testing who want to learn advanced, practical Selenium automation testing techniques.

A brief overview of the LambdaTest Selenium Advanced certification can be found here:

  • YouTube Thumbnail in Selenium and Appium, the Desired Capabilities class provides instructions to the WebDriver regarding the environment, such as the browser name, browser version, platform, and so on.
  • Over which we use our automation scripts to carry out automated browser testing.
  • However, the Desired Capabilities class can be used for more than just that. Additionally, we can set preferences for each browser, such as enabling options in Chrome and Firefox, testing incognito, disabling javascript, and so on.
  • Selenium Automation Testing with Disabled JavaScript Settings If you use a cloud-based online Selenium grid, the Desired Capabilities class can also be used to test locally hosted web applications with Selenium, generate command-by-command screenshots, or even record a video of the entire test automation execution across a variety of browser and operating system configurations.

Types of Desired Capabilities Methods

Now, let's talk about the various methods in the Desired Capabilities class for setting test automation properties.

  1. getCapability()
    This method setCapability() from the class Desired Capabilities can be used to set the name of the device, the name of the platform, the version of the platform, the absolute path of the application under test, application activity (in Mobile automation), application Package (in Java), and so on. Get browser name():

    This method from the class Desired Capabilities, get browser name(), can be used to obtain the Browser's name.
  2. setBrowserName()
    The class Desired Capabilities' setBrowserName() method can be used to change the browser's name.
  3. getVersion()
    This method from the class Desired Capabilities, getVersion(), can be used to determine the platform or browser version.
  4. Set version()
    The class Desired Capabilities' set version() method can be used to change the browser or platform version.
    getplatform()

    The getPlatform() method from the class Desired Capabilities can be used to obtain platform-specific information.
  5. setPlatform()
    Thismethod from the class Desired Capabilities can be used to modify the platform's specifics.

Desired Capabilities in Selenium WebDriver for Browsers

  • Toto uses the Desired Capabilities in Selenium WebDriver for Chrome, the ChromeDriver session needs to be started.
  • So, let's talk about the capabilities that ChromeDriver supports and how we can use them to set the capabilities we want in Selenium Webdriver for Chrome.

There are two ways to set ChromeDriver's capabilities.

  1. Chrome Options
  2. Desired Capabilities
  3. ChromeOptions is a different class which can be used in conjunction with Desired Capabilities to modify or customize the various properties of the Chrome browser.
  4. The arguments from the ChromeOptions class
  5. Disable-info bars: It is used to prevent notifications such as "Chrome is being controlled by automated software" from appearing in the Chrome browser.
  6. Make-default-browser: It is utilized to set Chrome as the default browser.
  7. Disable-popup-blocking: It is used to prevent Chrome browser pop-ups from appearing.
  8. Incognito: It starts the Chrome browser in incognito mode with the maximum
  9.  Settings: Headless: It maximizes the Chrome browser.It is used to use the headless mode of the Chrome browser.
  10. Let's now look at an ad blocker that makes use of Chrome Option and the Desired Capabilities class.For this, we will make use of an extension for an ad blocker.
  11. View rawcrx.java on GitHub Testing with Selenium there is ways to customize the Desired Capabilities in Selenium WebDriver for Firefox browsers, just like there are ways to customize the capabilities in the Chrome browser.
  12. Mozoz: The firefoxOptions feature is only available in the Firefox browser.Moz can help us: firefoxOptions enables us to control the behaviour of the Firefox browser by customizing or modifying various properties. It is typically invoked as a member in either of the two, the first coming from entries for always match and the second from entries for firstMatch.
  13. The following options can influence how the Firefox browser starts or runs, can be found in firefoxOptions.
  14. The binary (String): The custom Firefox binary can use the absolute path that we provide.When Firefox's driver, GeckoDriver, is not specified, it will typically attempt to locate Firefox on the current system.
  15. args (a string array): The Firefox binary receives the command line arguments through this argument.When using this syntax, it should include hyphens and dashes like "-profile."

Therefore, we should use syntax like ["-profile", "path to the profile"] to get GeckoDriver to use an existing profile.

  1. Profile(string): We can supply the directory's path so that the Firefox instance can be used.This can be used to install custom certificates or Firefox extensions.When we want to set custom preferences, it is recommended to use prefs rather than passing the profile directly. The prefs example and others are provided below.

In Selenium WebDriver for Firefox, an illustration of declaring Desired Capabilities can be found here.

{
"function":{
"alwaysMatch":{
"moz:firefoxOptions":{
"binary":"/usr/local/firefox/bin/firefox",
"args":["-headless","-profile","/path/to/my/profile"],
"Environmentalsetting":{
"dom.ipc.processCount":9,
"javascript.options.showInConsole":True
},
"Log":{"Level":"Trace"}
}
}
}
}
if(driverParameter==null||driverParameter.equalsIgnoreCase(FIREFOX))
{
DesiredCapabilitiescapabilities=DesiredCapabilities.firefox();
FirefoxOptionsoptions=newFirefoxOptions();
options.setHeadless(headless);
Capabilities.merge(optional);
}
  • View rawseleniumwebdriver.java, which is hosted on GitHub. Desired Capabilities in Selenium WebDriver for IE (Internet Explorer) Let's move on to the Desired Capabilities in Selenium WebDriver for IE (Internet Explorer).We use Selenium WebDriver's InternetExplorerOptions and Desired Capabilities for IE.
  • In the Selenium WebDriver for IE, this is an illustration of declaring Desired Capabilities.
if(driver parameter == null || driver parameter.equalsIgnoreCase(IE)): 
{
capabilities = capabilities.internetExplorer();
abilities.setCapability(true, "requireWindowFocus")
capabilities.setCapability(CapabilityType.True, accept_ssl_certs);
}
  • View rawseleniumwebdriverforIE.java, which is hosted on GitHub. There are a few Internet Explorer-specific features that we can make use of; let's go over a few of them one at a time.
  • booleanignoreZoomSetting: By utilizing this feature, you can defer checking the browser's zoom level to 100%.It is set to false by default.As an input, a Boolean value is required.
  • initialBrowserUrl: We can use this capability to select the initial URL, or website, to which the Internet Explorer browser should redirect when it starts.As input, a string is required.
  • booleanenableElementCacheCleanup: This capability checks the element cache for out-of-date elements. The capability tells the WebDriver to clean up if they are discovered.As an input, a Boolean value is required.
  • booleanrequireWindowFocus: This capability tells the driver to make sure the Internet Explorer window has the focus before doing anything else, like using the mouse or keyboard, etc. It uses a Boolean value as its input and is set to false by default.
  • booleanignoreProtectedModeSettings: You can take advantage of this feature when performing Selenium automation testing to bypass the protected mode check. As an input, a Boolean value is required.

Therefore, we can make use of some of these Internet Explorer-specific capabilities.


Related Topics

Nullptr in C++

What is Nullptr in C++? A null pointer value is represented by the term nullptr. Use a null pointer value to indicate that a native pointer type, inner pointer, or object...

3 minutes read.

C++ String

A string is a collection of characters. C++ programming language supports both C string as well as standard C++ library string. In C++, string is an object of std::string class. C Style String The C style...

5 minutes read.

Top 14 Best Free C++ IDE (Editor & Compiler) for Windows in 2024

Bjarne Stroustrup created the all-purpose object-oriented programming language C++. To develop C++ programs, there are various Integrated Development Environments (IDE) that offer prewritten code templates. These programs automatically modify the...

6 minutes read.

Binary to Decimal in C++

We must create a software to convert a binary number into an equivalent decimal value given a binary number as input. Example: // C++ program to convert binary to decimal #include < iostream...

3 minutes read.

Pointers in C++

Pointers are a powerful feature in the C++ programming language, allowing developers to directly manipulate memory addresses and create more efficient and dynamic programs. However, pointers can also source various...

3 minutes read.

Free vs delete() in C++

Free vs delete() in C++ In this section, we will learn about the free() function and also create a C ++ program of the delete operator. What is free() Function in C++? In...

4 minutes read.

Priority Queue in C++

Priority Queue in C++ Introduction: We have already come across Queues by concluding that they are linear data structures that follow FIFO (First-In-First-Out) approach. We had also discussed the syntax of queues...

4 minutes read.

Is it fine to write void main() or main() in C/C++?

In C programming language: The default function return type in the C programming language is "int," which implies that main() will always return an integer value. In C, the void main()...

3 minutes read.

Inheritance Program in C++

What is Inheritance? Inheritance is the ability of a class to inherit traits and properties from another class. One of the most crucial aspects of Object-Oriented Programming is inheritance. The ability or...

9 minutes read.

How to find the length of the vector in C++

Like dynamic arrays, vectors can automatically adjust their size when an element is added or removed, and the container manages its storage. Because vector items are stored in contiguous storage, iterators...

3 minutes read.

Counting Frequencies of Array Elements in C++

We have an array of integer items with duplicate values, and our objective is to compute the frequencies of the different elements in the array. Methods: Methods that can be used to...

3 minutes read.

Constructor Vs Destructor in C++

C++ Constructor A function Object () { [native code] } is a member function that shares the same name as the class. It is called automatically whenever a class object is...

3 minutes read.

C++ | C Plus Plus While loop

In this article, we will discuss the C++ while loop with its syntax, use, key features, key points, pseudo code, and examples. What is the While Loop? The “while loop” is a...

4 minutes read.

Private Inheritance in C++

Private inheritance is an inheritance in object-oriented programming (OOP) languages where a subclass derives from a superclass. Still, the derived class does not inherit the public and protected members of...

7 minutes read.

How to make a password program in C++

Before understanding the password program, one must know about a password and why it is required. Password: A password is a word that permits access to somewhere or something. A password...

4 minutes read.

C++ Variable

In this article, we will discuss variables in C++ with their types and examples. What are Variables? Variables are specific memory storage spaces that hold a value. During the execution of a...

4 minutes read.

List back () function in C++ STL

The list::back () function of the C++ STL returns a direct reference to the last element in the list container. This function varies from list::end (), which just returns an...

2 minutes read.

C++ References

C++ References An alias is a reference variable that is another name for a variable already in existence. If a relation is initialized with a variable, it is possible to use...

3 minutes read.

C++ Continue in Do-while loop

Continue statement: Inside the loop, the continue statement is used to control the loop. C++ utilizes the continue keyword to implement the continue statement, which transfers the program's flow at the start...

4 minutes read.

strcat() vs strncat() in C++

In this tutorial, we will explore about strcat() and strncat() in the most usable language C++. We will also look at the difference between them. strcat() C++ is a computer language with...

4 minutes read.