Desired capabilities in Selenium Webdriver

Selenium WebDriver is a popular tool used for automating web browsers. It provides a wide range of capabilities to interact with web elements and perform various actions on web applications. In this article, we will explore the concept of “Desired capabilities in Selenium Webdriver” in Selenium WebDriver using Java. We will discuss what desired capabilities are, why they are important, and provide examples to demonstrate their usage.

1. What are Desired capabilities in Selenium Webdriver?

Desired Capabilities Class in Selenium WebDriver allow us to customize the behavior of the browser during test automation. They are a set of key-value pairs that define various properties and settings for the WebDriver instance. By specifying desired capabilities, we can control aspects such as browser name, version, platform, proxy settings, timeouts, and more.

2. Why are Desired Capabilities Important?

Desired capabilities play a crucial role in WebDriver automation as they enable us to configure the browser environment according to our specific needs. They provide flexibility and control over the testing process, allowing us to target different browsers, versions, platforms, and network configurations. By leveraging desired capabilities, we can ensure that our tests run consistently across different environments.

Common Desired capabilities in Selenium Webdriver

1: Setting Browser Name and Version

In this example, we create a new DesiredCapabilities object and set the browser name to “chrome” and the version to “114.0.5735.134”. This configuration ensures that our tests run on Chrome version 114.0.5735.134.

2: Setting Platform and Browser Language

Here, we specify the platform as WINDOWS and set the language to English (United States). This allows us to target Windows-based systems with English language settings.

3: Setting Proxy Configuration

This example demonstrates how to configure a proxy for WebDriver. We create a Proxy object, set the proxy type as MANUAL, and specify the HTTP proxy server address. This can be useful when testing applications behind a firewall or accessing resources through a proxy server.

4: Setting Chrome Options

Here, we utilize ChromeOptions to customize the behavior of the Chrome browser. In this example, we set the “–start-maximized” argument, which maximizes the browser window when the WebDriver instance is launched.

5: Handling Unexpected Alerts

In some cases, web applications may trigger unexpected alerts or pop-ups during testing. By setting the UNEXPECTED_ALERT_BEHAVIOUR capability to ACCEPT, we instruct the WebDriver to automatically accept such alerts.

6: Setting Firefox Profile

In this example, we create a FirefoxProfile object and set a preference to disable the “beforeunload” event. This can be useful when handling confirmation dialogs that appear before leaving a web page.

7: Configuring Internet Explorer Capabilities

For Internet Explorer, we can configure specific capabilities to handle various browser settings. In this example, we set the IGNORE_ZOOM_SETTING capability to true, which ignores the browser’s zoom level during testing.

8: Setting Timeout and Page Load Strategy

Here, we specify the page load strategy as “none” and set the implicit timeout to 3000 milliseconds. This allows us to control how WebDriver waits for the page to load and handle timeouts appropriately.

9: Ignoring SSL Certificates

When testing websites with SSL certificates, we can use these capabilities to accept self-signed or insecure certificates. This helps in bypassing SSL-related warnings and errors.


Desired Capabilities in Selenium WebDriver provide a powerful mechanism to customize the browser environment for test automation. By using the examples discussed in this article, you can tailor the WebDriver instance according to your specific requirements. This flexibility allows for efficient and effective testing of web applications across different browsers, platforms, and configurations.

FAQs (Frequently Asked Questions)

1. What happens if a desired capabilities in selenium webdriver is not supported by the browser?

– If a desired capability is not supported by the browser, it will be ignored, and the browser will use its default settings.

2. Can I set multiple desired capabilities in selenium webdriver?

   – Yes, you can set multiple desired capabilities in selenium webdriver by chaining the `setCapability()` method for each capability.

3. Are desired capabilities only applicable to Selenium WebDriver with Java?

   – No, desired capabilities are available in Selenium WebDriver for multiple programming languages, including Java

Leave a Reply