From 59a82c9179099b036bd2d092c474b0fec48f7603 Mon Sep 17 00:00:00 2001 From: Tung Manh Hoang Date: Wed, 4 Feb 2026 15:41:45 +0700 Subject: [PATCH 1/4] remove limitations regarding device logs for basic Appium 2 for ticket KOB-51985 --- .../launch-a-basic-appium-2-session.adoc | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/docs/modules/automation-testing/pages/basic-appium-server/launch-a-basic-appium-2-session.adoc b/docs/modules/automation-testing/pages/basic-appium-server/launch-a-basic-appium-2-session.adoc index 277778384..63770c8d5 100644 --- a/docs/modules/automation-testing/pages/basic-appium-server/launch-a-basic-appium-2-session.adoc +++ b/docs/modules/automation-testing/pages/basic-appium-server/launch-a-basic-appium-2-session.adoc @@ -88,14 +88,7 @@ Once these changes are made, your script is ready to run basic Appium 2 sessions == Notes/Limitations -* Limited session exhaust is available, which means there are no device logs, device metrics, Appium inspector data, and network payload capture data at this time. - -[NOTE] -==== - -Although there is a device logs file downloadable from the Overview page of a basic Appium session, the file only contains logs before the basic Appium script started. - -==== +* Device metrics, Appium inspector data, and network payload capture data is not available for basic Appium 2 sessions. include::automation-testing:partial$mixed-sessions-basic-appium-limitations.adoc[] From 3823150a49dd38b852c8fb94c201ffe7f19bc7ca Mon Sep 17 00:00:00 2001 From: Tung Manh Hoang Date: Wed, 4 Feb 2026 16:43:09 +0700 Subject: [PATCH 2/4] add kobiton:deviceTags, kobiton:deviceTagType and kobiton:sessionTags capabilities for ticket KOB-52043 --- .../capabilities/available-capabilities.adoc | 68 ++++++++++++++++++- 1 file changed, 66 insertions(+), 2 deletions(-) diff --git a/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc b/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc index 623cda79a..d9c5e8386 100644 --- a/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc +++ b/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc @@ -104,6 +104,61 @@ capabilities.setCapability("deviceName", "*Pro"); // Use any device name ending capabilities.setCapability("deviceName", "iPhone 11*"); // Use any device name starting with 'iPhone 11'. ---- +=== `kobiton:deviceTags` + +Filter devices by device tags. Follow 2-dimensional string array formats: + +* Single group with a single tag: `[["healthy"]]` +* Single group with multiple tags (OR within group): `[["project","dev"]]` +* Multiple groups (AND across groups): `[["project","dev"],["healthy"]]` + +[NOTE] +==== + +* Multiple nested layers such as `[["project", ["dev", "test"]],["healthy"]]` are not supported. +* By default, returns matching device(s) with both _Org_ and _Me_ tags. Set `kobiton:deviceTagType` to filter by a single tag type. + +==== + +[IMPORTANT] +See below examples of how to use 2-dimensional string array formats for different programming languages. + +* *Type:* `string` +* *Required capabilities:* None +* *Optional capabilities:* `kobiton:deviceTagType` + +.Java and .NET(C#) Example +[source,java] +---- +// Single group with a single tag +capabilities.setCapability("kobiton:deviceTags", new String[][] { new String[] { "healthy" } }); +// Single group with multiple tags (OR within group) +capabilities.setCapability("kobiton:deviceTags", new String[][] { new String[] { "project", "dev" } }); +// Multiple groups (AND across groups) +capabilities.setCapability("kobiton:deviceTags", new String[][] { new String[] { "project", "dev" }, new String[] { "healthy" } }); +---- + +.NodeJS Example +[source] +---- +var desiredCaps = { + 'kobiton:deviceTags': [["project", "dev"], ["healthy"]], +} +---- + +=== `kobiton:deviceTagType` + +If `kobiton:deviceTags` is provided, set to either `private` (_Me_ tag) or `public` (_Org_ tag) to filter devices by a single tag type. If not set, returns matching device(s) with both tag types. + +* *Type:* `string` +* *Required capabilities:* `kobiton:deviceTags` +* *Optional capabilities:* None + +[source,java] +---- +capabilities.setCapability("kobiton:deviceTagType", "public"); +---- + [#_ensureWebviewsHavePages] === `ensureWebviewsHavePages` @@ -179,7 +234,7 @@ The name of the test session. capabilities.setCapability("sessionName", "Automation test session"); // Specify the test session name. ---- -=== `kobiton:tags` +=== `kobtion:sessionTags` Categorize and organize sessions by assigning a custom tag at the time of session creation. @@ -190,9 +245,18 @@ Categorize and organize sessions by assigning a custom tag at the time of sessio .Example [source,java] ---- -capabilities.setCapability("kobiton:tags", ["nightly-run", "login-flow", "regression"]); +capabilities.setCapability("kobiton:sessionTags", ["nightly-run", "login-flow", "regression"]); ---- +[NOTE] +==== + +This capability was previously `kobiton:tags`. + +Although `kobiton:tags` can still be used, we recommend using the new capability name to avoid confusion with `kobiton:deviceTags`. + +==== + === `useConfiguration` The device configuration to use during the test session. *Only available for web testing*. From 5d1331ddc2f4ee5a7ab535f0c40905004cd73fbb Mon Sep 17 00:00:00 2001 From: Tung Manh Hoang Date: Fri, 13 Mar 2026 11:43:27 +0700 Subject: [PATCH 3/4] address feedbacks on available capabilities --- .../capabilities/available-capabilities.adoc | 88 ++++++++----------- 1 file changed, 38 insertions(+), 50 deletions(-) diff --git a/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc b/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc index d9c5e8386..fb4ad4c01 100644 --- a/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc +++ b/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc @@ -2,24 +2,19 @@ :page-aliases: automation-testing:capabilities:add-visualvalidation.adoc :navtitle: Available capabilities -These are the capabilities you can use during an automation session. +These are the capabilities you can use during an automation session. You can also xref:automation-testing:capabilities/auto-generate-capabilities.adoc[auto-generate your capabilities]. -[NOTE] -You can also xref:automation-testing:capabilities/auto-generate-capabilities.adoc[auto-generate your capabilities]. +*Deprecation notice*: -[NOTE] -The `kobiton:visualValidation` capability is deprecated. +* The `kobiton:visualValidation` capability is deprecated. == Kobiton Capabilities These capabilities are unique to Kobiton. -[NOTE] -==== -* To use Kobiton capabilities in Basic Appium 2 script, use the `'kobiton:'` vendor prefix, i.e. `'kobiton:sessionName'`. +* To use Kobiton capabilities in Basic Appium 2 script, use the `'kobiton:'` vendor prefix, i.e. `'kobiton:sessionName'` -* Capabilities with `'kobiton:'` in the name cannot be used without the prefix. -==== +* Capabilities with `'kobiton:'` in the name cannot be used without the prefix [IMPORTANT] Not all Kobiton capabilities can be used in Basic Appium 2 scripts. @@ -42,6 +37,9 @@ capabilities.setCapability("app", "https://kobiton.docsapp.net/apps/app_id"); // [#_baselineSessionId] === `kobiton:baselineSessionId` +[NOTE] +This capability cannot be used in Basic Appium 2 sessions. + Select a baseline session to use for xref:_flexCorrect[] or xref:_visualValidation[]. * *Type:* `string` @@ -54,11 +52,11 @@ Select a baseline session to use for xref:_flexCorrect[] or xref:_visualValidati capabilities.setCapability("kobiton:baselineSessionId", 0000011); // Select baseline session for flexCorrect or visualValidation by assigning a kobitonSessionId. ---- -[NOTE] -This capability cannot be used in Basic Appium 2 sessions. - === `captureScreenshots` +[NOTE] +This is not available for native and hybrid apps, as well as devices on Android 6.0 and earlier. + Screenshots will be captured after each test step automatically. They'll be available in the xref:session-explorer:manage-sessions.adoc[session overview] after the test session. * *Type:* `boolean` @@ -71,9 +69,6 @@ Screenshots will be captured after each test step automatically. They'll be avai capabilities.setCapability("captureScreenshots", true); // Take a screenshot after each test step. ---- -[NOTE] -This is not available for native and hybrid apps, as well as devices on Android 6.0 and earlier. - === `deviceGroup` The device group within the test session metadata. @@ -106,26 +101,21 @@ capabilities.setCapability("deviceName", "iPhone 11*"); // Use any device name s === `kobiton:deviceTags` -Filter devices by device tags. Follow 2-dimensional string array formats: +Filter devices by device tags. Tags can be _Org_ or _Me_. + +* *Type:* `string` +* *Required capabilities:* None +* *Optional capabilities:* `kobiton:deviceTagType` +* *Behavior*: By default, returns matching device(s) with both _Org_ and _Me_ tags. Set `kobiton:deviceTagType` to filter by a single tag type. + +Follow 2-dimensional string array formats when specifying tags: * Single group with a single tag: `[["healthy"]]` * Single group with multiple tags (OR within group): `[["project","dev"]]` * Multiple groups (AND across groups): `[["project","dev"],["healthy"]]` - -[NOTE] -==== - * Multiple nested layers such as `[["project", ["dev", "test"]],["healthy"]]` are not supported. -* By default, returns matching device(s) with both _Org_ and _Me_ tags. Set `kobiton:deviceTagType` to filter by a single tag type. -==== - -[IMPORTANT] -See below examples of how to use 2-dimensional string array formats for different programming languages. - -* *Type:* `string` -* *Required capabilities:* None -* *Optional capabilities:* `kobiton:deviceTagType` +See the below examples of how to use 2-dimensional string array formats for different programming languages. .Java and .NET(C#) Example [source,java] @@ -177,6 +167,9 @@ capabilities.setCapability("ensureWebviewsHavePages", true); // Set to true. [#_flexCorrect] === `kobiton:flexCorrect` +[NOTE] +This capability cannot be used in Basic Appium 2 sessions. + When a script is run on different devices, element selection is autocorrected. For more information, see xref:automation-testing:capabilities/add-flexcorrect.adoc[] * *Type:* `boolean` @@ -189,9 +182,6 @@ When a script is run on different devices, element selection is autocorrected. F capabilities.setCapability("kobiton:flexCorrect", true); // Enable flexCorrect by setting capability to true. ---- -[NOTE] -This capability cannot be used in Basic Appium 2 sessions. - === `groupId` The group ID within the test session metadata. @@ -236,6 +226,15 @@ capabilities.setCapability("sessionName", "Automation test session"); // Specify === `kobtion:sessionTags` +[NOTE] +==== + +This capability was previously `kobiton:tags`. + +Although `kobiton:tags` can still be used, we recommend using the new capability name to avoid confusion with `kobiton:deviceTags`. + +==== + Categorize and organize sessions by assigning a custom tag at the time of session creation. * *Type:* `string` @@ -248,15 +247,6 @@ Categorize and organize sessions by assigning a custom tag at the time of sessio capabilities.setCapability("kobiton:sessionTags", ["nightly-run", "login-flow", "regression"]); ---- -[NOTE] -==== - -This capability was previously `kobiton:tags`. - -Although `kobiton:tags` can still be used, we recommend using the new capability name to avoid confusion with `kobiton:deviceTags`. - -==== - === `useConfiguration` The device configuration to use during the test session. *Only available for web testing*. @@ -274,7 +264,6 @@ capabilities.setCapability("useConfiguration", "kobiton"); // Use this pre-defin [#_work_app] === `kobiton:workApp` -[IMPORTANT] Before using this capability, you must xref:scripting/launch-work-profile-app-android.adoc#_install_and_prepare_the_work_profile_app[install and prepare the Work Profile app,window=read-later]. include::partial$work-profile-capability.adoc[] @@ -283,7 +272,6 @@ include::partial$work-profile-capability.adoc[] Kobiton supports most Appium capabilities. The capabilities listed below are typically required or have specific use cases unique to Kobiton. -[NOTE] For Basic Appium 2 sessions, follow the https://appium.io/docs/en/2.0/guides/migrating-1-to-2/#capabilities[Appium 2 guidelines] for vendor prefix. [#_accessKey] @@ -347,6 +335,9 @@ capabilities.setCapability("appium:deviceOrientation", "landscape"); // Set the === `fullReset` +[NOTE] +This is only available for private devices. + Remove all apps installed during the test session. To keep the apps and only remove their app data, use xref:_noreset[] instead. * *Type:* `boolean` @@ -359,11 +350,11 @@ Remove all apps installed during the test session. To keep the apps and only rem capabilities.setCapability("appium:fullReset", true); // Delete the app and the related data. ---- -[NOTE] -This is only available for private and local devices. - === `noReset` +[NOTE] +This is only available for private devices. + Remove all app data from apps installed during the test session. To remove the full app, use xref:_fullreset[] instead. * *Type:* `string` @@ -376,9 +367,6 @@ Remove all app data from apps installed during the test session. To remove the f capabilities.setCapability("appium:noReset", false); // Delete just the app data. ---- -[NOTE] -This is only available for private and local devices. - === 'platformName' The type of platform, i.e Android or iOS. From df47b163de1fc0df7fae83e7d7cde828659a5d9a Mon Sep 17 00:00:00 2001 From: Tung Manh Hoang Date: Tue, 17 Mar 2026 15:28:51 +0700 Subject: [PATCH 4/4] merge changes and updates from pr 425 --- .../capabilities/available-capabilities.adoc | 219 +++++++++++------- .../partials/work-profile-capability.adoc | 2 +- 2 files changed, 130 insertions(+), 91 deletions(-) diff --git a/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc b/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc index fb4ad4c01..43f025e17 100644 --- a/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc +++ b/docs/modules/automation-testing/pages/capabilities/available-capabilities.adoc @@ -2,57 +2,67 @@ :page-aliases: automation-testing:capabilities:add-visualvalidation.adoc :navtitle: Available capabilities -These are the capabilities you can use during an automation session. You can also xref:automation-testing:capabilities/auto-generate-capabilities.adoc[auto-generate your capabilities]. +This page lists the capabilities that can be used when creating an automation session in Kobiton. -*Deprecation notice*: +Capabilities control how an Appium session starts, including device selection, application configuration, and session metadata. -* The `kobiton:visualValidation` capability is deprecated. +Kobiton supports both standard Appium capabilities and additional Kobiton-specific capabilities. -== Kobiton Capabilities - -These capabilities are unique to Kobiton. - -* To use Kobiton capabilities in Basic Appium 2 script, use the `'kobiton:'` vendor prefix, i.e. `'kobiton:sessionName'` +* *Kobiton capabilities* extend Appium functionality and must include the `kobiton:` vendor prefix when used with Appium 2. +* *Appium capabilities* follow standard Appium conventions but may have additional behavior when used with Kobiton devices. -* Capabilities with `'kobiton:'` in the name cannot be used without the prefix +Examples in this reference use the Appium Java client syntax. -[IMPORTANT] -Not all Kobiton capabilities can be used in Basic Appium 2 scripts. +[NOTE] +The `kobiton:visualValidation` capability is deprecated. -=== `app` +== Kobiton Capabilities -The app to use during the test session. If the app is not already installed on the device, the value of the second parameter will be used to download and install the app. *Only available for app testing*. +Kobiton provides additional capabilities that extend standard Appium functionality. +These capabilities must include the `kobiton:` vendor prefix when used with Appium 2. -* *Type:* `string` -* *Required capabilities:* None -* *Optional capabilities:* None +Example: -.Example [source,java] ---- -capabilities.setCapability("app", "kobiton-store:000111"); // Install the app using the Kobiton app repository. -capabilities.setCapability("app", "https://kobiton.docsapp.net/apps/app_id"); // Install the app using a direct download link. +capabilities.setCapability("kobiton:sessionName", "Login test"); ---- +Capabilities with the `kobiton:` prefix cannot be used without the prefix. + +.Kobiton capability index +* <<_baselineSessionId,kobiton:baselineSessionId>> +* <<_kobitoncapturescreenshots,kobiton:captureScreenshot>> +* <<_kobitondevicegroup,kobiton:deviceGroup>> +* <<_kobitondevicetags,kobiton:deviceTags>> +* <<_kobitondevicetagtype,kobiton:deviceTagType>> +* <<_flexCorrect,kobiton:flexCorrect>> +* <<_kobitongroupid,kobiton:groupId>> +* <<_kobitonsessiondescription,kobiton:sessionDescription>> +* <<_kobitonsessionname,kobiton:sessionName>> +* <<_kobitonuseconfiguration,kobiton:useConfiguration>> +* <<_kobtionsessiontags,kobiton:sessionTags>> +* <<_work_app,kobiton:workApp>> + [#_baselineSessionId] === `kobiton:baselineSessionId` [NOTE] This capability cannot be used in Basic Appium 2 sessions. -Select a baseline session to use for xref:_flexCorrect[] or xref:_visualValidation[]. +Select a baseline session to use for xref:_flexCorrect[]. * *Type:* `string` -* *Required capabilities:* xref:_flexCorrect[] _or_ xref:_visualValidation[] +* *Required capabilities:* xref:_flexCorrect[] * *Optional capabilities:* None .Example [source,java] ---- -capabilities.setCapability("kobiton:baselineSessionId", 0000011); // Select baseline session for flexCorrect or visualValidation by assigning a kobitonSessionId. +capabilities.setCapability("kobiton:baselineSessionId", 0000011); ---- -=== `captureScreenshots` +=== `kobiton:captureScreenshots` [NOTE] This is not available for native and hybrid apps, as well as devices on Android 6.0 and earlier. @@ -66,10 +76,10 @@ Screenshots will be captured after each test step automatically. They'll be avai .Example [source,java] ---- -capabilities.setCapability("captureScreenshots", true); // Take a screenshot after each test step. +capabilities.setCapability("captureScreenshots", true); ---- -=== `deviceGroup` +=== `kobiton:deviceGroup` The device group within the test session metadata. @@ -80,30 +90,18 @@ The device group within the test session metadata. .Example [source,java] ---- -capabilities.setCapability("deviceGroup", "ORGANIZATION"); // Assign to the device team. +capabilities.setCapability("deviceGroup", "ORGANIZATION"); ---- -=== `deviceName` - -The device name. Assign multiple platform versions using wildcards (`*`). - -* *Type:* `string` -* *Required capabilities:* None -* *Optional capabilities:* None +=== `kobiton:deviceTags` -.Example -[source,java] ----- -capabilities.setCapability("deviceName", "iPhone 11 Pro"); // Use iPhone 11 Pro as the device name. -capabilities.setCapability("deviceName", "*Pro"); // Use any device name ending with 'Pro'. -capabilities.setCapability("deviceName", "iPhone 11*"); // Use any device name starting with 'iPhone 11'. ----- +Select devices for the automation session using device tags. -=== `kobiton:deviceTags` +When this capability is used, Kobiton searches for devices that have the specified tag or tags assigned. The session runs on a device that matches the provided tags and any additional capability filters. -Filter devices by device tags. Tags can be _Org_ or _Me_. +Tags can be _Org_ (available for the whole org) or _Me_ (only for the creator). -* *Type:* `string` +* *Type:* 2-dimensional `string` array * *Required capabilities:* None * *Optional capabilities:* `kobiton:deviceTagType` * *Behavior*: By default, returns matching device(s) with both _Org_ and _Me_ tags. Set `kobiton:deviceTagType` to filter by a single tag type. @@ -115,6 +113,10 @@ Follow 2-dimensional string array formats when specifying tags: * Multiple groups (AND across groups): `[["project","dev"],["healthy"]]` * Multiple nested layers such as `[["project", ["dev", "test"]],["healthy"]]` are not supported. +WARNING: Do not provide an empty value for `kobiton:deviceTags`. An empty value may cause session creation to fail. + +NOTE: If no device selection capability is provided (such as `deviceName`, `udid`, or `kobiton:deviceTags`), Kobiton may not be able to determine a target device for the session. + See the below examples of how to use 2-dimensional string array formats for different programming languages. .Java and .NET(C#) Example @@ -149,28 +151,13 @@ If `kobiton:deviceTags` is provided, set to either `private` (_Me_ tag) or `publ capabilities.setCapability("kobiton:deviceTagType", "public"); ---- -[#_ensureWebviewsHavePages] -=== `ensureWebviewsHavePages` - -Ensures that all WebView elements in the application have loaded their content. - -* *Type:* `boolean` -* *Required capabilities:* None -* *Optional capabilities:* xref:_visualValidation[] - -.Example -[source,java] ----- -capabilities.setCapability("ensureWebviewsHavePages", true); // Set to true. ----- - [#_flexCorrect] === `kobiton:flexCorrect` [NOTE] This capability cannot be used in Basic Appium 2 sessions. -When a script is run on different devices, element selection is autocorrected. For more information, see xref:automation-testing:capabilities/add-flexcorrect.adoc[] +Automatically correct element selection when running a script on different devices. For more information, see xref:automation-testing:capabilities/add-flexcorrect.adoc[] * *Type:* `boolean` * *Required capabilities:* xref:_baselineSessionId[] @@ -179,12 +166,12 @@ When a script is run on different devices, element selection is autocorrected. F .Example [source,java] ---- -capabilities.setCapability("kobiton:flexCorrect", true); // Enable flexCorrect by setting capability to true. +capabilities.setCapability("kobiton:flexCorrect", true); ---- -=== `groupId` +=== `kobiton:groupId` -The group ID within the test session metadata. +The group ID within the test session metadata. This affects the cleanup behaviours of the device at session end if the assigned group has a custom cleanup policy. * *Type:* `string` * *Required capabilities:* None @@ -193,10 +180,10 @@ The group ID within the test session metadata. .Example [source,java] ---- -capabilities.setCapability("groupId", "0011"); // Assign to the Docs Team. +capabilities.setCapability("groupId", "0011"); ---- -=== `sessionDescription` +=== `kobiton:sessionDescription` The description of the test session, typically between 50-72 characters, but can be set to any length. @@ -210,7 +197,7 @@ The description of the test session, typically between 50-72 characters, but can capabilities.setCapability("sessionDescription", "This tests the login feature with biometric authentication."); // Provide the test session description. ---- -=== `sessionName` +=== `kobiton:sessionName` The name of the test session. @@ -247,9 +234,9 @@ Categorize and organize sessions by assigning a custom tag at the time of sessio capabilities.setCapability("kobiton:sessionTags", ["nightly-run", "login-flow", "regression"]); ---- -=== `useConfiguration` +=== `kobiton:useConfiguration` -The device configuration to use during the test session. *Only available for web testing*. +The network payload capture configuration to use during the test session. See xref:automation-testing:local-devices/capture-network-payload-data.adoc[this article,window=read-later] to learn more. * *Type:* `string` * *Required capabilities:* None @@ -258,26 +245,39 @@ The device configuration to use during the test session. *Only available for web .Example [source,java] ---- -capabilities.setCapability("useConfiguration", "kobiton"); // Use this pre-defined configuration for the test session. +capabilities.setCapability("useConfiguration", "kobiton"); ---- [#_work_app] === `kobiton:workApp` -Before using this capability, you must xref:scripting/launch-work-profile-app-android.adoc#_install_and_prepare_the_work_profile_app[install and prepare the Work Profile app,window=read-later]. +Before using this capability, xref:scripting/launch-work-profile-app-android.adoc#_install_and_prepare_the_work_profile_app[the Work Profile app,window=read-later] must be installed and configured. include::partial$work-profile-capability.adoc[] == Appium Capabilities -Kobiton supports most Appium capabilities. The capabilities listed below are typically required or have specific use cases unique to Kobiton. +Kobiton supports most standard Appium capabilities. The capabilities listed below are commonly used when running automation sessions on Kobiton devices. For Basic Appium 2 sessions, follow the https://appium.io/docs/en/2.0/guides/migrating-1-to-2/#capabilities[Appium 2 guidelines] for vendor prefix. +.Appium capability index +* <> +* <> +* <> +* <> +* <> +* <> +* <> +* <> +* <> +* <> +* <> + [#_accessKey] === `accessKey` -The Kobiton xref:profile:manage-your-api-credentials.adoc#_get_an_api_key[API key,window=read-later] for authentication. Only required for Appium `java-client` 9.2.2 or above. +The Kobiton xref:profile:manage-your-api-credentials.adoc#_get_an_api_key[Kobiton API key,window=read-later] to authenticate the automation session. * *Type:* `string` * *Required capabilities:* `'appium:username'` @@ -286,12 +286,30 @@ The Kobiton xref:profile:manage-your-api-credentials.adoc#_get_an_api_key[API ke .Example [source,java] ---- -capabilities.setCapability("appium:accessKey", "ac9****8b-5*fc-4485-82eb-c5b****baed"); // The API key to authenticate with. +capabilities.setCapability("appium:accessKey", "ac9****8b-5*fc-4485-82eb-c5b****baed"); +---- + +=== `app` + +The application used during the test session. If the app is not already installed on the device, Kobiton downloads and installs it using the provided value. + +* *Type:* `string` +* *Required capabilities:* None +* *Optional capabilities:* None + +.Example +[source,java] +---- +// Install the app using the Kobiton app repository. +capabilities.setCapability("app", "kobiton-store:000111"); + +// Install the app using a direct download link. +capabilities.setCapability("app", "https://kobiton.docsapp.net/apps/app_id"); ---- === `autoWebview` -The webview context to use during the test session. *Only available for web testing*. +Automatically switch to the WebView context when it becomes available. * *Type:* `boolean` * *Required capabilities:* None @@ -300,12 +318,12 @@ The webview context to use during the test session. *Only available for web test .Example [source,java] ---- -capabilities.setCapability("appium:autoWebview", true); // Automatically select the webview context. +capabilities.setCapability("appium:autoWebview", true); ---- === `browserName` -The web browser to use during the test session. *Only available for web testing*. +The browser used during the test session. * *Type:* `string` * *Required capabilities:* None @@ -314,13 +332,33 @@ The web browser to use during the test session. *Only available for web testing* .Example [source,java] ---- -capabilities.setCapability("browserName", "safari"); // Use Safari for web testing on iOS. -capabilities.setCapability("browserName", "chrome"); // Use Chrome for web testing on Android. +capabilities.setCapability("browserName", "safari"); +capabilities.setCapability("browserName", "chrome"); +---- + +=== `deviceName` + +The device name used when selecting a device for the session. Wildcards (`*`) can be used to match multiple devices. + +* *Type:* `string` +* *Required capabilities:* None +* *Optional capabilities:* None + +.Example +[source,java] +---- +capabilities.setCapability("deviceName", "iPhone 11 Pro"); + +// Use any device name ending with 'Pro'. +capabilities.setCapability("deviceName", "*Pro"); + +// Use any device name starting with 'iPhone 11'. +capabilities.setCapability("deviceName", "iPhone 11*"); ---- === `deviceOrientation` -The starting orientation for the device screen. +The starting orientation of the device screen. * *Type:* `integer` * *Required capabilities:* None @@ -329,8 +367,9 @@ The starting orientation for the device screen. .Example [source,java] ---- -capabilities.setCapability("appium:deviceOrientation", "portrait"); // Set the device's starting orientation to portrait. -capabilities.setCapability("appium:deviceOrientation", "landscape"); // Set the device's starting orientation to landscape. +capabilities.setCapability("appium:deviceOrientation", "portrait"); + +capabilities.setCapability("appium:deviceOrientation", "landscape"); ---- === `fullReset` @@ -338,7 +377,7 @@ capabilities.setCapability("appium:deviceOrientation", "landscape"); // Set the [NOTE] This is only available for private devices. -Remove all apps installed during the test session. To keep the apps and only remove their app data, use xref:_noreset[] instead. +Remove all apps installed during the test session. To keep the apps and only remove their data, use xref:_noreset[]. * *Type:* `boolean` * *Required capabilities:* None @@ -347,7 +386,7 @@ Remove all apps installed during the test session. To keep the apps and only rem .Example [source,java] ---- -capabilities.setCapability("appium:fullReset", true); // Delete the app and the related data. +capabilities.setCapability("appium:fullReset", true); ---- === `noReset` @@ -355,7 +394,7 @@ capabilities.setCapability("appium:fullReset", true); // Delete the app and the [NOTE] This is only available for private devices. -Remove all app data from apps installed during the test session. To remove the full app, use xref:_fullreset[] instead. +Remove application data but keep the installed app. To completely remove the app, use xref:_fullreset[]. * *Type:* `string` * *Required capabilities:* None @@ -364,10 +403,10 @@ Remove all app data from apps installed during the test session. To remove the f .Example [source,java] ---- -capabilities.setCapability("appium:noReset", false); // Delete just the app data. +capabilities.setCapability("appium:noReset", false); ---- -=== 'platformName' +=== `platformName` The type of platform, i.e Android or iOS. @@ -377,7 +416,7 @@ The type of platform, i.e Android or iOS. === `udid` -The device Unique Device Identifier (UDID). +The unique device identifier (UDID) of the device used for the session. * *Type:* `string` * *Required capabilities:* None @@ -385,20 +424,20 @@ The device Unique Device Identifier (UDID). .Example [source,java] ---- -capabilities.setCapability("appium:udid", "01234567-89ab-cdef-0123-456789abcdef"); // Use the device with this UDID. +capabilities.setCapability("appium:udid", "01234567-89ab-cdef-0123-456789abcdef"); ---- [#_username] === `username` -The Kobiton xref:profile:manage-your-profile.adoc[username,window=read-later] for authentication. Only required for Appium `java-client` 9.2.2 or above. +The Kobiton xref:profile:manage-your-profile.adoc[username,window=read-later] used for authentication. * *Type:* `string` -* *Required capabilities:* `'appium:username'` +* *Required capabilities:* `'appium:accessKey'` * *Optional capabilities:* None .Example [source,java] ---- -capabilities.setCapability("appium:username", "johndoe"); // The username to authenticate with. +capabilities.setCapability("appium:username", "johndoe"); ---- diff --git a/docs/modules/automation-testing/partials/work-profile-capability.adoc b/docs/modules/automation-testing/partials/work-profile-capability.adoc index 30bf6e3c5..cc1dfbe04 100644 --- a/docs/modules/automation-testing/partials/work-profile-capability.adoc +++ b/docs/modules/automation-testing/partials/work-profile-capability.adoc @@ -1,4 +1,4 @@ -Launch a Work Profile app using the name that appears in the app drawer (case-sensitive). This capability only accepts 1 app name. +Launch a Work Profile app using the name shown in the app drawer (case-sensitive). Only 1 Work Profile app can be launched in a session. * *Type*: `string` * *Required capabilities*: None