Introduction to Desired Capabilities
Estimated reading time: 3 minutes
Desired Capabilities are key/value pairs that tell the browser properties such as browser name, browser version, the path of the browser driver in the system, etc. to determine the browsers' behaviors at runtime. Desired capabilities which can be used to configure such additional driver instances as FirefoxDriver, ChromeDriver, InternetExplorerDriver, Selenium WebDriver are useful in the following cases:
- Setting the browser and device properties in mobile testing
- Adding extra settings to browsers in web testing
Katalon Studio allows you to define these Desired Capabilities in Project Settings.
Understand the Settings
You need to identify which environment you want to customize its behaviors before defining desired capabilities in a Katalon project. Below is the list of supported environments as well as their locations in project settings:
- Define Desired Capabilities for execution on a remote web server.
- Project > Settings > Desired Capabilities > Remote.
- Define Desired Capabilities for execution on WinAppDriver.
- Project > Settings > Desired Capabilities > Windows.
- Define a custom option for execution.
- Project > Settings > Desired Capabilities > Custom.
If you want to make a list of your own custom Desired Capabilities for some environments, then it's suggested to use 'Custom' settings in this case.
- Define Desired Capabilities for local execution using Chrome, Firefox, IE, Safari, or Edge.
- Project > Settings > Desired Capabilities > WebUI > Chrome/Firefox/IE/Safari/Edge.
WebUI- Headless Browsers
- Define Desired Capabilities for execution with a headless instance using Chrome or Firefox.
- Project > Settings > Desired Capabilities > WebUI >Chrome (Headless)/Firefox (Headless).
- Define Desired Capabilities for execution with Android or iOS devices.
- Project > Settings > Desired Capabilities > Mobile > Android/iOS.
Configure Desired Capabilities in Katalon Studio
After selecting the environment, you can manage its desired capabilities with:
- Add: to add a new row to the Desired Capabilities list.
- Provide the name of the property that you'd like to configure and its type.
- Define value for the property. Refer to Value Types for details regarding how to input value for different types.
- Delete: to delete selected records.
- Clear: to clear all existing records.
Desired Capabilities for Mobile testing
You need to select the device when configuring Desired Capabilities.
- Device Name: the device to apply Desired Capabilities settings on.
Desired Capabilities for Custom Execution
Custom execution is slightly different from other execution settings. Follow these steps to create a custom execution with its desired capabilities:
Click Add on the command toolbar to add a custom execution to the custom execution list.
Change the name if needed, then click on the More icon under the Value column.
In the Custom Execution Configuration Builder dialog, specify the Driver Name for your custom execution.
You can have at most one web driver and one mobile driver here since there may be a potential conflict if you use multiple web or mobile drivers in the same test execution.
Click on the More icon under the Preferences column.
The Driver Builder dialog is displayed for you to set desired capabilities for the selected Driver. The steps to add new Desired Capabilities here is similar to other settings above. Click OK when you finish.
Location of Desired Capabilities files
Defined configuration settings are saved in separated files under the "
\settings\internal" location (or " \settings\external\execution" in case of custom execution), as below:
Driver Settings' file Chrome com.kms.katalon.core.webui.chrome.properties Firefox com.kms.katalon.core.webui.firefox.properties IE com.kms.katalon.core.webui.ie.properties Safari com.kms.katalon.core.webui.safari.properties Edge com.kms.katalon.core.webui.edge.properties Remote Web com.kms.katalon.core.webui.remote.properties Android com.kms.katalon.core.mobile.android.properties iOS com.kms.katalon.core.mobile.ios.properties
Please refer to the specific guide below for the your preferred environment: