Selenium-Specific Options

You can find out more about Selenium testing options in the DesiredCapabilities page of the SeleniumHQ wiki

Required Selenium Test Configuration Settings

Other Selenium Options

OptionDescriptionKeyValue TypeExample

Selenium Version

Allows you to choose the version of Selenium you want to use for your test.

For Firefox, the default version of Selenium when no value is specified depends on the version of Firefox.


Firefox VersionSelenium Version
Firefox 47Selenium 2.53.1 only
Firefox 46Selenium 2.51.0 2.52.0 2.53.0, 2.53.1
Firefox 44 - 45Selenium 2.48.0, 2.50.0, 2.51.0, 2.52.0, 2.53.0
Firefox 39 - 43Selenium 2.47.1, 2.48.0, 2.50.0, 2.51.0, 2.52.0, 2.53.0
Firefox 38Selenium 2.46.0
Firefox 32 - 37Selenium 2.45.0
Firefox 26 - 31Selenium 2.40.0
Firefox 23 - 25Selenium 2.35.0
Firefox 21 - 22Selenium 2.33.0
Firefox 20Selenium 2.31.0
Firefox 19Selenium 2.30.0
Firefox 17 - 18Selenium 2.29.0
Firefox 12 - 16Selenium 2.27.0
Firefox 11 and belowSelenium 2.18.0


"Marionette" replaces the Firefox driver in Firefox 48+. Its binary is called geckodriver (previously wires). The version we use depends on whether the job is Selenium 2 or 3:

  • For Selenium 2, the marionette (geckodriver) version is 0.9.0
  • For Selenium 3, the marionette (geckodriver) version is 0.11.1
  • For Firefox 53 and above, the marionette (geckodriver) version is 0.16.0
  • For Firefox 55 and above, the marionette (geckodriver) version is 0.18.0
  • For Firefox 57 and above, the marionette (geckodriver) version is 0.23.0

When testing with Chrome and Internet Explorer, Selenium Version is not used to determine the version of the ChromeDriver or IEDriver that is used. For these browsers you should set the driver version as described for the Chrome Driver Version and Internet Explorer Driver Version options.


seleniumVersionstring

"seleniumVersion": "2.46.0"

Chrome Driver Version

Sauce Labs supports the ChromeDriver version 1 series (i.e. 26.0.1383.0) and the version 2 series (i.e. 2.15). The default version of ChromeDriver when no value is specified depends on the version of Chrome

NOTE: This capability only applies to Desktop Chrome tests


Chrome VersionChrome Driver Version
Chrome 69-70ChromeDriver 2.43
Chrome 68ChromeDriver 2.41
Chrome 67ChromeDriver 2.40
Chrome 65-66ChromeDriver 2.38
Chrome 64ChromeDriver 2.37
Chrome 62-63ChromeDriver 2.34
Chrome 61ChromeDriver 2.32
Chrome 60ChromeDriver 2.29
Chrome 59ChromeDriver 2.29
Chrome 58ChromeDriver 2.29
Chrome 57ChromeDriver 2.28
Chrome 56ChromeDriver 2.28
Chrome 55ChromeDriver 2.28
Chrome 54

ChromeDriver 2.27

Chrome 53ChromeDriver 2.26
Chrome 52ChromeDriver 2.24
Chrome 51ChromeDriver 2.23
Chrome 46-50ChromeDriver 2.21
Chrome 40-45ChromeDriver 2.15
Chrome 37-39ChromeDriver 2.11
Chrome 33-36ChromeDriver 2.10
Chrome 31-32ChromeDriver 2.8
Chrome 29-30ChromeDriver 2.4
Chrome 28 and belowChromeDriver 26.0.1383.0



chromedriverVersionstring

"chromedriverVersion": "2.15"

 

  • 21.0.1180.0
  • 23.0.1240.0
  • 26.0.1383.0
    • 0.6
    • 0.7
    • 0.8
    • 0.9
    • 2.0
    • 2.1
    • 2.2
    • 2.3
    • 2.4
    • 2.5
    • 2.6
    • 2.7
    • 2.8
    • 2.9
    • 2.10
    • 2.11
    • 2.12
    • 2.13
    • 2.14
    • 2.15
    • 2.20
    • 2.21
    • 2.22
    • 2.23
    • 2.24
    • 2.26
    • 2.27
    • 2.28
    • 2.29
    • 2.30
    • 2.31
    • 2.32
    • 2.33
    • 2.34
    • 2.35
    • 2.36
    • 2.37
    • 2.38
    • 2.39
    • 2.40
    • 2.41
    • 2.43


Internet Explorer Driver Version

The Internet Explorer Driver defaults to version 2.53.1 when no version is specified.

Note that the versions of Internet Explorer Driver we have available correspond to major Selenium releases - we do not have all the minor point releases (e.g. 3.12.0.4) available.

We recommend setting the Selenium Version (see above) to correspond with the Internet Explorer Driver version you select.

Sauce Labs supports launching 64-bit IE on our 64-bit VMs: Windows 7, Windows 8, and Windows 8.1. This provides a workaround for two known Selenium issues:

  1. Using a 32 bit driver on a 64 bit operating system causes Selenium's screenshot feature to only capture the part of the page currently visible in the browser viewport Selenium Issue 5876.
  2. Using a 64 bit driver on a 64 bit operating system causes text entry to be extremely slow Selenium Issue 5516.
iedriverVersionstring

"iedriverVersion": "2.46.0"

  • x64_2.29.0
  • x64_2.39.0
  • x64_2.40.0
  • x64_2.41.0
  • x64_2.42.0
  • x64_2.43.0
  • x64_2.44.0
  • x64_2.45.0
  • x64_2.46.0
  • x64_2.48.0
  • 2.21.1
  • 2.21.2
  • 2.24.0
  • 2.25.3
  • 2.26.0
  • 2.28.0
  • 2.29.0
  • 2.30.1
  • 2.31.0
  • 2.32.2
  • 2.33.0
  • 2.34.0
  • 2.35.0
  • 2.35.1
  • 2.35.2
  • 2.35.3
  • 2.36.0
  • 2.37.0
  • 2.38.0
  • 2.39.0
  • 2.40.0
  • 2.41.0
  • 2.42.0
  • 2.43.0
  • 2.44.0
  • 2.45.0
  • 2.46.0
  • 2.48.0
  • 2.49.0
  • 2.50.0
  • 2.51.0
  • 2.52.0
  • 2.52.1
  • 2.52.2
  • 2.53.0
  • 2.53.1
  • 3.0.0
  • 3.1.0
  • 3.2.0
  • 3.3.0
  • 3.3.1
  • 3.4.0
  • 3.5.0
  • 3.5.1
  • 3.6.0
  • 3.7.0
  • 3.8.0
  • 3.9.0
  • 3.10.0
  • 3.11.0
  • 3.11.1
  • 3.12.0
  • 3.13.0
  • 3.14.0
  • 3.141.0

 



Appium-Specific Options 

You can find out more about more about Appium-specific options in  the Appium Server Capabilities page of the Appium.io website

Required Appium Test Configuration Settings

 

Other Appium Options


OptionDescriptionKeyValueExample

Appium Version

The version of the Appium driver you want to use. If not specified the test will run against the default Appium version. appiumVersionstringIt's better to specify the latest Appium version, which is the one suggested by the  Platform Configurator, unless you have a reason for testing against some other version.

Device Type

The type of device to emulate. Options are:

  • tablet
  • phone
deviceTypestring"deviceType": "tablet"

Device Orientation

The orientation in which the simulator/device will be rendered. Options are:

  •   portrait
  • landscape .
deviceOrientationstring"deviceOrientation": "portrait"

Automation Engine

The automation engine that will be used. Options are:

  • Appium 
  • UiAutomator2
  • Selendroid

The default is Appium.

automationNamestring"automationName": "UiAutomator2"

Application Package

For Android Only


The Java package of the Android app you want to run.appPackagestring

"appPackage": "com.example.android.myApp, com.android.settings"

Appium automatically determines the package to launch, you only need to use this desired capability if you want to specify a package different than the default one.



Android Activity

For Android Only


The name for the Android activity you want to launch from your package.appActivitystring

"appActivity": ".MainActivity"

This capability needs to be preceded by a . (dot). For example, .MainActivity instead of MainActivity .


 Appium automatically determines the activity to launch, you only need to use this desired capability if you want to specify an activity different than the default one.  




General Options

These options can be set for both Selenium and Appium Tests.

Alerts

OptionDescriptionKeyValue TypeExample

Auto Accept Alerts

For iOS Only


Setting this option will automatically accept any unexpected browser alerts that come up during your test, such as when Safari pops up the alert "Safari would like to use your current location (Don't Allow | Allow)."autoAcceptAlertsboolean"autoAcceptAlerts": true

Test Annotation

You can add these annotations to your tests to make them easier to track and identify. 


OptionDescriptionKeyValue TypeExample

Test Names

Used to record test names for jobs and make it easier to find individual tests
name
string

"name" : "my example name"

Build Numbers

Used to associate jobs with a build number or app version, which is then displayed on both the Dashboard and Archives viewbuildstring"build": "build-1234"

Tagging

User-defined tags for grouping and filtering jobs in the Dashboard and Archives viewtagslist"tags": ["tag1","tag2","tag3"]

Pass/Fail Status

Selenium and Appium handle sending commands to control a browser or app, but don't report to the server whether a test passed or failed. To record pass/fail status on Sauce, set the passed flag on the job. Since you can't know in advance whether a test passed or failed, this flag can't be set in the initial configuration.

passedboolean"passed": "true"

Custom Data

User-defined custom data that will accept any valid JSON object, limited to 64KB in size.custom-dataobject
"custom-data": {"release": "1.0", 
                "commit": "0k392a9dkjr", 
                "staging": true, 
                "execution_number": 5, 
                "server": "test.customer.com"}


Timeouts


OptionDescriptionKeyValue TypeExample

Maximum Test Duration

As a safety measure to prevent tests from running indefinitely, Sauce limits the duration of tests to 30 minutes by default. You can adjust this limit on per-job basis and the maximum value is 10800 seconds.

A test should never last more than 30 minutes and ideally should take less than five minutes. The 3 hour maximum exists mainly to ease the transition of new users migrating long running tests to Sauce Labs.
 
While our test VMs respect the maxDuration desired capability when it's set in tests, it may not always be precise. Tests will never be timed out before their maxDuration has elapsed and in most cases, they will be timed out very shortly after their maxDuration has elapsed (usually less than 1 second). But, in some rare cases, such as when the test VM is suffering performance problems, they can be allowed to run longer (30 seconds or more).



maxDurationinteger"maxDuration": 1800

Command Timeout

As a safety measure to prevent Selenium crashes from making your tests run indefinitely, Sauce limits how long Selenium can take to run a command in our browsers. This is set to 300 seconds by default. The value of this setting is given in seconds. The maximum command timeout value allowed is 600 seconds.commandTimeoutinteger"commandTimeout": 300

Idle Test Timeout

As a safety measure to prevent tests from running too long after something has gone wrong, Sauce limits how long a browser can wait for a test to send a new command. This is set to 90 seconds by default and limited to a maximum value of 1000 seconds. You can adjust this limit on a per-job basis. The value of this setting is given in seconds.idleTimeoutinteger"idleTimeout": 90



Sauce Testing Options



OptionDescriptionKeyValue TypeExample

Version (Browser)

If this capability is null, an empty string, or omitted altogether, the latest version of the browser will be used automatically.versionstring or integer"version": "35"

Pre-run Executables

You can provide a URL to an executable file, which will be downloaded and executed to configure the VM before the test starts. For faster performance, you may want to upload the executable to temporary Sauce storage. This capability takes a JSON object with four main keys. Check out the topics under Using Pre-Run Executables to Configure Browsers and Virtual Machines for more information.

If you want to run an AutoIt script during your test, compile it as an exe, send it using this capability, and set  background  to  true  to allow AutoIt to continue running throughout the full duration of your test. 


If you need to send multiple pre-run executables, the best way is to bundle them into a single executable file, such as a self-extracting zip file.


prerun

(primary key)

 

"prerun": { "executable": "http://url.to/your/executable.exe", "args": [ "--silent", "-a", "-q" ], "background": false, "timeout": 120 }

If a single string is sent as the    prerun    capability rather than a JSON object, this string is considered to be the URL to the executable, and the executable launches with background set to false .



 The URL to the executable you want to run before your browser session starts.

executable

(secondary key)

  
 

A list of the command line parameters that you want the executable to receive. Valid arguments are:

--silent or /SInstalls the script silently without raising any dialogs
-aAdd switches to the command line of the underlying setup.exe process
-q  Like --silent , installs the script without raising any dialogs 


args

(secondary key)

  
 A boolean that defines whether Sauce should wait for this executable to finish before your browser session starts. If background isn't set or is set to  false , Sauce will wait for up to 90 seconds for the executable to finish. At that point, the browser will start and your test will proceed.

background

(secondary key)

  
 The number of seconds Sauce will wait for your executable to finish before your browser session starts. If timeout isn't set, Sauce will wait for up to 90 seconds for the executable to finish.  timeout  is capped at 360 seconds and won't apply if  background  is set to  true.

timeout

(secondary key)

  

Identified Tunnels

If you are using Sauce Connect Proxy to to test an application that is behind a firewall or on your local machine, you must provide the identifier of the Sauce Connect tunnel to use. Check out Basic Sauce Connect Proxy Setup for more information. tunnelIdentifierstring"tunnelIdentifier": "MyTunnel01"

Shared Tunnels

This desired capability will let the test job use any shared tunnels available from the specified parent account. i.e. any account that is upstream in the hierarchy. If using a shared tunnel, you must specify both tunnelIdentifier and parentTunnel. Check out the topic Using Multiple Sauce Connect Tunnels for more information.parentTunnelstring"tunnelIdentifier": "ParentTunnelName" "parentTunnel": "<username of parent>"

Specifying the Screen Resolution

This setting specifies which screen resolution should be used during the test session. This feature is available in:

  • Windows 7 (except Windows 7 with IE 9)
  • Windows 8 
  • Windows 8.1
  • Windows 10
  • 800x600
  • 1024x768
  • 1152x864
  • 1280x768
  • 1280x800
  • 1280x960
  • 1280x1024
  • 1440x900
  • 1600x1200
  • 1680x1050
  • 1920x1080
  • 1920x1200
  • 2560x1600


  • 800x600
  • 1024x768
  • 1152x864
  • 1280x768
  • 1280x800
  • 1280x960
  • 1280x1024
  • 1400x1050
  • 1440x900
  • 1600x1200
  • 1680x1050
  • 1920x1080
  • 1920x1200
  • 2560x1600

 

  • OS X 10.9
  • OS X 10.10
  • OS X 10.11
  • macOS 10.2
  • 800x600
  • 1024x768
  • 1152x720
  • 1152x864
  • 1152x900
  • 1280x720
  • 1280x768
  • 1280x800
  • 1280x960
  • 1280x1024
  • 1376x1032
  • 1440x900
  • 1600x900
  • 1600x1200
  • 1680x1050
  • 1920x1080
  • 1920x1200
  • 2048x1152
  • 2048x1536


  • 800x600
  • 1024x768
  • 1152x720
  • 1152x864
  • 1152x900
  • 1280x720
  • 1280x768
  • 1280x800
  • 1280x960
  • 1280x1024
  • 1376x1032
  • 1440x900
  • 1600x900
  • 1600x1200
  • 1680x1050
  • 1920x1080
  • 1920x1200
  • 1920x1440
  • 2048x1152
  • 2048x1536


  • 1024x768
  • 1152x864
  • 1280x960
  • 1376x1032
  • 1600x1200
  • 1920x1440
  • 2048x1536


  • 1024x768
  • 1152x864
  • 1280x960
  • 1376x1032
  • 1400x1050
  • 1600x1200
  • 1920x1440
  • 2048x1536
  • 2360x1770

Default screen resolution for Sauce tests when not specified is 1024x768.

screenResolutionstring"screenResolution": "1280x1024"

Custom Time Zones

 

 

Desktop Test VMs can be configured with custom time zones. This feature should work on all operating systems, however time zones on Windows VMs are approximate. They will default to the time zone that the provided location falls into. You can find a complete list of timezones on Wikipedia. Underscores should be replaced with spaces. Sauce takes only location names (not their paths), as shown in the example below.timeZonestring"timeZone": "Los Angeles" 
"timeZone": "Honolulu" 
"timeZone": "Alaska" 
"timeZone": "New_York" 

Avoiding the Selenium Proxy

By default, Sauce routes traffic from some WebDriver browsers (Edge, Internet Explorer and Safari) through the Selenium HTTP proxy server so that HTTPS connections with self-signed certificates work everywhere. The Selenium proxy server can cause problems for some users. If that's the case for you, you can configure Sauce to avoid using the proxy server and have browsers communicate directly with your servers.

Firefox and Google Chrome under WebDriver aren't affected by this flag as they handle invalid certificates automatically and there isn't a need to proxy through Selenium. 


This flag is incompatible with Sauce Connect Proxy.


avoidProxyboolean"avoidProxy": true

Job Visibility

Sauce Labs supports several test result visibility levels, which control who can view the test details. The visibility level for a test can be set manually from the test results page, but also programatically when starting a test or with our REST API. For more information about sharing test result, see the topics under Sharing the Results of Sauce Labs Tests.

Available visibility levels are:

  
publicMaking your test public means that it is accessible to everyone, and may be listed on public web pages and indexed by search engines.
public restrictedIf you want to share your job's result page and video, but keep the logs only for you, you can certainly do so with public restricted visiblity mode. This visibility mode will hide the fancy job log as well as prohibit access to the raw Selenium log, so that anonymous users with the link will be able to watch the video and screen shots but won't be able to see what's being typed and done to get there.shareYou can also decide to make your test sharable. Making your test sharable means that it is only accessible to people having valid link and it is not listed on publicly available pages on saucelabs.com or indexed by search engines.
teamIf you want to share your jobs with other team members (that were created as a sub-accounts of one parent account), you can use team visiblity mode. Making your test acessible by team means that it is only accessible to people under the same root account as you.
privateIf you don't want to share your test's result page and video with anyone, you should use private job visibility mode. This way, only you (the owner) will be able to view assets and test result page.


publicstring
"public": "public"



Optional Sauce Testing Features

By default, Sauce Labs captures screenshot and video of your tests. You can disable these and other optional test features. 



OptionDescriptionKeyValueExample

Disable video recording

By default, Sauce records a video of every test you run. This is generally handy for debugging failing tests, as well as having a visual confirmation that certain feature works (or still works!) However, there is an added wait time for screen recording during a test run.


recordVideo
boolean
"recordVideo": false

Disable video upload for passing tests

As an alternative to disabling video recording, the  videoUploadOnPass  setting will let you discard videos for passing tests identified using the passed  setting. This disables video post-processing and uploading that may otherwise consume some extra time after your test is complete.videoUploadOnPassboolean"videoUploadOnPass": false

Disable step-by-step screenshots

Sauce captures step-by-step screenshots of every test you run. Most users find it very useful to get a quick overview of what happened without having to watch the complete video. However, this feature may add some extra time to your tests. You can avoid this by optionally turning off this feature.recordScreenshotsboolean"recordScreenshots": false

Disable log recording

By default, Sauce creates a log of all the actions that you execute to create a report for the test run that lets you troubleshoot test failures more easily.

This option only disables recording of the log.json file. The selenium-server.log will still be recorded even if you choose to disable recording of the log.json.


recordLogsboolean"recordLogs": false

Enable HTML source capture

In the same way Sauce captures step-by-step screenshots, we can capture the HTML source at each step of a test. This feature is disabled by default, but you can turn it on any time and find the HTML source captures on your job result page.captureHtmlboolean"captureHtml": true

Prioritize Jobs

If you have multiple new jobs waiting to start, for example across a collection of sub-accounts, jobs with a lower priority number take precedence over jobs with a higher number. So, for example, if you have multiple jobs simultaneously waiting to start, we'll first attempt to find resources to start all the jobs with priority 0, then all the jobs with priority 1, etc. When we run out of available virtual machines, or when you hit your concurrency limit, any jobs not yet started will wait. Within each priority level, jobs that have been waiting the longest take precedence.priorityinteger"priority": 0

Enable WebDriver's automatic screen shots

Selenium WebDriver captures automatic screenshots for every server side failure, for example if an element is not found. Sauce disables this by default to reduce network traffic during tests, resulting in a considerable performance improvement in most tests. You can enable this feature, but keep in mind that it may be detrimental to the performance of your jobs. webdriverRemoteQuietExceptionsboolean"webdriverRemoteQuietExceptions": false
Enable Extended DebuggingExtended debugging records HAR files for some browsers, as well as console.json logs. These are extremely valuable for debugging flaky tests. Default value is false.extendedDebuggingboolean"extendedDebugging": true