@wdio/types 9.0.0-alpha.9 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import type { WebdriverIO as WebDriverIOOptions, Connection as ConnectionOptions } from './Options.js';
1
+ import type { WebDriver as WebDriverOptions, WebdriverIO as WebDriverIOOptions, Connection as ConnectionOptions } from './Options.js';
2
2
  type JSONLike = {
3
3
  [property: string]: JSONLike;
4
4
  } | readonly JSONLike[] | string | number | boolean | null;
@@ -82,45 +82,178 @@ export interface W3CCapabilities {
82
82
  alwaysMatch: WebdriverIO.Capabilities;
83
83
  firstMatch: WebdriverIO.Capabilities[];
84
84
  }
85
- export type RemoteCapabilities = (DesiredCapabilities | W3CCapabilities)[] | MultiRemoteCapabilities | MultiRemoteCapabilities[];
86
- export interface MultiRemoteCapabilities {
87
- [instanceName: string]: WebDriverIOOptions;
85
+ export type RequestedStandaloneCapabilities = W3CCapabilities | WebdriverIO.Capabilities;
86
+ export type RequestedMultiremoteCapabilities = {
87
+ [instanceName: string]: WebDriverIOOptions & WithRequestedCapabilities;
88
+ };
89
+ /**
90
+ * Configuration object for the `webdriver` package
91
+ */
92
+ export type RemoteConfig = WebDriverOptions & WithRequestedCapabilities;
93
+ /**
94
+ * Configuration object for the `webdriverio` package
95
+ */
96
+ export type WebdriverIOConfig = WebDriverIOOptions & WithRequestedCapabilities;
97
+ export type WebdriverIOMultiremoteConfig = WebDriverIOOptions & {
98
+ capabilities: RequestedMultiremoteCapabilities;
99
+ };
100
+ /**
101
+ * A type referencing all possible capability types when using Testrunner
102
+ * e.g. everything a user can provide in the `capabilities` property
103
+ */
104
+ export type TestrunnerCapabilities = RequestedStandaloneCapabilities[] | RequestedMultiremoteCapabilities | RequestedMultiremoteCapabilities[];
105
+ /**
106
+ * The capabilities that will be resolved within a worker instance, e.g. either
107
+ * a single set of capabilities or a single multiremote instance
108
+ */
109
+ export type ResolvedTestrunnerCapabilities = WebdriverIO.Capabilities | Record<string, WebdriverIO.Capabilities>;
110
+ /**
111
+ * The `capabilities` property is a required property when using the `remote` method.
112
+ */
113
+ export interface WithRequestedCapabilities {
114
+ /**
115
+ * Defines the capabilities you want to run in your WebDriver session. Check out the
116
+ * documentation on [Capabilities](https://webdriver.io/docs/capabilities) for more details.
117
+ *
118
+ * @example
119
+ * ```js
120
+ * // WebDriver session
121
+ * const browser = remote({
122
+ * capabilities: {
123
+ * browserName: 'chrome',
124
+ * browserVersion: 86
125
+ * platformName: 'Windows 10'
126
+ * }
127
+ * })
128
+ *
129
+ * // multiremote session
130
+ * const browser = remote({
131
+ * capabilities: {
132
+ * browserA: {
133
+ * browserName: 'chrome',
134
+ * browserVersion: 86
135
+ * platformName: 'Windows 10'
136
+ * },
137
+ * browserB: {
138
+ * browserName: 'firefox',
139
+ * browserVersion: 74
140
+ * platformName: 'Mac OS X'
141
+ * }
142
+ * }
143
+ * })
144
+ * ```
145
+ */
146
+ capabilities: RequestedStandaloneCapabilities;
88
147
  }
89
- export type RemoteCapability = DesiredCapabilities | W3CCapabilities | MultiRemoteCapabilities;
90
148
  /**
91
- * @deprecated use `WebdriverIO.Capabilities` instead
149
+ * The `capabilities` property is a required property when defining a testrunner configuration.
92
150
  */
93
- export interface DesiredCapabilities extends WebdriverIO.Capabilities, SauceLabsCapabilities, SauceLabsVisualCapabilities, TestingbotCapabilities, SeleniumRCCapabilities, GeckodriverCapabilities, IECapabilities, AppiumAndroidCapabilities, AppiumCapabilities, VendorExtensions, GridCapabilities, ChromeCapabilities, BrowserStackCapabilities, AppiumXCUITestCapabilities, LambdaTestCapabilities {
94
- cssSelectorsEnabled?: boolean;
95
- handlesAlerts?: boolean;
96
- version?: string;
97
- platform?: string;
98
- public?: any;
99
- loggingPrefs?: {
100
- browser?: LoggingPreferences;
101
- driver?: LoggingPreferences;
102
- server?: LoggingPreferences;
103
- client?: LoggingPreferences;
104
- };
105
- javascriptEnabled?: boolean;
106
- databaseEnabled?: boolean;
107
- locationContextEnabled?: boolean;
108
- applicationCacheEnabled?: boolean;
109
- browserConnectionEnabled?: boolean;
110
- webStorageEnabled?: boolean;
111
- acceptSslCerts?: boolean;
112
- rotatable?: boolean;
113
- nativeEvents?: boolean;
114
- unexpectedAlertBehaviour?: string;
115
- elementScrollBehavior?: number;
116
- 'webdriver.remote.sessionid'?: string;
117
- 'webdriver.remote.quietExceptions'?: boolean;
118
- 'selenium.server.url'?: string;
119
- specs?: string[];
120
- exclude?: string[];
121
- excludeDriverLogs?: string[];
151
+ export interface WithRequestedTestrunnerCapabilities {
152
+ /**
153
+ * Defines a set of capabilities you want to run in your WebDriver session. Check out the
154
+ * documentation on [Capabilities](https://webdriver.io/docs/capabilities) for more details.
155
+ *
156
+ * @example
157
+ * ```js
158
+ * // wdio.conf.js
159
+ * export const config = {
160
+ * // define parallel running capabilities
161
+ * capabilities: [{
162
+ * browserName: 'safari',
163
+ * platformName: 'MacOS 10.13',
164
+ * ...
165
+ * }, {
166
+ * browserName: 'microsoftedge',
167
+ * platformName: 'Windows 10',
168
+ * ...
169
+ * }, {
170
+ * // using alwaysMatch and firstMatch
171
+ * alwaysMatch: {
172
+ * browserName: 'chrome',
173
+ * browserVersion: 86
174
+ * // ...
175
+ * },
176
+ * firstMatch: [{
177
+ * browserName: 'chrome',
178
+ * // ...
179
+ * }]
180
+ * }
181
+ * ```
182
+ */
183
+ capabilities: RequestedStandaloneCapabilities[];
122
184
  }
123
- export interface VendorExtensions extends EdgeCapabilities, AppiumCapabilities, WebdriverIOCapabilities, WebdriverIO.WDIOVSCodeServiceOptions {
185
+ /**
186
+ * The `capabilities` property is a required property when using the `remote` method to initiate a multiremote session.
187
+ */
188
+ export interface WithRequestedMultiremoteCapabilities {
189
+ /**
190
+ * Defines the capabilities for each Multiremote client. Check out the
191
+ * documentation on [Capabilities](https://webdriver.io/docs/capabilities) for more details.
192
+ *
193
+ * @example
194
+ * ```
195
+ * // wdio.conf.js
196
+ * export const config = {
197
+ * // multiremote example
198
+ * capabilities: {
199
+ * browserA: {
200
+ * browserName: 'chrome',
201
+ * browserVersion: 86
202
+ * platformName: 'Windows 10'
203
+ * },
204
+ * browserB: {
205
+ * browserName: 'firefox',
206
+ * browserVersion: 74
207
+ * platformName: 'Mac OS X'
208
+ * }
209
+ * }
210
+ * })
211
+ * ```
212
+ * // or with parallel multiremote sessions
213
+ * ```
214
+ * // wdio.conf.js
215
+ * export const config = {
216
+ * capabilities: [{
217
+ * browserA: {
218
+ * port: 4444,
219
+ * capabilities: {
220
+ * browserName: 'chrome',
221
+ * browserVersion: 86
222
+ * platformName: 'Windows 10'
223
+ * }
224
+ * },
225
+ * browserB: {
226
+ * port: 4444,
227
+ * capabilities: {
228
+ * browserName: 'firefox',
229
+ * browserVersion: 74
230
+ * platformName: 'Mac OS X'
231
+ * }
232
+ * }
233
+ * }, {
234
+ * browserA: {
235
+ * port: 4444,
236
+ * capabilities: {
237
+ * browserName: 'chrome',
238
+ * browserVersion: 86
239
+ * platformName: 'Windows 10'
240
+ * }
241
+ * },
242
+ * browserB: {
243
+ * port: 4444,
244
+ * capabilities: {
245
+ * browserName: 'firefox',
246
+ * browserVersion: 74
247
+ * platformName: 'Mac OS X'
248
+ * }
249
+ * }
250
+ * }]
251
+ * })
252
+ * ```
253
+ */
254
+ capabilities: RequestedMultiremoteCapabilities | RequestedMultiremoteCapabilities[];
255
+ }
256
+ export interface VendorExtensions extends EdgeCapabilities, AppiumCapabilities, WebdriverIOCapabilities, WebdriverIO.WDIOVSCodeServiceOptions, AppiumXCUITestCapabilities, AppiumAndroidCapabilities {
124
257
  'selenoid:options'?: SelenoidOptions;
125
258
  'moon:options'?: MoonOptions;
126
259
  'tb:options'?: TestingbotCapabilities;
@@ -143,7 +276,6 @@ export interface VendorExtensions extends EdgeCapabilities, AppiumCapabilities,
143
276
  'goog:chromeOptions'?: ChromeOptions;
144
277
  'moz:firefoxOptions'?: FirefoxOptions;
145
278
  'moz:debuggerAddress'?: string | number;
146
- firefox_profile?: string;
147
279
  'ms:edgeOptions'?: MicrosoftEdgeOptions;
148
280
  'ms:edgeChromium'?: MicrosoftEdgeOptions;
149
281
  'ms:experimental-webdriver'?: boolean;
@@ -155,10 +287,6 @@ export interface VendorExtensions extends EdgeCapabilities, AppiumCapabilities,
155
287
  * Selenium 4.0 Specific
156
288
  */
157
289
  'se:cdp'?: string;
158
- /**
159
- * @deprecated
160
- */
161
- testobject_api_key?: string;
162
290
  }
163
291
  export interface WebdriverIOCapabilities {
164
292
  /**
@@ -173,33 +301,22 @@ export interface WebdriverIOCapabilities {
173
301
  * Maximum number of total parallel running workers (per capability)
174
302
  */
175
303
  'wdio:maxInstances'?: number;
176
- /**
177
- * Maximum number of total parallel running workers (per capability)
178
- * @deprecated please use `wdio:maxInstances` instead
179
- */
180
- maxInstances?: number;
181
304
  /**
182
305
  * Define specs for test execution. You can either specify a glob
183
306
  * pattern to match multiple files at once or wrap a glob or set of
184
307
  * paths into an array to run them within a single worker process.
185
308
  */
186
309
  'wdio:specs'?: string[];
187
- /**
188
- * Define specs for test execution. You can either specify a glob
189
- * pattern to match multiple files at once or wrap a glob or set of
190
- * paths into an array to run them within a single worker process.
191
- * @deprecated please use `wdio:specs` instead
192
- */
193
- specs?: string[];
194
310
  /**
195
311
  * Exclude specs from test execution.
196
312
  */
197
313
  'wdio:exclude'?: string[];
198
314
  /**
199
- * Exclude specs from test execution.
200
- * @deprecated please use `wdio:exclude` instead
315
+ * If flag is set to `true` WebdriverIO will not automatically opt-in
316
+ * to the WebDriver BiDi protocol. This is useful if you want to use
317
+ * the WebDriver protocol only.
201
318
  */
202
- exclude?: string[];
319
+ 'wdio:enforceWebDriverClassic'?: boolean;
203
320
  }
204
321
  export interface ChromeOptions {
205
322
  /**
@@ -312,16 +429,6 @@ export type FirefoxLogLevels = 'trace' | 'debug' | 'config' | 'info' | 'warn' |
312
429
  export interface FirefoxLogObject {
313
430
  level: FirefoxLogLevels;
314
431
  }
315
- export interface GeckodriverCapabilities {
316
- 'firefox_binary'?: string;
317
- firefoxProfileTemplate?: string;
318
- captureNetworkTraffic?: boolean;
319
- addCustomRequestHeaders?: boolean;
320
- trustAllSSLCertificates?: boolean;
321
- changeMaxConnections?: boolean;
322
- profile?: string;
323
- pageLoadingStrategy?: string;
324
- }
325
432
  export interface FirefoxOptions {
326
433
  debuggerAddress?: string;
327
434
  binary?: string;
@@ -362,20 +469,11 @@ export interface MoonOptions extends SelenoidOptions {
362
469
  };
363
470
  logLevel?: string;
364
471
  }
365
- export interface GridCapabilities {
366
- seleniumProtocol?: string;
367
- maxInstances?: number;
368
- environment?: string;
369
- }
370
472
  export interface EdgeCapabilities {
371
473
  'ms:inPrivate'?: boolean;
372
474
  'ms:extensionPaths'?: string[];
373
475
  'ms:startPage'?: string;
374
476
  }
375
- export interface ChromeCapabilities {
376
- chromeOptions?: ChromeOptions;
377
- mobileEmulationEnabled?: boolean;
378
- }
379
477
  /**
380
478
  * Appium General W3C Capabilities
381
479
  *
@@ -438,6 +536,7 @@ export interface AppiumCapabilities {
438
536
  'appium:newCommandTimeout'?: number;
439
537
  'appium:language'?: string;
440
538
  'appium:locale'?: string;
539
+ 'appium:animationCoolOffTimeout'?: number;
441
540
  /**
442
541
  * iOS Unique Device Identifier
443
542
  */
@@ -715,324 +814,503 @@ export interface AppiumXCUIProcessArguments {
715
814
  export interface AppiumXCUICommandTimeouts {
716
815
  [key: string]: any;
717
816
  }
718
- export interface IECapabilities {
719
- 'ie.forceCreateProcessApi'?: boolean;
720
- 'ie.browserCommandLineSwitches'?: string;
721
- 'ie.usePerProcessProxy'?: boolean;
722
- 'ie.ensureCleanSession'?: boolean;
723
- 'ie.setProxyByServer'?: boolean;
724
- 'ie.fileUploadDialogTimeout'?: number;
725
- 'ie.edgechromium'?: boolean;
726
- 'ie.edgepath'?: string;
727
- ignoreProtectedModeSettings?: boolean;
728
- ignoreZoomSetting?: boolean;
729
- initialBrowserUrl?: string;
730
- enablePersistentHover?: boolean;
731
- enableElementCacheCleanup?: boolean;
732
- requireWindowFocus?: boolean;
733
- browserAttachTimeout?: number;
734
- logFile?: string;
735
- logLevel?: string;
736
- host?: string;
737
- extractPath?: string;
738
- silent?: string;
739
- killProcessesByName?: boolean;
740
- }
741
817
  /**
742
818
  * see also https://docs.saucelabs.com/dev/test-configuration-options
743
819
  */
744
820
  export interface SauceLabsCapabilities {
745
821
  /**
746
- * Used to record test names for jobs and make it easier to find individual tests.
822
+ * Desktop Browser Capabilities: Sauce-Specific Optional
823
+ * see https://docs.saucelabs.com/dev/test-configuration-options/#desktop-browser-capabilities-sauce-specific--optional
747
824
  */
748
- name?: string;
749
825
  /**
750
- * Used to associate jobs with a build number or app version, which is then displayed
751
- * on both the Dashboard and Archives view
826
+ * Allows you to specify the ChromeDriver version you want to use for your tests.
827
+ * The default version of ChromeDriver when no value is specified depends on the version of Chrome used.
828
+ * As of Chrome 73, the major version of the driver and the browser must match.
752
829
  *
753
- * @example `build-1234`
830
+ * Desktop Virtual Devices only.
831
+ *
832
+ * For a list of ChromeDriver versions, see chromedriver versions list.
833
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#chromedriverversion
834
+ * @see https://chromedriver.storage.googleapis.com/index.html
754
835
  */
755
- build?: string | number;
836
+ chromedriverVersion?: string;
756
837
  /**
757
- * User-defined tags for grouping and filtering jobs in the Dashboard and Archives view.
758
- * @example
759
- * ```
760
- * ["tag1", "tag2", "tag3"]
761
- * ```
838
+ * Specifies the Microsoft Edge driver version you want to use for your tests.
839
+ *
840
+ * Desktop Virtual Devices only.
841
+ *
842
+ * For a list of edgedriver versions, see the Microsoft Edge Driver website.
843
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#edgedriverversion
844
+ * @see https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
762
845
  */
763
- tags?: string[];
846
+ edgedriverVersion?: string;
764
847
  /**
765
- * User-defined custom data that will accept any valid JSON object, limited to 64KB in size.
766
- * @example
767
- * ```
768
- * {
769
- * "release": "1.0",
770
- * "commit": "0k392a9dkjr",
771
- * "staging": true,
772
- * "execution_number": 5,
773
- * "server": "test.customer.com"
774
- * }
775
- * ```
848
+ * Specifies the Firefox GeckoDriver version.
849
+ * The default geckodriver version varies based on the version of Firefox specified.
850
+ *
851
+ * Desktop Virtual Devices only.
852
+ *
853
+ * For a list of geckodriver versions and the Firefox versions they support, see geckodriver Supported Platforms.
854
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#geckodriverversion
855
+ * @see https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html
776
856
  */
777
- 'custom-data'?: any;
857
+ geckodriverVersion?: string;
778
858
  /**
779
- * If you are using Sauce Connect Proxy to to test an application that is behind a firewall
780
- * or on your local machine, you must provide the identifier of the Sauce Connect tunnel to
781
- * use. Check out [Basic Sauce Connect Proxy Setup](https://wiki.saucelabs.com/display/DOCS/Basic+Sauce+Connect+Proxy+Setup) for more information.
859
+ * Specifies the Internet Explorer Driver version. If no version is specified, it defaults to 2.53.1.
860
+ *
861
+ * Desktop Virtual Devices only.
862
+ *
863
+ * For a list of IE Driver versions, see Internet Explorer Driver Server CHANGELOG.
864
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#iedriverversion
865
+ * @see https://raw.githubusercontent.com/SeleniumHQ/selenium/trunk/cpp/iedriverserver/CHANGELOG
782
866
  */
783
- tunnelIdentifier?: string;
867
+ iedriverVersion?: string;
784
868
  /**
785
- * This desired capability will let the test job use any shared tunnels available from the
786
- * specified parent account. i.e. any account that is upstream in the hierarchy. __If using a
787
- * shared tunnel, you must specify both tunnelIdentifier and parentTunnel__. Check out the
788
- * topic Using [Sauce Connect Tunnel Identifiers](https://wiki.saucelabs.com/display/DOCS/Using+Sauce+Connect+Tunnel+Identifiers) for more information.
869
+ * Specifies the Selenium version you want to use for your test.
870
+ * Sauce Labs will default to different versions, depending on the age of the browser and platform,
871
+ * and whether or not you're initializing a session with valid W3C syntax.
872
+ *
873
+ * Desktop Virtual Devices only.
874
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#seleniumversion
789
875
  */
790
- parentTunnel?: string;
876
+ seleniumVersion?: string;
791
877
  /**
792
- * This setting specifies which screen resolution should be used during the test session.
878
+ * Allows the browser to communicate directly with servers without going through a proxy.
879
+ * By default, Sauce routes traffic from Internet Explorer and Safari through an HTTP proxy server
880
+ * so that HTTPS connections with self-signed certificates will work.
793
881
  *
794
- * @example `1280x1024`
882
+ * The proxy server can cause problems for some users, and this setting allows you to avoid it.
883
+ *
884
+ * Any test run with a Sauce Connect tunnel has to use the proxy and this flag will be ignored.
885
+ *
886
+ * Desktop Virtual Devices only.
887
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#avoidproxy
795
888
  */
796
- screenResolution?: string;
889
+ avoidProxy?: boolean;
797
890
  /**
798
- * Desktop Test VMs can be configured with custom time zones. This feature should work on all operating
799
- * systems, however time zones on Windows VMs are approximate. The time zone will usually default to
800
- * whatever local time zone is on your selected data center, but this cannot be guaranteed. You can
801
- * find a complete list of timezones on Wikipedia. If the timeZone name has two or more or words
802
- * (e.g., Los Angeles), you'll need to separate the words with either a space or an underscore. Sauce
803
- * takes only location names (not their paths), as shown in the example below.
891
+ * Enables Extended Debugging features. This applies to Firefox and Chrome only.
892
+ * It records HAR files and console logs for both of these browsers.
893
+ * In Chrome, it also enables network interception, network and cpu throttling as well as access to network logs
894
+ * during the session. It is required to be true for capturePerformance. The default value is false.
804
895
  *
805
- * @example Los_Angeles
806
- * @example Honolulu
896
+ * Desktop Virtual Devices only.
897
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#extendeddebugging
898
+ * @see https://docs.saucelabs.com/insights/debug/
807
899
  */
808
- timeZone?: string;
900
+ extendedDebugging?: boolean;
809
901
  /**
810
- * By default, Sauce routes traffic from some WebDriver browsers (Edge, Internet Explorer and Safari)
811
- * through the Selenium HTTP proxy server so that HTTPS connections with self-signed certificates
812
- * work everywhere. The Selenium proxy server can cause problems for some users. If that's the case
813
- * for you, you can configure Sauce to avoid using the proxy server and have browsers communicate
814
- * directly with your servers.
902
+ * Enables Performance Capture feature.
903
+ * Sauce Performance Testing can be enabled by setting both extendedDebugging and capturePerformance to true.
904
+ * Default value is false.
815
905
  *
816
- * __Don't Need the Selenium Proxy with Firefox or Google Chrome__
906
+ * Desktop Virtual Devices only.
907
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#captureperformance
908
+ * @see https://docs.saucelabs.com/performance/
909
+ */
910
+ capturePerformance?: boolean;
911
+ /**
912
+ * Specifies the screen resolution to be used during your test session.
913
+ * Default screen resolution for Sauce tests is 1024x768.
817
914
  *
818
- * Firefox and Google Chrome under WebDriver aren't affected by this flag as they handle invalid
819
- * certificates automatically and there isn't a need to proxy through Selenium.
915
+ * Desktop Virtual Devices only.
916
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#screenresolution
917
+ */
918
+ screenResolution?: string;
919
+ /**
920
+ * Sets command timeout in seconds.
921
+ * As a safety measure to prevent Selenium crashes from making your tests run indefinitely,
922
+ * we limit how long Selenium can take to run a command in our browsers.
923
+ * This is set to 300 seconds by default. The maximum command timeout value allowed is 600 seconds.
820
924
  *
821
- * __Incompatible with Sauce Connect Proxy__
925
+ * Desktop Virtual Devices only.
926
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#commandtimeout
927
+ */
928
+ commandTimeout?: number;
929
+ /**
930
+ * Sets idle test timeout in seconds.
931
+ * As a safety measure to prevent tests from running too long after something has gone wrong,
932
+ * we limit how long a browser can wait for a test to send a new command.
933
+ * This is set to 90 seconds by default and limited to a maximum value of 1000 seconds.
822
934
  *
823
- * This flag is incompatible with Sauce Connect Proxy.
935
+ * Desktop Virtual Devices only.
936
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#idletimeout
824
937
  */
825
- avoidProxy?: boolean;
938
+ idleTimeout?: number;
826
939
  /**
827
- * Sauce Labs supports several test result visibility levels, which control who can view the test
828
- * details. The visibility level for a test can be set manually from the test results page, but
829
- * also programmatically when starting a test or with our REST API. For more information about
830
- * sharing test result, see the topics under Sharing the Results of Sauce Labs Tests.
831
- *
832
- * Available visibility levels are:
833
- *
834
- * - __public__: Making your test public means that it is accessible to everyone, and may be
835
- * listed on public web pages and indexed by search engines.
836
- * - __public restricted__: If you want to share your job's result page and video, but keep
837
- * the logs only for you, you can certainly do so with public restricted visibility mode. This
838
- * visibility mode will hide the fancy job log as well as prohibit access to the raw Selenium log,
839
- * so that anonymous users with the link will be able to watch the video and screen shots but
840
- * won't be able to see what's being typed and done to get there.
841
- * - __share__: You can also decide to make your test sharable. Making your test sharable means
842
- * that it is only accessible to people having valid link and it is not listed on publicly available
843
- * pages on saucelabs.com or indexed by search engines.
844
- * - __team__: If you want to share your jobs with other team members (that were created as a sub-accounts
845
- * of one parent account), you can use team visibility mode. Making your test accessible by team means
846
- * that it is only accessible to people under the same root account as you.
847
- * - __private__: If you don't want to share your test's result page and video with anyone, you should
848
- * use private job visibility mode. This way, only you (the owner) will be able to view assets and test
849
- * result page.
850
- *
851
- * @default private
940
+ * Mobile App Appium Capabilities: Sauce-Specific Optional
941
+ * see https://docs.saucelabs.com/dev/test-configuration-options/#mobile-app-appium-capabilities-sauce-specific--optional
852
942
  */
853
- public?: 'public' | 'public restricted' | 'share' | 'team' | 'private';
854
943
  /**
855
- * You can provide a URL to an executable file, which will be downloaded and executed to configure the
856
- * VM before the test starts. For faster performance, you may want to upload the executable to [Sauce Storage](https://wiki.saucelabs.com/display/DOCS/Uploading+your+Application+to+Emulators+and+Simulators),
857
- * a private temporary storage space. This capability takes a JSON object with four main keys.
858
- * Check out the topics under [Using Pre-Run Executables to Configure Browsers and Virtual Machines](https://wiki.saucelabs.com/display/DOCS/Using+Pre-Run+Executables+to+Configure+Browsers+and+Virtual+Machines) for
859
- * more information.
944
+ * Specifies the Appium driver version you want to use.
945
+ * For most use cases, setting the appiumVersion is unnecessary because Sauce Labs defaults to the version that supports the broadest number of device combinations.
946
+ * Sauce Labs advises against setting this property unless you need to test a particular Appium feature or patch.
860
947
  *
861
- * __Running AutoIt Scripts__
948
+ * Virtual and Real Devices only.
949
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#appiumversion
950
+ */
951
+ appiumVersion?: string;
952
+ /**
953
+ * Specifies the orientation of the virtual skin and screen during the test.
862
954
  *
863
- * If you want to run an AutoIt script during your test, compile it as an .exe, send it using this
864
- * capability, and set background to true to allow AutoIt to continue running throughout the full
865
- * duration of your test.
955
+ * Virtual Devices only.
956
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#deviceorientation
957
+ */
958
+ deviceOrientation?: 'portrait' | 'landscape';
959
+ /**
960
+ * If your app creates an extra log then you can use the customLogFiles to store those additional logs in the "Logs" tab of the executed automated session.
961
+ * It is created in the form of a list of search filters that enumerate after an app test to locate text files to upload as logs.
962
+ * Files are uploaded with the .log extension appended. The search paths are rooted at the application under test.
866
963
  *
867
- * __Using Multiple Pre-Run Executables__
964
+ * Virtual Devices only.
965
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#customlogfiles
966
+ */
967
+ customLogFiles?: string[];
968
+ /**
969
+ * By default, our emulator uses software rendering to handle graphics for maximum compatibility.
970
+ * This involves the CPU calculating how everything looks on your app's screen.
971
+ * However, this could lead to an emulator crash when testing apps with intricate or heavy graphical elements.
972
+ * To mitigate this, use the hardware rendering option by specifying "android.gpu.mode"="hardware" in your test capabilities.
868
973
  *
869
- * If you need to send multiple pre-run executables, the best way is to bundle them into a single
870
- * executable file, such as a self-extracting zip file.
974
+ * Android Virtual Devices only.
975
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#androidgpumode
871
976
  */
872
- prerun?: {
873
- executable: string;
874
- args: string[];
875
- background: boolean;
876
- timeout: number;
877
- };
977
+ 'android.gpu.mode'?: 'software' | 'hardware';
878
978
  /**
879
- * By default, Sauce Labs records a video of every test you run. This is generally handy for debugging
880
- * failing tests, as well as having a visual confirmation that certain feature works (or still works!)
881
- * However, there is an added wait time for screen recording during a test run.
979
+ * Android allows apps to use the full screen, hiding the status bar and navigation bar.
980
+ * This is called "immersive mode". When you run an Android test, the device will show a popup asking if you want to allow the app to use immersive mode.
981
+ * This popup can interfere with your test, and by default we disable it.
982
+ * If you want to enable it, set disableImmersiveModePopUp to false.
983
+ *
984
+ * Android Virtual Devices only.
985
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#disableimmersivemodepopup
882
986
  */
883
- recordVideo?: boolean;
987
+ disableImmersiveModePopUp?: boolean;
884
988
  /**
885
- * As an alternative to disabling video recording, the videoUploadOnPass setting will let you
886
- * discard videos for passing tests identified using the passed setting. This disables video
887
- * post-processing and uploading that may otherwise consume some extra time after your test is complete.
989
+ * Sets up the device pin code for the automated test session.
990
+ * This capability sets your device in the state required for your application to launch successfully.
991
+ *
992
+ * Real Devices only.
993
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#disableimmersivemodepopup
888
994
  */
889
- videoUploadOnPass?: boolean;
995
+ setupDeviceLock?: boolean;
890
996
  /**
891
- * Sauce Labs captures step-by-step screenshots of every test you run. Most users find it very
892
- * useful to get a quick overview of what happened without having to watch the complete video.
893
- * However, this feature may add some extra time to your tests. You can avoid this by optionally
894
- * turning off this feature.
997
+ * Use this capability to select only tablet devices for testing.
998
+ *
999
+ * Real Devices only.
1000
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#tabletonly
895
1001
  */
896
- recordScreenshots?: boolean;
1002
+ tabletOnly?: boolean;
897
1003
  /**
898
- * By default, Sauce creates a log of all the actions that you execute to create a report for the
899
- * test run that lets you troubleshoot test failures more easily.
1004
+ * Use this capability to select only phone devices for testing.
900
1005
  *
901
- * __Note:__ Selenium Logs Are Still Recorded
1006
+ * Real Devices only.
1007
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#phoneonly
1008
+ */
1009
+ phoneOnly?: boolean;
1010
+ /**
1011
+ * Use this capability to select only private devices for testing.
902
1012
  *
903
- * This option only disables recording of the log.json file. The selenium-server.log will still be
904
- * recorded even if you choose to disable recording of the log.json.
1013
+ * Private Real Devices only.
1014
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#privatedevicesonly
905
1015
  */
906
- recordLogs?: boolean;
1016
+ privateDevicesOnly?: boolean;
907
1017
  /**
908
- * If you have multiple new jobs waiting to start (i.e., across a collection of sub-accounts), jobs
909
- * with a lower priority number take precedence over jobs with a higher number. So, for example, if
910
- * you have multiple jobs simultaneously waiting to start, we'll first attempt to find resources to
911
- * start all the jobs with priority 0, then all the jobs with priority 1, etc. When we run out of
912
- * available virtual machines, or when you hit your concurrency limit, any jobs not yet started will
913
- * wait. Within each priority level, jobs that have been waiting the longest take precedence.
1018
+ * Use this capability to select only public devices for testing.
914
1019
  *
915
- * @default 0
1020
+ * Real Devices only.
1021
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#publicdevicesonly
916
1022
  */
917
- priority?: number;
1023
+ publicDevicesOnly?: boolean;
918
1024
  /**
919
- * Enable [Extended Debugging Capabilities](https://wiki.saucelabs.com/pages/viewpage.action?pageId=70072943).
1025
+ * Use this capability to allocate only devices connected to a carrier network.
920
1026
  *
921
- * @default false
1027
+ * Private Real Devices only.
1028
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#carrierconnectivityonly
922
1029
  */
923
- extendedDebugging?: boolean;
1030
+ carrierConnectivityOnly?: boolean;
924
1031
  /**
925
- * Enable [Frontend Performance](https://wiki.saucelabs.com/display/DOCS/Measure+Page+Load+Performance+Using+Test+Automation) capturing capabilities.
1032
+ * Keeps the device allocated to you between test sessions and bypasses the device cleaning process and session exit that occurs by default after each test completes.
1033
+ * Normally, you'd need to start over and reopen another device.
1034
+ * You'll need to launch your next test within 10 seconds of your previous test ending
1035
+ * to ensure that the same device will be allocated for the test (not cleaned or reset).
1036
+ *
1037
+ * Real Devices only.
1038
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#cacheid
926
1039
  */
927
- capturePerformance?: boolean;
1040
+ cacheId?: string;
928
1041
  /**
929
- * We do not recommend to use this option.
930
- * @deprecated
1042
+ * Controls Sauce Labs default resigning (iOS) or instrumentation (Android) of mobile apps installed on our devices.
1043
+ *
1044
+ * Real Devices only.
1045
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#resigningenabled
931
1046
  */
932
- seleniumVersion?: string;
1047
+ resigningEnabled?: boolean;
933
1048
  /**
934
- * Chromedriver versions are pinned to the Chrome version you have defined in your capabilities.
935
- * Only define a custom `chromedriverVersion` if you know what you do.
1049
+ * Enables the camera image injection feature. resigningEnabled needs to be enabled if this is set to true.
936
1050
  *
937
- * @deprecated
1051
+ * Real Devices only.
1052
+ * @see https://docs.saucelabs.com/mobile-apps/features/camera-image-injection/
1053
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#saucelabsimageinjectionenabled
938
1054
  */
939
- chromedriverVersion?: string;
1055
+ sauceLabsImageInjectionEnabled?: boolean;
940
1056
  /**
941
- * The Internet Explorer Driver defaults to version 2.53.1 when no version is specified.
1057
+ * Bypasses the restriction on taking screenshots for secure screens (i.e., secure text entry). resigningEnabled needs to be enabled if this is set to true.
942
1058
  *
943
- * Note that the versions of Internet Explorer Driver we have available correspond to major Selenium
944
- * releases - we do not have all the minor point releases (e.g. 3.12.0.4) available.
1059
+ * Android Real Devices only.
1060
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#saucelabsbypassscreenshotrestriction
1061
+ */
1062
+ sauceLabsBypassScreenshotRestriction?: boolean;
1063
+ /**
1064
+ * Enables the interception of biometric input, allowing the test to simulate Touch ID interactions (not a Sauce Labs-specific capability).
1065
+ * resigningEnabled needs to be enabled if this is set to true.
945
1066
  *
946
- * We recommend setting the Selenium Version (see above) to correspond with the Internet Explorer Driver
947
- * version you select.
1067
+ * Real Devices only.
1068
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#allowtouchidenroll
1069
+ */
1070
+ allowTouchIdEnroll?: boolean;
1071
+ /**
1072
+ * Enables audio recording in your iOS and Android native mobile app tests.
1073
+ * The audio will be part of the Test Results page video file, which you can play back and download in our built-in media player.
1074
+ * The default value is false.
948
1075
  *
949
- * Sauce Labs supports launching 64-bit IE on our 64-bit VMs: Windows 7, Windows 8, and Windows 8.1.
950
- * This provides a workaround for two known Selenium issues:
951
- * - Using a 32 bit driver on a 64 bit operating system causes Selenium's screenshot feature to only
952
- * capture the part of the page currently visible in the browser viewport Selenium Issue 5876.
953
- * - Using a 64 bit driver on a 64 bit operating system causes text entry to be extremely slow
954
- * Selenium Issue 5516.
1076
+ * Real Devices only.
1077
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#audiocapture
1078
+ */
1079
+ audioCapture?: boolean;
1080
+ /**
1081
+ * Enables mobile app instrumentation (Android or iOS) and recording of HTTP/HTTPS network traffic for debugging purposes.
1082
+ * API calls are collected into a HAR file, which you can view and download from your Test Results > Network tab console.
1083
+ * The default value is false.
955
1084
  *
956
- * @deprecated
1085
+ * Real Devices only.
1086
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#networkcapture
957
1087
  */
958
- iedriverVersion?: string;
1088
+ networkCapture?: boolean;
959
1089
  /**
960
- * For Firefox version 80 and above, geckodriver defaults to latest driver version 0.27.0 when no
961
- * version is specified.
1090
+ * Enables the use of the app's private app container directory instead of the shared app group container directory.
1091
+ * For testing on the Real Device Cloud, the app gets resigned, which is why the shared directory is not accessible.
962
1092
  *
963
- * @deprecated
1093
+ * iOS Real Devices only.
1094
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#groupfolderredirectenabled
964
1095
  */
965
- geckodriverVersion?: string;
1096
+ groupFolderRedirectEnabled?: boolean;
966
1097
  /**
967
- * As a safety measure to prevent tests from running indefinitely, Sauce limits the duration of
968
- * tests to 30 minutes by default. You can adjust this limit on per-job basis and the maximum
969
- * value is 10800 seconds.
1098
+ * Use this capability to enable animations for Android real devices by setting it to true. By default, animations are disabled.
970
1099
  *
971
- * __Don't Exceed 30 Minutes__
1100
+ * Android Real Devices only.
1101
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#enableanimations
1102
+ */
1103
+ enableAnimations?: boolean;
1104
+ /**
1105
+ * Delays system alerts, such as alerts asking for permission to access the camera, to prevent app crashes at startup.
1106
+ * resigningEnabled needs to be enabled if this is set to true.
972
1107
  *
973
- * A test should never last more than 30 minutes and ideally should take less than five minutes.
974
- * The 3 hour maximum exists mainly to ease the transition of new users migrating long running
975
- * tests to Sauce Labs.
1108
+ * iOS Real Devices only.
1109
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#systemalertsdelayenabled
1110
+ */
1111
+ systemAlertsDelayEnabled?: boolean;
1112
+ /**
1113
+ * Specify the amount of time (in milliseconds) that the test should be allowed to find and assign an available device before the test will fail.
1114
+ * The default value is 900000 milliseconds (15 minutes) and the max is 1800000 milliseconds (30 minutes).
976
1115
  *
977
- * While our test VMs respect the maxDuration desired capability when it's set in tests, it may
978
- * not always be precise. Tests will never be timed out before their maxDuration has elapsed and
979
- * in most cases, they will be timed out very shortly after their maxDuration has elapsed (usually
980
- * less than 1 second). But, in some rare cases, such as when the test VM is suffering performance
981
- * problems, they can be allowed to run longer (30 seconds or more).
1116
+ * Real Devices only.
1117
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#sessioncreationtimeout
1118
+ */
1119
+ sessionCreationTimeout?: boolean;
1120
+ /**
1121
+ * Specify the amount of automatic retries that Sauce Labs will execute to find and assign an available device before the test will fail.
1122
+ * The default value is 1 and the max is 3.
982
1123
  *
983
- * @default 1800
1124
+ * Real Devices only.
1125
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#sessioncreationretry
1126
+ */
1127
+ sessionCreationRetry?: number;
1128
+ /**
1129
+ * Desktop and Mobile Capabilities: Sauce-Specific – Optional
1130
+ * see https://docs.saucelabs.com/dev/test-configuration-options/#desktop-and-mobile-capabilities-sauce-specific--optional
984
1131
  */
985
- maxDuration?: number;
986
1132
  /**
987
- * As a safety measure to prevent Selenium crashes from making your tests run indefinitely, Sauce
988
- * limits how long Selenium can take to run a command in our browsers. This is set to 300 seconds
989
- * by default. The value of this setting is given in seconds. The maximum command timeout value
990
- * allowed is 600 seconds.
1133
+ * Used to record test names for jobs and make it easier to find individual tests.
1134
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#name
1135
+ */
1136
+ name?: string;
1137
+ /**
1138
+ * Used to associate jobs with a build number or app version, which is then displayed
1139
+ * on both the Dashboard and Archives view
991
1140
  *
992
- * @default 300
1141
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#build
1142
+ * @example `build-1234`
993
1143
  */
994
- commandTimeout?: number;
1144
+ build?: string | number;
995
1145
  /**
996
- * As a safety measure to prevent tests from running too long after something has gone wrong, Sauce
997
- * limits how long a browser can wait for a test to send a new command. This is set to 90 seconds
998
- * by default and limited to a maximum value of 1000 seconds. You can adjust this limit on a per-job
999
- * basis. The value of this setting is given in seconds.
1146
+ * User-defined tags for grouping and filtering jobs in the Dashboard and Archives view.
1147
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#tags
1148
+ * @example
1149
+ * ```
1150
+ * ["tag1", "tag2", "tag3"]
1151
+ * ```
1152
+ */
1153
+ tags?: string[];
1154
+ /**
1155
+ * Sets your Sauce Labs username for a test.
1000
1156
  *
1001
- * @default 90
1157
+ * You can either set "username" in capabilities or specify it in the Sauce URL as Basic Authentication. For Visual Tests), this must be set in capabilities.
1158
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#username
1002
1159
  */
1003
- idleTimeout?: number;
1160
+ username?: string;
1004
1161
  /**
1005
- * Enables the interception of biometric input, allowing the test to
1006
- * simulate Touch ID interactions (not a Sauce Labs-specific capability).
1162
+ * Sets your Sauce Labs access key for the test.
1007
1163
  *
1008
- * @default false
1164
+ * You can either set "accessKey" in capabilities or specify it in the Sauce URL as Basic Authentication. For Visual Tests, this must be set in capabilities.
1165
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#accesskey
1009
1166
  */
1010
- allowTouchIdEnroll?: boolean;
1167
+ accessKey?: string;
1011
1168
  /**
1012
- * Keeps a device allocated to you between test sessions, bypassing the
1013
- * device cleaning process and session exit that occurs by default after
1014
- * each test completes. Normally, you'd need to start over and reopen
1015
- * another device. You'll need to launch your next test within 10 seconds
1016
- * of your previous test ending to ensure that the same device will be
1017
- * allocated for the test (not cleaned or reset).
1169
+ * User-defined custom data that will accept any valid JSON object, limited to 64KB in size.
1170
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#custom-data
1171
+ * @example
1172
+ * ```
1173
+ * {
1174
+ * "release": "1.0",
1175
+ * "commit": "0k392a9dkjr",
1176
+ * "staging": true,
1177
+ * "execution_number": 5,
1178
+ * "server": "test.customer.com"
1179
+ * }
1180
+ * ```
1181
+ */
1182
+ 'custom-data'?: any;
1183
+ /**
1184
+ * We support several test/job result visibility levels, which control who can view the test details.
1185
+ * The visibility level for a test can be set manually from the test results page, but also programmatically when starting a test or with our REST API.
1186
+ * For more information about sharing test results, see the topics under Sharing the Results of Sauce Labs Tests.
1018
1187
  *
1019
- * @default *randomized string*
1188
+ * Desktop and Virtual Devices only.
1189
+ *
1190
+ * @see https://docs.saucelabs.com/test-results/sharing-test-results/
1020
1191
  */
1021
- cacheId?: string;
1192
+ public?: 'public' | 'public restricted' | 'share' | 'team' | 'private';
1022
1193
  /**
1023
- * Specifies the Appium driver version you want to use. For most use cases,
1024
- * setting the appiumVersion is unnecessary because Sauce Labs defaults to
1025
- * the version that supports the broadest number of device combinations.
1026
- * Sauce Labs advises against setting this property unless you need to test
1027
- * a particular Appium feature or patch.
1194
+ * Specify a Sauce Connect tunnel to establish connectivity with Sauce Labs for your test.
1195
+ * Tunnels allow you to test an app that is behind a firewall or on your local machine by providing a secure connection to the Sauce Labs platform.
1196
+ * @see https://docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/basic-setup/
1197
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#tunnelname
1028
1198
  */
1029
- appiumVersion?: string;
1199
+ tunnelName?: string;
1030
1200
  /**
1031
- * Controls Sauce Labs default resigning (iOS) or instrumentation (Android)
1032
- * of mobile apps installed on our devices.
1033
- * @default true
1201
+ * Specify a Sauce Connect tunnel name to establish connectivity with a Sauce Labs test platform. This is an alias for tunnelName.
1202
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#tunnelidentifier
1203
+ * @deprecated
1034
1204
  */
1035
- resigningEnabled?: boolean;
1205
+ tunnelIdentifier?: string;
1206
+ /**
1207
+ * If the tunnelName you've specified to establish connectivity with a Sauce Labs test platform is a shared tunnel,
1208
+ * and you are not the user who created the tunnel, you must identify the Sauce Labs user who did create the tunnel in order to use it for your test.
1209
+ * @see https://docs.saucelabs.com/secure-connections/sauce-connect/setup-configuration/basic-setup/#using-tunnel-names
1210
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#tunnelowner
1211
+ */
1212
+ tunnelOwner?: string;
1213
+ /**
1214
+ * If the tunnelName (or tunnelIdentifier) you've specified to establish connectivity with a Sauce Labs test platform is a shared tunnel,
1215
+ * and you are not the user who created the tunnel, you must identify the Sauce Labs user who did create the tunnel in order to use it for your test.
1216
+ * This is an alias for tunnelOwner.
1217
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#parenttunnel
1218
+ * @deprecated
1219
+ */
1220
+ parentTunnel?: string;
1221
+ /**
1222
+ * Use this to disable video recording. By default, Sauce Labs records a video of every test you run.
1223
+ * Disabling video recording can be useful for debugging failing tests as well as having a visual confirmation that a certain feature works (or still works).
1224
+ * However, there is an added wait time for screen recording during a test run.
1225
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#recordvideo
1226
+ */
1227
+ recordVideo?: boolean;
1228
+ /**
1229
+ * Disables video upload for passing tests. videoUploadOnPass is an alternative to recordVideo; it lets you discard videos for tests you've marked as passing.
1230
+ * It disables video post-processing and uploading that may otherwise consume some extra time after your test is complete.
1231
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#videouploadonpass
1232
+ */
1233
+ videoUploadOnPass?: boolean;
1234
+ /**
1235
+ * Disables step-by-step screenshots. In addition to capturing video, Sauce Labs captures step-by-step screenshots of every test you run.
1236
+ * Most users find it very useful to get a quick overview of what happened without having to watch the complete video.
1237
+ * However, this feature may add some extra time to your tests.
1238
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#recordscreenshots
1239
+ */
1240
+ recordScreenshots?: boolean;
1241
+ /**
1242
+ * In the same way Sauce Labs captures step-by-step screenshots, you can capture the HTML source at each step of a test.
1243
+ * This feature is disabled by default, but when it is enabled you can view the HTML source captures on the Test Results page.
1244
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#capturehtml
1245
+ */
1246
+ captureHtml?: boolean;
1247
+ /**
1248
+ * Disables log recording. By default, Sauce creates a log of all the actions that you execute to create a report for the test run
1249
+ * that lets you troubleshoot test failures more easily.
1250
+ * This option disables only the recording of the log.json file; the selenium-server.log will still be recorded.
1251
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#recordlogs
1252
+ */
1253
+ recordLogs?: boolean;
1254
+ /**
1255
+ * Desktop and Virtual Device Capabilities: Sauce-Specific – Optional
1256
+ * see https://docs.saucelabs.com/dev/test-configuration-options/#desktop-and-virtual-device-capabilities-sauce-specific--optional
1257
+ */
1258
+ /**
1259
+ * Sets maximum test duration in seconds. As a safety measure to prevent tests from running indefinitely,
1260
+ * the default is 1,800 seconds (30 minutes) and the maximum is 10,800 seconds (three hours).
1261
+ *
1262
+ * Desktop and Virtual Devices only.
1263
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#maxduration
1264
+ */
1265
+ maxDuration?: number;
1266
+ /**
1267
+ * Setting to prioritize jobs. If you have multiple new jobs waiting to start (i.e., across a collection of sub-accounts),
1268
+ * jobs with a lower priority number take precedence over jobs with a higher number.
1269
+ *
1270
+ * So, for example, if you have multiple jobs simultaneously waiting to start,
1271
+ * we'll first attempt to find resources to start all the jobs with priority 0,then all the jobs with priority 1, etc.
1272
+ *
1273
+ * When we run out of available virtual machines, or when you hit your concurrency limit, any jobs not yet started will wait.
1274
+ * Within each priority level, jobs that have been waiting the longest take precedence.
1275
+ *
1276
+ * Desktop and Virtual Devices only.
1277
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#priority
1278
+ */
1279
+ priority?: number;
1280
+ /**
1281
+ * Allows you to set a custom time zone for your test based on a city name. Most major cities are supported.
1282
+ *
1283
+ * Desktop and Virtual Devices only.
1284
+ * @example Los_Angeles
1285
+ * @example Honolulu
1286
+ * @see https://docs.saucelabs.com/dev/test-configuration-options/#timezone
1287
+ */
1288
+ timeZone?: string;
1289
+ /**
1290
+ * You can provide a URL to an executable file, which will be downloaded and executed to configure the
1291
+ * VM before the test starts. For faster performance, you may want to upload the executable to [Sauce Storage](https://wiki.saucelabs.com/display/DOCS/Uploading+your+Application+to+Emulators+and+Simulators),
1292
+ * a private temporary storage space. This capability takes a JSON object with four main keys.
1293
+ * Check out the topics under [Using Pre-Run Executables to Configure Browsers and Virtual Machines](https://wiki.saucelabs.com/display/DOCS/Using+Pre-Run+Executables+to+Configure+Browsers+and+Virtual+Machines) for
1294
+ * more information.
1295
+ *
1296
+ * __Running AutoIt Scripts__
1297
+ *
1298
+ * If you want to run an AutoIt script during your test, compile it as an .exe, send it using this
1299
+ * capability, and set background to true to allow AutoIt to continue running throughout the full
1300
+ * duration of your test.
1301
+ *
1302
+ * __Using Multiple Pre-Run Executables__
1303
+ *
1304
+ * If you need to send multiple pre-run executables, the best way is to bundle them into a single
1305
+ * executable file, such as a self-extracting zip file.
1306
+ */
1307
+ prerun?: {
1308
+ executable: string;
1309
+ args: string[];
1310
+ background: boolean;
1311
+ timeout: number;
1312
+ };
1313
+ recordDeviceVitals?: boolean;
1036
1314
  }
1037
1315
  export interface LambdaTestCapabilities {
1038
1316
  username?: string;
@@ -1112,7 +1390,7 @@ export interface BrowserStackCapabilities {
1112
1390
  os?: string;
1113
1391
  os_version?: string;
1114
1392
  osVersion?: string;
1115
- desired?: DesiredCapabilities;
1393
+ desired?: unknown;
1116
1394
  device?: string;
1117
1395
  platformName?: string;
1118
1396
  /**
@@ -1321,6 +1599,16 @@ export interface BrowserStackCapabilities {
1321
1599
  uploadMedia?: Array<string>;
1322
1600
  enablePasscode?: boolean;
1323
1601
  deviceLogs?: boolean;
1602
+ /**
1603
+ * Disable re-signing of Enterprise signed app uploaded on BrowserStack
1604
+ * @default true
1605
+ */
1606
+ resignApp?: boolean;
1607
+ /**
1608
+ * Hides data that you send to or retrieve from the remote browsers through the following commands:
1609
+ * Example: 'setValues, getValues, setCookies, getCookies'
1610
+ */
1611
+ maskCommands?: string;
1324
1612
  }
1325
1613
  export interface SauceLabsVisualCapabilities {
1326
1614
  /**
@@ -1412,9 +1700,11 @@ export interface SauceLabsVisualCapabilities {
1412
1700
  * https://testingbot.com/support/other/test-options#platform
1413
1701
  */
1414
1702
  export interface TestingbotCapabilities {
1703
+ appiumVersion?: string;
1704
+ appiumPlugins?: string[];
1415
1705
  name?: string;
1416
1706
  tags?: string[];
1417
- build?: string | number | number;
1707
+ build?: string | number;
1418
1708
  public?: boolean;
1419
1709
  'tunnel-identifier'?: string;
1420
1710
  realDevice?: boolean;
@@ -1424,26 +1714,19 @@ export interface TestingbotCapabilities {
1424
1714
  edgedriverVersion?: string;
1425
1715
  geckodriverVersion?: string;
1426
1716
  operaDriverVersion?: string;
1717
+ 'screen-resolution'?: string;
1427
1718
  timeZone?: string;
1719
+ 'throttle_network'?: any;
1720
+ tabletOnly?: boolean;
1721
+ phoneOnly?: boolean;
1722
+ recordLogs?: boolean;
1723
+ screenshot?: boolean;
1724
+ screenrecorder?: boolean;
1725
+ maxDuration?: number;
1428
1726
  upload?: string;
1429
1727
  'testingbot.geoCountryCode'?: string;
1430
1728
  idletimeout?: number;
1431
1729
  'load-extension'?: string;
1432
1730
  }
1433
- export interface SeleniumRCCapabilities {
1434
- commandLineFlags?: string;
1435
- executablePath?: string;
1436
- timeoutInSeconds?: number;
1437
- onlyProxySeleniumTraffic?: boolean;
1438
- avoidProxy?: boolean;
1439
- proxyEverything?: boolean;
1440
- proxyRequired?: boolean;
1441
- browserSideLog?: boolean;
1442
- optionsSet?: boolean;
1443
- singleWindow?: boolean;
1444
- dontInjectRegex?: RegExp;
1445
- userJSInjection?: boolean;
1446
- userExtensions?: string;
1447
- }
1448
1731
  export {};
1449
1732
  //# sourceMappingURL=Capabilities.d.ts.map