@sap_oss/wdio-qmate-service 2.13.0 → 2.13.2
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.
- package/docs/doc.md +140 -7
- package/docs/index.md +1 -1
- package/docs/sections/bestPractices/authentication.md +2 -2
- package/docs/sections/bestPractices/dataHandling.md +1 -1
- package/docs/sections/contact.md +1 -1
- package/docs/sections/features/config.md +1 -1
- package/docs/sections/features/dataHandling.md +2 -2
- package/docs/sections/features/selectors.md +10 -10
- package/docs/sections/gettingStarted/config.md +1 -1
- package/docs/sections/gettingStarted/setup.md +2 -2
- package/docs/sections/support/bugReporting.md +4 -4
- package/docs/sections/support/troubleshooting.md +1 -1
- package/lib/index.js.map +1 -1
- package/lib/reuse/helper/elementResolving.d.ts +1 -0
- package/lib/reuse/helper/elementResolving.js +12 -0
- package/lib/reuse/helper/elementResolving.js.map +1 -1
- package/lib/reuse/index.js +2 -1
- package/lib/reuse/index.js.map +1 -1
- package/lib/reuse/modules/flp/userLocks.d.ts +3 -3
- package/lib/reuse/modules/flp/userLocks.js +5 -5
- package/lib/reuse/modules/flp/userLocks.js.map +1 -1
- package/lib/reuse/modules/mobile/device.d.ts +160 -4
- package/lib/reuse/modules/mobile/device.js +367 -13
- package/lib/reuse/modules/mobile/device.js.map +1 -1
- package/lib/reuse/modules/mobile/element.d.ts +44 -25
- package/lib/reuse/modules/mobile/element.js +80 -26
- package/lib/reuse/modules/mobile/element.js.map +1 -1
- package/lib/reuse/modules/mobile/userInteraction.d.ts +73 -7
- package/lib/reuse/modules/mobile/userInteraction.js +159 -23
- package/lib/reuse/modules/mobile/userInteraction.js.map +1 -1
- package/lib/reuse/modules/util/Util.d.ts +2 -0
- package/lib/reuse/modules/util/Util.js +2 -0
- package/lib/reuse/modules/util/Util.js.map +1 -1
- package/lib/reuse/modules/util/userSettings.d.ts +27 -0
- package/lib/reuse/modules/util/userSettings.js +181 -0
- package/lib/reuse/modules/util/userSettings.js.map +1 -0
- package/lib/scripts/hooks/onComplete.js.map +1 -1
- package/lib/scripts/hooks/onPrepare.js +14 -2
- package/lib/scripts/hooks/onPrepare.js.map +1 -1
- package/lib/scripts/stats/createUsage.d.ts +1 -0
- package/lib/scripts/stats/createUsage.js +0 -1
- package/lib/scripts/stats/createUsage.js.map +1 -1
- package/lib/scripts/stats/getUserId.js +0 -1
- package/lib/scripts/stats/getUserId.js.map +1 -1
- package/lib/scripts/stats/stats.d.ts +1 -1
- package/lib/scripts/stats/stats.js +4 -3
- package/lib/scripts/stats/stats.js.map +1 -1
- package/lib/scripts/stats/updateUsage.js +0 -1
- package/lib/scripts/stats/updateUsage.js.map +1 -1
- package/package.json +1 -1
- package/test/reuse/flp/userLocks/data/data.json +3 -3
- package/test/reuse/flp/userLocks/deleteExistingLockEntries.spec.js +18 -0
- package/test/reuse/flp/userLocks/getNumberOfLockEntries.spec.js +1 -0
- package/test/reuse/util/userSettings/data/data.json +6 -0
- package/test/reuse/util/userSettings/getDateFormatFromUserSettings.spec.js +21 -0
- package/test/reuse/util/userSettings/getLanguageFromUserSettings.spec.js +15 -0
- package/test/reuse/util/userSettings/getTimeFormatFromUserSettings.spec.js +17 -0
- package/test/reuse/util/userSettings/getTimeZoneFromUserSettings.spec.js +16 -0
- package/test/reuse/util/userSettings/setDateFormatFromUserSettings.spec.js +33 -0
- package/test/reuse/util/userSettings/setLanguageFromUserSettings.spec.js +16 -0
- package/test/reuse/util/userSettings/setNumberFormatFromUserSettings.spec.js +16 -0
- package/test/reuse/util/userSettings/setS4UserSettings.spec.js +37 -0
- package/test/reuse/util/userSettings/setTimeFormatFromUserSettings.spec.js +17 -0
- package/test/reuse/util/userSettings/setTimeZoneFromUserSettings.spec.js +16 -0
- package/test/reuse/util/userSettings/test.userSettings.apply.conf.js +16 -0
- package/test/reuse/util/userSettings/test.userSettings.conf.js +24 -0
package/docs/doc.md
CHANGED
|
@@ -6097,8 +6097,15 @@ Global namespace for Fiori Launchpad (FLP) modules.
|
|
|
6097
6097
|
* [.userSettings](#flp.userSettings)
|
|
6098
6098
|
* [.setLanguageFromUserSettings(user, password)](#flp.userSettings.setLanguageFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6099
6099
|
* [.setDateFormatFromUserSettings(user, password)](#flp.userSettings.setDateFormatFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6100
|
-
* [.
|
|
6100
|
+
* [.setTimeFormatFromUserSettings(user, password)](#flp.userSettings.setTimeFormatFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6101
6101
|
* [.setTimeZoneFromUserSettings(user, password)](#flp.userSettings.setTimeZoneFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6102
|
+
* [.setNumberFormatFromUserSettings(user, password)](#flp.userSettings.setNumberFormatFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6103
|
+
* [.setS4UserSettings(user, password)](#flp.userSettings.setS4UserSettings) ⇒ <code>Promise.<void></code>
|
|
6104
|
+
* [.getLanguageFromUserSettings(user, password)](#flp.userSettings.getLanguageFromUserSettings) ⇒ <code>Promise.<String></code>
|
|
6105
|
+
* [.getDateFormatFromUserSettings(user, password)](#flp.userSettings.getDateFormatFromUserSettings) ⇒ <code>Promise.<String></code>
|
|
6106
|
+
* [.getTimeFormatFromUserSettings(user, password)](#flp.userSettings.getTimeFormatFromUserSettings) ⇒ <code>Promise.<String></code>
|
|
6107
|
+
* [.getTimeZoneFromUserSettings(user, password)](#flp.userSettings.getTimeZoneFromUserSettings) ⇒ <code>Promise.<String></code>
|
|
6108
|
+
* [.getNumberFormatFromUserSettings(user, password)](#flp.userSettings.getNumberFormatFromUserSettings) ⇒ <code>Promise.<String></code>
|
|
6102
6109
|
|
|
6103
6110
|
<a name="flp.userLocks"></a>
|
|
6104
6111
|
|
|
@@ -6152,8 +6159,15 @@ await flp.userLocks.deleteExistingLockEntries("user", "password");
|
|
|
6152
6159
|
* [.userSettings](#flp.userSettings)
|
|
6153
6160
|
* [.setLanguageFromUserSettings(user, password)](#flp.userSettings.setLanguageFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6154
6161
|
* [.setDateFormatFromUserSettings(user, password)](#flp.userSettings.setDateFormatFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6155
|
-
* [.
|
|
6162
|
+
* [.setTimeFormatFromUserSettings(user, password)](#flp.userSettings.setTimeFormatFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6156
6163
|
* [.setTimeZoneFromUserSettings(user, password)](#flp.userSettings.setTimeZoneFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6164
|
+
* [.setNumberFormatFromUserSettings(user, password)](#flp.userSettings.setNumberFormatFromUserSettings) ⇒ <code>Promise.<void></code>
|
|
6165
|
+
* [.setS4UserSettings(user, password)](#flp.userSettings.setS4UserSettings) ⇒ <code>Promise.<void></code>
|
|
6166
|
+
* [.getLanguageFromUserSettings(user, password)](#flp.userSettings.getLanguageFromUserSettings) ⇒ <code>Promise.<String></code>
|
|
6167
|
+
* [.getDateFormatFromUserSettings(user, password)](#flp.userSettings.getDateFormatFromUserSettings) ⇒ <code>Promise.<String></code>
|
|
6168
|
+
* [.getTimeFormatFromUserSettings(user, password)](#flp.userSettings.getTimeFormatFromUserSettings) ⇒ <code>Promise.<String></code>
|
|
6169
|
+
* [.getTimeZoneFromUserSettings(user, password)](#flp.userSettings.getTimeZoneFromUserSettings) ⇒ <code>Promise.<String></code>
|
|
6170
|
+
* [.getNumberFormatFromUserSettings(user, password)](#flp.userSettings.getNumberFormatFromUserSettings) ⇒ <code>Promise.<String></code>
|
|
6157
6171
|
|
|
6158
6172
|
<a name="flp.userSettings.setLanguageFromUserSettings"></a>
|
|
6159
6173
|
|
|
@@ -6189,13 +6203,13 @@ Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' date format from user
|
|
|
6189
6203
|
```js
|
|
6190
6204
|
await flp.userSettings.setDateFormatFromUserSettings("user", "password");
|
|
6191
6205
|
```
|
|
6192
|
-
<a name="flp.userSettings.
|
|
6206
|
+
<a name="flp.userSettings.setTimeFormatFromUserSettings"></a>
|
|
6193
6207
|
|
|
6194
|
-
#### userSettings.
|
|
6195
|
-
Sets the environment variable 'USER_SETTINGS_DATE_FORMAT'
|
|
6208
|
+
#### userSettings.setTimeFormatFromUserSettings(user, password) ⇒ <code>Promise.<void></code>
|
|
6209
|
+
Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' time format from user settings.
|
|
6196
6210
|
|
|
6197
6211
|
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6198
|
-
**Returns**: <code>Promise.<void></code> - A promise that resolves when the
|
|
6212
|
+
**Returns**: <code>Promise.<void></code> - A promise that resolves when the time format has been set.
|
|
6199
6213
|
|
|
6200
6214
|
| Param | Type | Description |
|
|
6201
6215
|
| --- | --- | --- |
|
|
@@ -6204,7 +6218,7 @@ Sets the environment variable 'USER_SETTINGS_DATE_FORMAT' date format from user
|
|
|
6204
6218
|
|
|
6205
6219
|
**Example**
|
|
6206
6220
|
```js
|
|
6207
|
-
await flp.userSettings.
|
|
6221
|
+
await flp.userSettings.setTimeFormatFromUserSettings("user", "password");
|
|
6208
6222
|
```
|
|
6209
6223
|
<a name="flp.userSettings.setTimeZoneFromUserSettings"></a>
|
|
6210
6224
|
|
|
@@ -6223,3 +6237,122 @@ Sets the environment variable 'USER_SETTINGS_TIME_ZONE' time zone from user sett
|
|
|
6223
6237
|
```js
|
|
6224
6238
|
await flp.userSettings.setTimeZoneFromUserSettings("user", "password");
|
|
6225
6239
|
```
|
|
6240
|
+
<a name="flp.userSettings.setNumberFormatFromUserSettings"></a>
|
|
6241
|
+
|
|
6242
|
+
#### userSettings.setNumberFormatFromUserSettings(user, password) ⇒ <code>Promise.<void></code>
|
|
6243
|
+
Sets the environment variable 'USER_SETTINGS_NUMBER_FORMAT' number format from user settings.
|
|
6244
|
+
|
|
6245
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6246
|
+
**Returns**: <code>Promise.<void></code> - A promise that resolves when the number format has been set.
|
|
6247
|
+
|
|
6248
|
+
| Param | Type | Description |
|
|
6249
|
+
| --- | --- | --- |
|
|
6250
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6251
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6252
|
+
|
|
6253
|
+
**Example**
|
|
6254
|
+
```js
|
|
6255
|
+
await flp.userSettings.setNumberFormatFromUserSettings("user", "password");
|
|
6256
|
+
```
|
|
6257
|
+
<a name="flp.userSettings.setS4UserSettings"></a>
|
|
6258
|
+
|
|
6259
|
+
#### userSettings.setS4UserSettings(user, password) ⇒ <code>Promise.<void></code>
|
|
6260
|
+
Sets the user settings for S4.
|
|
6261
|
+
|
|
6262
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6263
|
+
**Returns**: <code>Promise.<void></code> - A promise that resolves when the user settings have been set.
|
|
6264
|
+
|
|
6265
|
+
| Param | Type | Description |
|
|
6266
|
+
| --- | --- | --- |
|
|
6267
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6268
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6269
|
+
|
|
6270
|
+
**Example**
|
|
6271
|
+
```js
|
|
6272
|
+
await flp.userSettings.setS4UserSettings("user", "password");
|
|
6273
|
+
```
|
|
6274
|
+
<a name="flp.userSettings.getLanguageFromUserSettings"></a>
|
|
6275
|
+
|
|
6276
|
+
#### userSettings.getLanguageFromUserSettings(user, password) ⇒ <code>Promise.<String></code>
|
|
6277
|
+
Gets the language from user settings.
|
|
6278
|
+
|
|
6279
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6280
|
+
**Returns**: <code>Promise.<String></code> - The language from user settings.
|
|
6281
|
+
|
|
6282
|
+
| Param | Type | Description |
|
|
6283
|
+
| --- | --- | --- |
|
|
6284
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6285
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6286
|
+
|
|
6287
|
+
**Example**
|
|
6288
|
+
```js
|
|
6289
|
+
const language = await flp.userSettings.getLanguageFromUserSettings("user", "password");
|
|
6290
|
+
```
|
|
6291
|
+
<a name="flp.userSettings.getDateFormatFromUserSettings"></a>
|
|
6292
|
+
|
|
6293
|
+
#### userSettings.getDateFormatFromUserSettings(user, password) ⇒ <code>Promise.<String></code>
|
|
6294
|
+
Gets the date format from user settings.
|
|
6295
|
+
|
|
6296
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6297
|
+
**Returns**: <code>Promise.<String></code> - The date format from user settings.
|
|
6298
|
+
|
|
6299
|
+
| Param | Type | Description |
|
|
6300
|
+
| --- | --- | --- |
|
|
6301
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6302
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6303
|
+
|
|
6304
|
+
**Example**
|
|
6305
|
+
```js
|
|
6306
|
+
const dateFormat = await flp.userSettings.getDateFormatFromUserSettings("user", "password");
|
|
6307
|
+
```
|
|
6308
|
+
<a name="flp.userSettings.getTimeFormatFromUserSettings"></a>
|
|
6309
|
+
|
|
6310
|
+
#### userSettings.getTimeFormatFromUserSettings(user, password) ⇒ <code>Promise.<String></code>
|
|
6311
|
+
Gets the time format from user settings.
|
|
6312
|
+
|
|
6313
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6314
|
+
**Returns**: <code>Promise.<String></code> - The time format from user settings.
|
|
6315
|
+
|
|
6316
|
+
| Param | Type | Description |
|
|
6317
|
+
| --- | --- | --- |
|
|
6318
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6319
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6320
|
+
|
|
6321
|
+
**Example**
|
|
6322
|
+
```js
|
|
6323
|
+
const timeFormat = await flp.userSettings.getTimeFormatFromUserSettings("user", "password");
|
|
6324
|
+
```
|
|
6325
|
+
<a name="flp.userSettings.getTimeZoneFromUserSettings"></a>
|
|
6326
|
+
|
|
6327
|
+
#### userSettings.getTimeZoneFromUserSettings(user, password) ⇒ <code>Promise.<String></code>
|
|
6328
|
+
Gets the time zone from user settings.
|
|
6329
|
+
|
|
6330
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6331
|
+
**Returns**: <code>Promise.<String></code> - The time zone from user settings.
|
|
6332
|
+
|
|
6333
|
+
| Param | Type | Description |
|
|
6334
|
+
| --- | --- | --- |
|
|
6335
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6336
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6337
|
+
|
|
6338
|
+
**Example**
|
|
6339
|
+
```js
|
|
6340
|
+
const timeZone = await flp.userSettings.getTimeZoneFromUserSettings("user", "password");
|
|
6341
|
+
```
|
|
6342
|
+
<a name="flp.userSettings.getNumberFormatFromUserSettings"></a>
|
|
6343
|
+
|
|
6344
|
+
#### userSettings.getNumberFormatFromUserSettings(user, password) ⇒ <code>Promise.<String></code>
|
|
6345
|
+
Gets the number format from user settings.
|
|
6346
|
+
|
|
6347
|
+
**Kind**: static method of [<code>userSettings</code>](#flp.userSettings)
|
|
6348
|
+
**Returns**: <code>Promise.<String></code> - The number format from user settings.
|
|
6349
|
+
|
|
6350
|
+
| Param | Type | Description |
|
|
6351
|
+
| --- | --- | --- |
|
|
6352
|
+
| user | <code>String</code> | The username for authentication. |
|
|
6353
|
+
| password | <code>String</code> | The password for authentication. |
|
|
6354
|
+
|
|
6355
|
+
**Example**
|
|
6356
|
+
```js
|
|
6357
|
+
const numberFormat = await flp.userSettings.getNumberFormatFromUserSettings("user", "password");
|
|
6358
|
+
```
|
package/docs/index.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# **Qmate** Service
|
|
2
|
-
**Qmate Service** is a custom [WebdriverIO](https://webdriver.io/) service for testing web applications and APIs.
|
|
2
|
+
**Qmate Service** is a custom [WebdriverIO](https://webdriver.io/){target="__blank"} service for testing web applications and APIs.
|
|
3
3
|
|
|
4
4
|
!!! note
|
|
5
5
|
The latest release of the Qmate Service is compatible with **WebdriverIO V8**.
|
|
@@ -13,7 +13,7 @@ Which way to choose depends on your needs and preferences. If you are testing a
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
## Login via **Reuse Methods**
|
|
16
|
-
The other way of system authentication, is to use the specific [reuse method](https://sap.github.io/wdio-qmate-service/doc/#ui5.session).
|
|
16
|
+
The other way of system authentication, is to use the specific [reuse method](https://sap.github.io/wdio-qmate-service/doc/#ui5.session){target="__blank"}.
|
|
17
17
|
This is commonly recommended, especially if you are switching between multiple users or systems during the test execution.
|
|
18
18
|
With this approach, you handle the login within a step of your script/s.
|
|
19
19
|
The benefit of this approach is, to have more control over the login as an actual step inside your test process.
|
|
@@ -79,7 +79,7 @@ You can use one of the following methods:
|
|
|
79
79
|
// further test data ...
|
|
80
80
|
}
|
|
81
81
|
```
|
|
82
|
-
- To store your credential securely, you can refer to our main documentation under section [Data
|
|
82
|
+
- To store your credential securely, you can refer to our main documentation under section [Handling Private Data](https://pages.github.tools.sap/sProcurement/qmate/sections/further-concepts/handling-private-data/){target="__blank"}.
|
|
83
83
|
|
|
84
84
|
!!! tip
|
|
85
85
|
You can disable the login centrally without touching your specs by setting the `formType` to `"skip"` inside your configuration file.
|
package/docs/sections/contact.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
In case of questions or issues, please feel free to reach out to us or open an [issue](https://github.com/SAP/wdio-qmate-service/issues) on our [GitHub Page](https://github.com/SAP/wdio-qmate-service).
|
|
1
|
+
In case of questions or issues, please feel free to reach out to us or open an [issue](https://github.com/SAP/wdio-qmate-service/issues){target="__blank"} on our [GitHub Page](https://github.com/SAP/wdio-qmate-service){target="__blank"}.
|
|
2
2
|
|
|
3
3
|
### Benjamin Warth
|
|
4
4
|
:octicons-location-16: Walldorf - Germany
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
## Important WebdriverIO Parameters
|
|
2
2
|
|
|
3
3
|
!!!info "WebdriverIO Parameters"
|
|
4
|
-
For more information about how to setup your config please see the official [documentation](https://webdriver.io/docs/configurationfile/) from WebdriverIO.
|
|
4
|
+
For more information about how to setup your config please see the official [documentation](https://webdriver.io/docs/configurationfile/){target="__blank"} from WebdriverIO.
|
|
5
5
|
|
|
6
6
|
### *baseUrl*
|
|
7
7
|
The `baseUrl` defines the entry point of your script. Here you can define in which system or application your script/s is/are being executed.
|
|
@@ -54,7 +54,7 @@ const references = browser.config.params.import.data["references"];
|
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
!!! tip
|
|
57
|
-
Alternatively, you can load the data with the following [reuse method](https://pages.github.tools.sap/sProcurement/wdio-qmate-service-ts/doc/#util.data.getData):
|
|
57
|
+
Alternatively, you can load the data with the following [reuse method](https://pages.github.tools.sap/sProcurement/wdio-qmate-service-ts/doc/#util.data.getData){target="__blank"}:
|
|
58
58
|
```js
|
|
59
59
|
const data = util.data.getData("createSupplierInvoice");
|
|
60
60
|
```
|
|
@@ -66,7 +66,7 @@ To store any value inside the imported file and make it available for other spec
|
|
|
66
66
|
references.documentNumber = "4500012345";
|
|
67
67
|
```
|
|
68
68
|
!!! warning
|
|
69
|
-
To be able to share data between different scripts, the specs need to be grouped together inside the configuration file. Please find more information under [Configuration - Specs](https://pages.github.tools.sap/sProcurement/qmate-profiles/sections/parameters/main/#specs). Please consider, that the data is only stored during the runtime of the test execution. To store data persistently, please see chapter [Advanced Data Handling](./advancedDataHandling.md).
|
|
69
|
+
To be able to share data between different scripts, the specs need to be grouped together inside the configuration file. Please find more information under [Configuration - Specs](https://pages.github.tools.sap/sProcurement/qmate-profiles/sections/parameters/main/#specs){target="__blank"}. Please consider, that the data is only stored during the runtime of the test execution. To store data persistently, please see chapter [Advanced Data Handling](./advancedDataHandling.md).
|
|
70
70
|
|
|
71
71
|
### Read data
|
|
72
72
|
To read data from the input data or reference file, use the following code **inside a step (it block)**:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
To perform any action on an element (e.g. clicking a button), you need to specify the element at which the action is being executed. This differs from the web technology you are using. Read the following instructions, depending on the UI technology of the application to be tested.
|
|
3
3
|
|
|
4
4
|
!!! info
|
|
5
|
-
|
|
5
|
+
Selectors are typically created using our Qmate Suite, but it is important to note that this tool is currently **only available for internal use at SAP**. For further information as **internal**, please refer to our official Qmate documentation.
|
|
6
6
|
|
|
7
7
|
## UI5
|
|
8
8
|
|
|
@@ -62,7 +62,7 @@ You have to define at least one property in ```elementProperties```. This could
|
|
|
62
62
|
}
|
|
63
63
|
```
|
|
64
64
|
!!! tip
|
|
65
|
-
|
|
65
|
+
For most of the cases it will be sufficient to provide only the elementProperties. Qmate Suite will generate the minimal unique selector for you.
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
### Overview
|
|
@@ -71,7 +71,7 @@ The following properties apply to all selector types (elementProperties, ancesto
|
|
|
71
71
|
| Property | Description | Sample | Format | Remark |
|
|
72
72
|
| -------- | ----------- | -------| ------ | ------ |
|
|
73
73
|
| ``metadata`` | the control type | ``"metadata": "sap.m.Button"``, ``"metadata": "sap.m.Input"`` | string: ``"property": "value"`` | |
|
|
74
|
-
| ``<ui5Property>`` | UI5 properties including aggregations and associations, as defined in the official [UI5 API](https://sapui5.hana.ondemand.com/#/api) | ``"text": "Amount"``, ``"tooltip": "Amount"``, ``"title": "Currency"``, ``"enabled": true`` | string: ``"property": "value"``, numeric: ``"property": 123``, boolean: ``"property": true`` | |
|
|
74
|
+
| ``<ui5Property>`` | UI5 properties including aggregations and associations, as defined in the official [UI5 API](https://sapui5.hana.ondemand.com/#/api){target="__blank"} | ``"text": "Amount"``, ``"tooltip": "Amount"``, ``"title": "Currency"``, ``"enabled": true`` | string: ``"property": "value"``, numeric: ``"property": 123``, boolean: ``"property": true`` | |
|
|
75
75
|
| ``id`` | the ID of the control | ``"id": "myButtonId"``, ``"id": "my*Id*"`` | string: ``"property": "value"`` | |
|
|
76
76
|
| ``viewName`` | the view name | ``"viewName": "myViewName"``, ``"viewName": "*view*"``| string: ``"property": "value"`` | |
|
|
77
77
|
| ``viewId`` | the view ID | ``"viewId": "*myViewId*"`` | string: ``"property": "value"`` | |
|
|
@@ -81,10 +81,10 @@ The following properties apply to all selector types (elementProperties, ancesto
|
|
|
81
81
|
| ``domProperties`` | the properties of the DOM | ``"domProperties": {"nodeName": "div", "class": "buttonNU* class2*", "id": "my*Id*"}`` | string: ``"property": "value"``, numeric: ``"property": 123``, boolean: ``"property": true`` | can be used if the UI5 Virtual DOM is not sufficient |
|
|
82
82
|
|
|
83
83
|
!!! info
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
Wildcards are supported for all properties, aggregation and associations
|
|
85
|
+
```js
|
|
86
|
+
"text": "my*text*"
|
|
87
|
+
```
|
|
88
88
|
|
|
89
89
|
### Nested Properties
|
|
90
90
|
In case you need to specify the element based on its surrounding, you can define nested properties.
|
|
@@ -103,7 +103,7 @@ In case you need to specify the element based on its surrounding, you can define
|
|
|
103
103
|
};
|
|
104
104
|
```
|
|
105
105
|
!!! info
|
|
106
|
-
|
|
106
|
+
Nesting is enabled infinitely for *ancestorProperties*, *siblingProperties* and *descendantProperties*. Be cautious, the more level of nesting you add the slower your script will be.
|
|
107
107
|
|
|
108
108
|
### Usage of Selectors
|
|
109
109
|
For almost every UI5 action we provide, you can pass the selector directly to the function like:
|
|
@@ -137,7 +137,7 @@ const elem = await nonUi5.element.getByCss("input[title='name']");
|
|
|
137
137
|
const elem = await nonUi5.element.getByCssContainingText(".button", "Save");
|
|
138
138
|
```
|
|
139
139
|
!!! info
|
|
140
|
-
|
|
140
|
+
To get a complete overview about all possible methods, please see [nonUi5.element](https://pages.github.tools.sap/sProcurement/wdio-qmate-service-ts/doc/#nonUi5.element){target="__blank"}.
|
|
141
141
|
|
|
142
142
|
|
|
143
143
|
### Getting the attributes manually
|
|
@@ -155,7 +155,7 @@ clearly.
|
|
|
155
155
|
$$("[<attr>='<attrValue>']");
|
|
156
156
|
```
|
|
157
157
|
!!! warning
|
|
158
|
-
|
|
158
|
+
If there are more than one elements found, try to find another attribute or add some more attributes until you will find a single element (you can still pass an index to the reuse function if you are not able to find a unique selector).
|
|
159
159
|
|
|
160
160
|
|
|
161
161
|
### Usage
|
|
@@ -15,4 +15,4 @@ exports.config = {
|
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
!!! info "WebdriverIO Parameters"
|
|
18
|
-
For more information about **how to setup your config**, please see the official [documentation](https://webdriver.io/docs/configurationfile/) from WebdriverIO.
|
|
18
|
+
For more information about **how to setup your config**, please see the official [documentation](https://webdriver.io/docs/configurationfile/){target="__blank"} from WebdriverIO.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
## Prerequisites
|
|
2
|
-
- Make sure [Node.js](https://nodejs.org/en/download/) is installed on your computer.
|
|
3
|
-
- To use **Qmate Service**, you will have to install [WebdriverIO](https://webdriver.io/).
|
|
2
|
+
- Make sure [Node.js](https://nodejs.org/en/download/){target="__blank"} is installed on your computer.
|
|
3
|
+
- To use **Qmate Service**, you will have to install [WebdriverIO](https://webdriver.io/){target="__blank"}.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
To install the latest version of the service, simply execute the following command:
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
|
|
4
4
|
## Report a Bug
|
|
5
5
|
!!! bug "Important Information"
|
|
6
|
-
**Before** you open an [issue](https://github.com/SAP/wdio-qmate-service/issues), please go through the checklist below.
|
|
6
|
+
**Before** you open an [issue](https://github.com/SAP/wdio-qmate-service/issues){target="__blank"}, please go through the checklist below.
|
|
7
7
|
|
|
8
|
-
- [ ] Have a look at the **[
|
|
8
|
+
- [ ] Have a look at the **[troubleshooting](troubleshooting.md)** and **[known Issues & Limitations](knownIssuesAndLimitations.md)** section first, and check if a solution for your issue already exists.
|
|
9
9
|
- [ ] Be sure that there is **no syntactical** error displayed in the error log.
|
|
10
10
|
- [ ] Provide **links** to pipelines/gh-actions and/or specs/files of your repository.
|
|
11
11
|
- [ ] Provide a **detailed analysis** and add **screenshots** if possible.
|
|
12
12
|
- [ ] Follow the **template** given when opening an issue.
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
<a href="https://github.tools.sap/sProcurement/qmate/issues/new/choose" target="_blank" class="md-button">Report a Bug :fontawesome-solid-bug:</a>
|
|
15
15
|
|
|
16
16
|
## Request a Feature
|
|
17
17
|
If you want to request a feature, please make sure that it will add a common value to *Qmate Service*.
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
<a href="https://github.com/SAP/wdio-qmate-service/issues/new?assignees=Templada%2C+DIFSRIP&labels=feature&template=feature_request.md&title=%5BFeatureRequest%5D+-+Title+of+desired+feature" target="__blank" class="md-button md-button--primary">Request a Feature :fontawesome-solid-puzzle-piece:</a>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# Troubleshooting
|
|
2
|
-
If you find any bug or issue which is not listed below, please open a new [issue](https://github.com/SAP/wdio-qmate-service/issues) in the qmate repository. Thanks for your support.
|
|
2
|
+
If you find any bug or issue which is not listed below, please open a new [issue](https://github.com/SAP/wdio-qmate-service/issues){target="__blank"} in the qmate repository. Thanks for your support.
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
## SessionNotCreatedError
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,YAAY,CAAC;;;;;AAEb,kFAA+D;AAC/D,oEAAiD;AACjD,0EAAsD;AACtD,4EAAwD;AACxD,kEAA8C;AAC9C,6EAA0E;AAC1E,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEtC,MAAM,CAAC,OAAO,GAAG,MAAM,mBAAmB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resolveCssSelectorOrElement = resolveCssSelectorOrElement;
|
|
4
|
+
exports.resolveMobileSelectorOrElement = resolveMobileSelectorOrElement;
|
|
4
5
|
async function resolveCssSelectorOrElement(elementOrSelector) {
|
|
5
6
|
if (!elementOrSelector) {
|
|
6
7
|
throw new Error("Please provide an element or a CSS selector as first argument.");
|
|
@@ -12,4 +13,15 @@ async function resolveCssSelectorOrElement(elementOrSelector) {
|
|
|
12
13
|
return elementOrSelector;
|
|
13
14
|
}
|
|
14
15
|
}
|
|
16
|
+
async function resolveMobileSelectorOrElement(elementOrSelector) {
|
|
17
|
+
if (!elementOrSelector) {
|
|
18
|
+
throw new Error("Please provide an element or a selector as first argument.");
|
|
19
|
+
}
|
|
20
|
+
if (typeof elementOrSelector === "string") {
|
|
21
|
+
return await $(elementOrSelector);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return elementOrSelector;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
15
27
|
//# sourceMappingURL=elementResolving.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elementResolving.js","sourceRoot":"","sources":["../../../src/reuse/helper/elementResolving.ts"],"names":[],"mappings":";;AAEA,kEAUC;
|
|
1
|
+
{"version":3,"file":"elementResolving.js","sourceRoot":"","sources":["../../../src/reuse/helper/elementResolving.ts"],"names":[],"mappings":";;AAEA,kEAUC;AAED,wEAUC;AAtBM,KAAK,UAAU,2BAA2B,CAAC,iBAAmC;IACnF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IAED,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,iBAAiB,CAAC;IAC3B,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,8BAA8B,CAAC,iBAAmC;IACtF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACN,OAAO,iBAAiB,CAAC;IAC3B,CAAC;AACH,CAAC"}
|
package/lib/reuse/index.js
CHANGED
|
@@ -46,7 +46,8 @@ class ReuseLibrary {
|
|
|
46
46
|
formatter: Util_1.default.formatter,
|
|
47
47
|
function: Util_1.default.function,
|
|
48
48
|
system: Util_1.default.system,
|
|
49
|
-
component: Util_1.default.component
|
|
49
|
+
component: Util_1.default.component,
|
|
50
|
+
userSettings: Util_1.default.userSettings
|
|
50
51
|
};
|
|
51
52
|
global.util = {
|
|
52
53
|
...util,
|
package/lib/reuse/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reuse/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;AAEb,YAAY;AACZ,4CAAsC;AAEtC,UAAU;AACV,+DAA4C;AAC5C,qEAAkD;AAClD,4DAAyC;AACzC,qEAAkD;AAClD,wEAAqD;AACrD,qEAAkD;AAClD,4DAAyC;AAEzC,OAAO;AACP,qFAAwD;AAIxD,MAAM,YAAY;IAChB,IAAI;QACF,mBAAmB;QACnB,aAAa;QACb,MAAM,CAAC,GAAG,GAAG,YAAG,CAAC;QAEjB;;;WAGG;QACH,MAAM,MAAM,GAAG;YACb,SAAS,EAAE,gBAAW,CAAC,SAAS;YAChC,IAAI,EAAE,gBAAW,CAAC,IAAI;YACtB,UAAU,EAAE,gBAAW,CAAC,UAAU;YAClC,eAAe,EAAE,gBAAW,CAAC,eAAe;SAC7C,CAAC;QACF,MAAM,CAAC,MAAM,GAAG;YACd,GAAG,MAAM;YACT,GAAG,MAAM,CAAC,MAAM;SACjB,CAAC;QAEF;;;WAGG;QACH,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,cAAS,CAAC,OAAO;YAC1B,OAAO,EAAE,cAAS,CAAC,OAAO;YAC1B,IAAI,EAAE,cAAS,CAAC,IAAI;YACpB,IAAI,EAAE,cAAS,CAAC,IAAI;YACpB,SAAS,EAAE,cAAS,CAAC,SAAS;YAC9B,QAAQ,EAAE,cAAS,CAAC,QAAQ;YAC5B,MAAM,EAAE,cAAS,CAAC,MAAM;YACxB,SAAS,EAAE,cAAS,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/reuse/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -98,9 +98,9 @@ export declare class UserLocks {
|
|
|
98
98
|
* @description Gets the user info.
|
|
99
99
|
* @returns {Promise<UserInfo>} The user info.
|
|
100
100
|
* @throws {Error} If the user info cannot be retrieved.
|
|
101
|
-
* @example const userInfo = await flp.userLocks.
|
|
102
|
-
* @example console.log(userInfo.Id);
|
|
103
|
-
* @example console.log(userInfo.Name);
|
|
101
|
+
* @example const userInfo = await flp.userLocks._getUserInfo();
|
|
102
|
+
* @example util.console.log(userInfo.Id);
|
|
103
|
+
* @example util.console.log(userInfo.Name);
|
|
104
104
|
*/
|
|
105
105
|
private _getUserInfo;
|
|
106
106
|
/**
|
|
@@ -52,7 +52,7 @@ class UserLocks {
|
|
|
52
52
|
this._requestOptions.SessionId = this._getSessionId(sessions);
|
|
53
53
|
}
|
|
54
54
|
else {
|
|
55
|
-
util.console.
|
|
55
|
+
util.console.info(`User '${resolvedUserName}' with ID '${resolvedUserId}' has no locks.`);
|
|
56
56
|
}
|
|
57
57
|
return lockCount;
|
|
58
58
|
}
|
|
@@ -176,9 +176,9 @@ class UserLocks {
|
|
|
176
176
|
* @description Gets the user info.
|
|
177
177
|
* @returns {Promise<UserInfo>} The user info.
|
|
178
178
|
* @throws {Error} If the user info cannot be retrieved.
|
|
179
|
-
* @example const userInfo = await flp.userLocks.
|
|
180
|
-
* @example console.log(userInfo.Id);
|
|
181
|
-
* @example console.log(userInfo.Name);
|
|
179
|
+
* @example const userInfo = await flp.userLocks._getUserInfo();
|
|
180
|
+
* @example util.console.log(userInfo.Id);
|
|
181
|
+
* @example util.console.log(userInfo.Name);
|
|
182
182
|
*/
|
|
183
183
|
async _getUserInfo() {
|
|
184
184
|
try {
|
|
@@ -232,7 +232,7 @@ class UserLocks {
|
|
|
232
232
|
const response = await service.odata.callFunctionImport(this._srvUserLockInstance, "delete_session", this._requestOptions, true);
|
|
233
233
|
const sapMessage = JSON.parse(response.headers.get("sap-message"));
|
|
234
234
|
if (sapMessage?.message === "Sessions deleted successfully") {
|
|
235
|
-
util.console.
|
|
235
|
+
util.console.info(`Locks for user '${this._requestOptions.UserId}' have been deleted.`);
|
|
236
236
|
}
|
|
237
237
|
}
|
|
238
238
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userLocks.js","sourceRoot":"","sources":["../../../../src/reuse/modules/flp/userLocks.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAEb,8DAAkE;AAOlE;;;GAGG;AACH,MAAa,SAAS;IAAtB;QACE,qBAAqB;QACb,QAAG,GAAG,IAAI,oCAAoB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACpD,yBAAoB,GAAQ,IAAI,CAAC;QACjC,oBAAe,GAAQ,IAAI,CAAC;QAE5B,oBAAe,GAAG;YACxB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;SACd,CAAC;IAwOJ,CAAC;IAtOC,mBAAmB;IACnB;;;;;;;;;OASG;IACI,KAAK,CAAC,sBAAsB,CAAC,IAAY,EAAE,QAAgB,EAAE,eAAwB;QAC1F,IAAI,cAAc,GAAG,eAAe,CAAC;QACrC,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,qEAAqE;YACrE,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3C,cAAc,GAAG,QAAQ,CAAC,EAAE,CAAC;YAC7B,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC;QACnC,CAAC;QAED,mCAAmC;QACnC,MAAM,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEtD,6CAA6C;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE/C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,gBAAgB,cAAc,cAAc,SAAS,SAAS,UAAU,CAAC,CAAC;YACrG,+FAA+F;YAC/F,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"userLocks.js","sourceRoot":"","sources":["../../../../src/reuse/modules/flp/userLocks.ts"],"names":[],"mappings":"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"}
|