@sap_oss/wdio-qmate-service 1.0.2 → 1.2.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.
- package/docs/doc.md +355 -152
- package/docs/sections/bestPractices/authentication.md +0 -2
- package/docs/sections/contact.md +4 -0
- package/docs/sections/features/advancedDataHandling.md +1 -1
- package/docs/sections/features/dataHandling.md +2 -2
- package/lib/reuse/authenticator/customAuthenticator.js +4 -4
- package/lib/reuse/authenticator/formAuthenticator.js +4 -4
- package/lib/reuse/modules/service/odata.d.ts +3 -3
- package/lib/reuse/modules/service/odata.js +3 -3
- package/lib/reuse/modules/ui5/control.d.ts +6 -5
- package/lib/reuse/modules/ui5/control.js +5 -5
- package/lib/reuse/modules/ui5/control.js.map +1 -1
- package/lib/reuse/modules/ui5/session.d.ts +8 -8
- package/lib/reuse/modules/ui5/session.js +15 -15
- package/lib/reuse/modules/ui5/session.js.map +1 -1
- package/lib/reuse/modules/ui5/userInteraction.d.ts +34 -21
- package/lib/reuse/modules/ui5/userInteraction.js +149 -114
- package/lib/reuse/modules/ui5/userInteraction.js.map +1 -1
- package/lib/scripts/hooks/utils/decryption.d.ts +11 -1
- package/lib/scripts/hooks/utils/decryption.js +53 -7
- package/lib/scripts/hooks/utils/decryption.js.map +1 -1
- package/package.json +2 -3
- package/test/authenticator/staticLogin/configCustom.js +1 -1
- package/test/authenticator/staticLogin/configFiori.js +1 -1
- package/test/authenticator/staticLogin/configSapCloud.js +1 -1
- package/test/authenticator/staticLogin/specs/custom.spec.js +2 -2
- package/test/authenticator/staticLogin/specs/customViaConfig.spec.js +1 -1
- package/test/authenticator/staticLogin/specs/plain.spec.js +4 -4
- package/test/authenticator/systemLogin/configCustom.js +2 -2
- package/test/authenticator/systemLogin/configFiori.js +3 -3
- package/test/authenticator/systemLogin/configPlain.js +1 -1
- package/test/authenticator/systemLogin/configSapCloud.js +3 -3
- package/test/core/dataExchange/utils.js +4 -4
- package/test/reuse/common/assertion/expectUrlToBe.spec.js +4 -4
- package/test/reuse/ui5/navigation/closePopups.spec.js +1 -1
- package/test/reuse/ui5/navigation/expectUnsupportedNavigationPopup.spec.js +6 -6
- package/test/reuse/ui5/navigation/navigateToApplication.spec.js +3 -3
- package/test/reuse/ui5/navigation/navigateToApplicationAndRetry.spec.js +3 -3
- package/test/reuse/ui5/navigation/navigateToSystemAndApplication.spec.js +7 -7
- package/test/reuse/ui5/navigation/navigateToSystemAndApplicationAndRetry.spec.js +4 -4
- package/test/reuse/ui5/navigation/test.navigation.conf.js +1 -1
- package/test/reuse/ui5/session/login.spec.js +4 -4
- package/test/reuse/ui5/session/loginFiori.spec.js +2 -2
- package/test/reuse/ui5/session/loginSapCloud.spec.js +3 -3
- package/test/reuse/ui5/session/logout.spec.js +2 -2
- package/test/reuse/ui5/session/switchUser.spec.js +6 -6
- package/test/reuse/ui5/userInteraction/clickTab.spec.js +52 -19
- package/test/reuse/ui5/userInteraction/selectFromTab.spec.js +38 -0
- package/test/reuse/ui5/userInteraction/test.userInteraction.conf.js +1 -0
- package/test/reuse/util/data/data/test.secure.json +4 -4
- package/test/reuse/util/data/decrypt.spec.js +1 -1
- package/test/reuse/util/data/getSecureData.spec.js +4 -4
- package/test/reuse/util/data/test.data.conf.js +1 -1
- package/docs/bestPractices/spec.md +0 -0
- package/docs/gettingStarted/setup.md +0 -8
|
@@ -32,7 +32,6 @@ You can use one of the following methods:
|
|
|
32
32
|
=== "Fiori Login"
|
|
33
33
|
Use this configuration for the [Fiori Login Screen](#Fiori-Login-Screen).
|
|
34
34
|
Define the step (on top of your script) and pass at least a valid user to the method.
|
|
35
|
-
If the password for this user differs from the default password *Welcome1!*, you can additionally pass the password as second argument.
|
|
36
35
|
|
|
37
36
|
```js
|
|
38
37
|
it("Step 01: login fiori", async function () {
|
|
@@ -43,7 +42,6 @@ You can use one of the following methods:
|
|
|
43
42
|
=== "SAP Cloud Login"
|
|
44
43
|
Use this configuration for the [SAP Cloud Login Screen](#SAP-Cloud-Login-Screen).
|
|
45
44
|
Define the step (on top of your script) and pass at least a valid user to the method.
|
|
46
|
-
If the password for this user differs from the default password *Welcome1!*, you can additionally pass the password as second argument.
|
|
47
45
|
|
|
48
46
|
```js
|
|
49
47
|
it("Step 01: login sap cloud", async function () {
|
package/docs/sections/contact.md
CHANGED
|
@@ -4,6 +4,10 @@ In case of questions or issues, please feel free to reach out to us or open an [
|
|
|
4
4
|
:octicons-location-16: Walldorf - Germany
|
|
5
5
|
:material-email: [benjamin.warth@sap.com](mailto:benjamin.warth@sap.com)
|
|
6
6
|
|
|
7
|
+
### Georgios Treska
|
|
8
|
+
:octicons-location-16: Walldorf - Germany
|
|
9
|
+
:material-email: [georgios.treska@sap.com](mailto:georgios.treska@sap.com)
|
|
10
|
+
|
|
7
11
|
### Marvin Grüßinger
|
|
8
12
|
:octicons-location-16: Walldorf - Germany
|
|
9
13
|
:material-email: [marvin.gruessinger@sap.com](mailto:marvin.gruessinger@sap.com)
|
|
@@ -19,7 +19,7 @@ params: {
|
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
!!! info
|
|
22
|
-
The folders or *JSON* files are specified as key-value pair. In this sample, ``yourPrefixSpecName`` is the key which points to a *JSON* file ``./data/my/folder/data
|
|
22
|
+
The folders or *JSON* files are specified as key-value pair. In this sample, ``yourPrefixSpecName`` is the key which points to a *JSON* file ``./data/my/folder/data/<systemName>/data.json``. Similarly, the key ``myFolder2`` points to a folder ``data/another/folder/data/anotherFolder``.
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
!!! tip
|
|
@@ -8,8 +8,8 @@ Input data is the data defined by the scenario to perform all types of user inpu
|
|
|
8
8
|
```json title="data/createSupplierInvoice.json"
|
|
9
9
|
{
|
|
10
10
|
"session": {
|
|
11
|
-
"username": "
|
|
12
|
-
"password": "
|
|
11
|
+
"username": "<username",
|
|
12
|
+
"password": "<password>"
|
|
13
13
|
},
|
|
14
14
|
"generalInformation": {
|
|
15
15
|
"companyCode": "1010",
|
|
@@ -24,22 +24,22 @@ async function CustomAuthenticator() {
|
|
|
24
24
|
if (!url) {
|
|
25
25
|
throw new Error("Please provide a 'baseUrl'.");
|
|
26
26
|
}
|
|
27
|
-
let
|
|
27
|
+
let usernameField = null;
|
|
28
28
|
let passwordField = null;
|
|
29
29
|
let logonField = null;
|
|
30
30
|
await browser.url(url);
|
|
31
31
|
await browser.waitUntil(async function () {
|
|
32
|
-
|
|
32
|
+
usernameField = await $(usernameFieldSelector);
|
|
33
33
|
passwordField = await $(passwordFieldSelector);
|
|
34
34
|
logonField = await $(logonButtonSelector);
|
|
35
|
-
return
|
|
35
|
+
return usernameField.isDisplayedInViewport() &&
|
|
36
36
|
passwordField.isDisplayedInViewport() &&
|
|
37
37
|
logonField.isDisplayedInViewport();
|
|
38
38
|
}, {
|
|
39
39
|
timeout: 60000,
|
|
40
40
|
timeoutMsg: "Expected user name field to be present after 60s"
|
|
41
41
|
});
|
|
42
|
-
await
|
|
42
|
+
await usernameField.setValue(username);
|
|
43
43
|
await passwordField.setValue(password);
|
|
44
44
|
await logonField.click();
|
|
45
45
|
}
|
|
@@ -21,22 +21,22 @@ async function FormAuthenticator() {
|
|
|
21
21
|
if (!url) {
|
|
22
22
|
throw new Error("Please provide a 'baseUrl' in the config.");
|
|
23
23
|
}
|
|
24
|
-
let
|
|
24
|
+
let usernameField = null;
|
|
25
25
|
let passwordField = null;
|
|
26
26
|
let logonField = null;
|
|
27
27
|
await browser.url(url);
|
|
28
28
|
await browser.waitUntil(async function () {
|
|
29
|
-
|
|
29
|
+
usernameField = await $(usernameFieldSelector);
|
|
30
30
|
passwordField = await $(passwordFieldSelector);
|
|
31
31
|
logonField = await $(logonButtonSelector);
|
|
32
|
-
return await
|
|
32
|
+
return await usernameField.isDisplayedInViewport() &&
|
|
33
33
|
await passwordField.isDisplayedInViewport() &&
|
|
34
34
|
await logonField.isDisplayedInViewport();
|
|
35
35
|
}, {
|
|
36
36
|
timeout: 60000,
|
|
37
37
|
timeoutMsg: "Expected user name field to be present after 60s"
|
|
38
38
|
});
|
|
39
|
-
await
|
|
39
|
+
await usernameField.setValue(username);
|
|
40
40
|
await passwordField.setValue(password);
|
|
41
41
|
await logonField.click();
|
|
42
42
|
}
|
|
@@ -29,7 +29,7 @@ export declare class OData {
|
|
|
29
29
|
* SAML authentication. Set this to "basic", to use basic authentication for communication users for whom SAML login doesn't work.
|
|
30
30
|
* Or "none" for no authentication.
|
|
31
31
|
* @returns {Object} The initialized service object.
|
|
32
|
-
* @example const url = "
|
|
32
|
+
* @example const url = "<urlToSystem>/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
|
|
33
33
|
* const params = {
|
|
34
34
|
* "saml2": "disabled",
|
|
35
35
|
* "language": "de"
|
|
@@ -44,7 +44,7 @@ export declare class OData {
|
|
|
44
44
|
* @param {Object} srv - Instance of the service
|
|
45
45
|
* @param {String} entitySet - The entitySet you want to GET from.
|
|
46
46
|
* @param {Object} keys - The required keys for the GET-request.
|
|
47
|
-
* @example const url = "
|
|
47
|
+
* @example const url = "<baseUrl>/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
|
|
48
48
|
* srv = await service.odata.init(url, user, password);
|
|
49
49
|
* const keys = {
|
|
50
50
|
* PurchaseOrder: "4100000000"
|
|
@@ -63,7 +63,7 @@ export declare class OData {
|
|
|
63
63
|
* @param {Object} [queryParams] - JSON object of key value pairs of custom query parameters.
|
|
64
64
|
* @returns {Array} - Result set array
|
|
65
65
|
* @example
|
|
66
|
-
* const url = "
|
|
66
|
+
* const url = "<baseUrl>/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
|
|
67
67
|
* srv = await service.odata.init(url, user, password);
|
|
68
68
|
*
|
|
69
69
|
* let filterString = "Status eq '01'";
|
|
@@ -38,7 +38,7 @@ class OData {
|
|
|
38
38
|
* SAML authentication. Set this to "basic", to use basic authentication for communication users for whom SAML login doesn't work.
|
|
39
39
|
* Or "none" for no authentication.
|
|
40
40
|
* @returns {Object} The initialized service object.
|
|
41
|
-
* @example const url = "
|
|
41
|
+
* @example const url = "<urlToSystem>/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
|
|
42
42
|
* const params = {
|
|
43
43
|
* "saml2": "disabled",
|
|
44
44
|
* "language": "de"
|
|
@@ -87,7 +87,7 @@ class OData {
|
|
|
87
87
|
* @param {Object} srv - Instance of the service
|
|
88
88
|
* @param {String} entitySet - The entitySet you want to GET from.
|
|
89
89
|
* @param {Object} keys - The required keys for the GET-request.
|
|
90
|
-
* @example const url = "
|
|
90
|
+
* @example const url = "<baseUrl>/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
|
|
91
91
|
* srv = await service.odata.init(url, user, password);
|
|
92
92
|
* const keys = {
|
|
93
93
|
* PurchaseOrder: "4100000000"
|
|
@@ -113,7 +113,7 @@ class OData {
|
|
|
113
113
|
* @param {Object} [queryParams] - JSON object of key value pairs of custom query parameters.
|
|
114
114
|
* @returns {Array} - Result set array
|
|
115
115
|
* @example
|
|
116
|
-
* const url = "
|
|
116
|
+
* const url = "<baseUrl>/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
|
|
117
117
|
* srv = await service.odata.init(url, user, password);
|
|
118
118
|
*
|
|
119
119
|
* let filterString = "Status eq '01'";
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Element } from "../../../../@types/wdio";
|
|
1
2
|
/**
|
|
2
3
|
* @class control
|
|
3
4
|
* @memberof ui5
|
|
@@ -27,7 +28,7 @@ export declare class Control {
|
|
|
27
28
|
* @param {Object} elem - The element.
|
|
28
29
|
* @param {String} propertyName - The property name of the control to retrieve the value from.
|
|
29
30
|
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
|
|
30
|
-
* const elem = await ui5.
|
|
31
|
+
* const elem = await ui5.element.getDisplayedElement(selector);
|
|
31
32
|
* const propertyName = "title";
|
|
32
33
|
* const val = await ui5.control.getProperty(elem, propertyName);
|
|
33
34
|
**/
|
|
@@ -39,7 +40,7 @@ export declare class Control {
|
|
|
39
40
|
* @param {Object} elem - The element.
|
|
40
41
|
* @param {String} propertyName - The aggregation property name of the control to retrieve the value from.
|
|
41
42
|
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "items":[{"path":"/Categories"}] }};
|
|
42
|
-
* const elem = await ui5.
|
|
43
|
+
* const elem = await ui5.element.getDisplayedElement(selector);
|
|
43
44
|
* const propertyName = "tooltip";
|
|
44
45
|
* const val = await ui5.control.getAggregationProperty(elem, propertyName);
|
|
45
46
|
**/
|
|
@@ -51,7 +52,7 @@ export declare class Control {
|
|
|
51
52
|
* @param {Object} elem - The element.
|
|
52
53
|
* @param {String} propertyName - The association property name of the control to retrieve the value from.
|
|
53
54
|
* @example const selector = { "elementProperties":{"metadata":"sap.m.MultiComboBox","mProperties":{}};
|
|
54
|
-
* const elem = await ui5.
|
|
55
|
+
* const elem = await ui5.element.getDisplayedElement(selector);
|
|
55
56
|
* const propertyName = "selectedItems";
|
|
56
57
|
* const propertyValue = await ui5.control.getAssociationProperty(elem, propertyName);
|
|
57
58
|
**/
|
|
@@ -62,7 +63,7 @@ export declare class Control {
|
|
|
62
63
|
* @description Get UI control binding context path
|
|
63
64
|
* @param {Object} elem - The element.
|
|
64
65
|
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{"title":[{"path":"CategoryName"}] }};
|
|
65
|
-
* const elem = await ui5.
|
|
66
|
+
* const elem = await ui5.element.getDisplayedElement(selector);
|
|
66
67
|
* const context = await ui5.control.getBindingContextPathProperty(elem);
|
|
67
68
|
**/
|
|
68
69
|
getBindingContextPathProperty(elem: Element): Promise<any>;
|
|
@@ -74,7 +75,7 @@ export declare class Control {
|
|
|
74
75
|
* @param {String} propertyName - The property name to retrieve from the control binding
|
|
75
76
|
* @returns {Array} Array of bindings for the specific property
|
|
76
77
|
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
|
|
77
|
-
* const elem = await ui5.
|
|
78
|
+
* const elem = await ui5.element.getDisplayedElement(selector);
|
|
78
79
|
* const propertyName = "title";
|
|
79
80
|
* const binding = await ui5.control.getPropertyBinding(elem, propertyName);
|
|
80
81
|
**/
|
|
@@ -37,7 +37,7 @@ class Control {
|
|
|
37
37
|
* @param {Object} elem - The element.
|
|
38
38
|
* @param {String} propertyName - The property name of the control to retrieve the value from.
|
|
39
39
|
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
|
|
40
|
-
* const elem = await ui5.
|
|
40
|
+
* const elem = await ui5.element.getDisplayedElement(selector);
|
|
41
41
|
* const propertyName = "title";
|
|
42
42
|
* const val = await ui5.control.getProperty(elem, propertyName);
|
|
43
43
|
**/
|
|
@@ -52,7 +52,7 @@ class Control {
|
|
|
52
52
|
* @param {Object} elem - The element.
|
|
53
53
|
* @param {String} propertyName - The aggregation property name of the control to retrieve the value from.
|
|
54
54
|
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "items":[{"path":"/Categories"}] }};
|
|
55
|
-
* const elem = await ui5.
|
|
55
|
+
* const elem = await ui5.element.getDisplayedElement(selector);
|
|
56
56
|
* const propertyName = "tooltip";
|
|
57
57
|
* const val = await ui5.control.getAggregationProperty(elem, propertyName);
|
|
58
58
|
**/
|
|
@@ -67,7 +67,7 @@ class Control {
|
|
|
67
67
|
* @param {Object} elem - The element.
|
|
68
68
|
* @param {String} propertyName - The association property name of the control to retrieve the value from.
|
|
69
69
|
* @example const selector = { "elementProperties":{"metadata":"sap.m.MultiComboBox","mProperties":{}};
|
|
70
|
-
* const elem = await ui5.
|
|
70
|
+
* const elem = await ui5.element.getDisplayedElement(selector);
|
|
71
71
|
* const propertyName = "selectedItems";
|
|
72
72
|
* const propertyValue = await ui5.control.getAssociationProperty(elem, propertyName);
|
|
73
73
|
**/
|
|
@@ -81,7 +81,7 @@ class Control {
|
|
|
81
81
|
* @description Get UI control binding context path
|
|
82
82
|
* @param {Object} elem - The element.
|
|
83
83
|
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{"title":[{"path":"CategoryName"}] }};
|
|
84
|
-
* const elem = await ui5.
|
|
84
|
+
* const elem = await ui5.element.getDisplayedElement(selector);
|
|
85
85
|
* const context = await ui5.control.getBindingContextPathProperty(elem);
|
|
86
86
|
**/
|
|
87
87
|
async getBindingContextPathProperty(elem) {
|
|
@@ -96,7 +96,7 @@ class Control {
|
|
|
96
96
|
* @param {String} propertyName - The property name to retrieve from the control binding
|
|
97
97
|
* @returns {Array} Array of bindings for the specific property
|
|
98
98
|
* @example const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
|
|
99
|
-
* const elem = await ui5.
|
|
99
|
+
* const elem = await ui5.element.getDisplayedElement(selector);
|
|
100
100
|
* const propertyName = "title";
|
|
101
101
|
* const binding = await ui5.control.getPropertyBinding(elem, propertyName);
|
|
102
102
|
**/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/control.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;
|
|
1
|
+
{"version":3,"file":"control.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/control.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AAIb;;;GAGG;AACH,MAAa,OAAO;IAApB;QAEU,QAAG,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;QAClD,oBAAe,GAAG,OAAO,CAAC,8CAA8C,CAAC,CAAC;IAkGpF,CAAC;IAhGC,kFAAkF;IAClF;;;;;;;;;;;;;QAaI;IACJ,KAAK,CAAC,OAAO,CAAE,gBAA0B,EAAE,iBAAsB,EAAE,IAAU;QAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;IACpF,CAAC;IAAA,CAAC;IAGF,8EAA8E;IAC9E;;;;;;;;;;QAUI;IACJ,KAAK,CAAC,WAAW,CAAE,IAAa,EAAE,YAAoB;QACpD,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;QAUI;IACJ,KAAK,CAAC,sBAAsB,CAAE,IAAa,EAAE,YAAoB;QAC/D,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;QAUI;IACJ,KAAK,CAAC,sBAAsB,CAAE,IAAa,EAAE,YAAoB;QAC/D,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;IAAA,CAAC;IAEF;;;;;;;;QAQI;IACJ,KAAK,CAAC,6BAA6B,CAAE,IAAa;QAChD,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAAA,CAAC;IAGF;;;;;;;;;;;QAWI;IACJ,KAAK,CAAC,kBAAkB,CAAE,IAAa,EAAE,YAAoB;QAC3D,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAAA,CAAC;CAEH;AArGD,0BAqGC;AAAA,CAAC;AACF,kBAAe,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -8,7 +8,7 @@ export declare class Session {
|
|
|
8
8
|
* @memberOf ui5.session
|
|
9
9
|
* @description Login with specific username and password. This function works for both fiori and sap-cloud login.
|
|
10
10
|
* @param {String} username - The username.
|
|
11
|
-
* @param {String} [password="
|
|
11
|
+
* @param {String} [password="super-duper-sensitive-pw"] - The password.
|
|
12
12
|
* @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
|
|
13
13
|
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
14
14
|
* @example await ui5.session.login("PURCHASER");
|
|
@@ -20,7 +20,7 @@ export declare class Session {
|
|
|
20
20
|
* @memberOf ui5.session
|
|
21
21
|
* @description Login with fioriForm and specific username and password.
|
|
22
22
|
* @param {String} username - The username.
|
|
23
|
-
* @param {String} [password="
|
|
23
|
+
* @param {String} [password="super-duper-sensitive-pw"] - The password.
|
|
24
24
|
* @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
|
|
25
25
|
* @example await ui5.session.loginFiori("john", "abc123!");
|
|
26
26
|
*/
|
|
@@ -30,7 +30,7 @@ export declare class Session {
|
|
|
30
30
|
* @memberOf ui5.session
|
|
31
31
|
* @description Login with sapCloud form and specific username and password.
|
|
32
32
|
* @param {String} username - The username.
|
|
33
|
-
* @param {String} [password="
|
|
33
|
+
* @param {String} [password="super-duper-sensitive-pw"] - The password.
|
|
34
34
|
* @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
|
|
35
35
|
* @example await ui5.session.loginSapCloud("john", "abc123!");
|
|
36
36
|
*/
|
|
@@ -40,7 +40,7 @@ export declare class Session {
|
|
|
40
40
|
* @memberOf ui5.session
|
|
41
41
|
* @description Login with custom form and specific username and password.
|
|
42
42
|
* @param {String} username - The username.
|
|
43
|
-
* @param {String} [password="
|
|
43
|
+
* @param {String} [password="super-duper-sensitive-pw"] - The password.
|
|
44
44
|
* @param {String} usernameFieldSelector - The CSS selector of the username field.
|
|
45
45
|
* @param {String} passwordFieldSelector - The CSS selector of the password field.
|
|
46
46
|
* @param {String} logonButtonSelector - The CSS selector of the login button.
|
|
@@ -53,7 +53,7 @@ export declare class Session {
|
|
|
53
53
|
* @memberOf ui5.session
|
|
54
54
|
* @description Login with specific username and password. The selectors will be taken from the config.
|
|
55
55
|
* @param {String} username - The username. Can be specified in spec or config. If specified in both credentials will be taken from config.
|
|
56
|
-
* @param {String} [password="
|
|
56
|
+
* @param {String} [password="super-duper-sensitive-pw" - The password. Can be specified in spec or config. If specified in both credentials will be taken from config.
|
|
57
57
|
* @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
|
|
58
58
|
* @example // config - SAMPLE 1
|
|
59
59
|
auth: {
|
|
@@ -70,7 +70,7 @@ export declare class Session {
|
|
|
70
70
|
auth: {
|
|
71
71
|
formType: "plain",
|
|
72
72
|
username: "PURCH_EXT",
|
|
73
|
-
password: "
|
|
73
|
+
password: "super-duper-sensitive-pw",
|
|
74
74
|
usernameFieldSelector: "#USERNAME_BLOCK input",
|
|
75
75
|
passwordFieldSelector: "#PASSWORD_BLOCK input",
|
|
76
76
|
logonButtonSelector: "#LOGIN_LINK"
|
|
@@ -93,12 +93,12 @@ export declare class Session {
|
|
|
93
93
|
* @memberOf ui5.session
|
|
94
94
|
* @description switches the user according to the passed username and password.
|
|
95
95
|
* @param {String} username - The username.
|
|
96
|
-
* @param {String} [password="
|
|
96
|
+
* @param {String} [password="super-duper-sensitive-pw"] - The password.
|
|
97
97
|
* @param {Object} [authenticator] - The login form type. Set to null to use generic login.
|
|
98
98
|
* @param {Number} [wait=10000] - The waiting time between logout and login (ms).
|
|
99
99
|
* @example await ui5.session.switchUser("PURCHASER");
|
|
100
100
|
* @example const authenticator = ui5.authenticators.fioriForm;
|
|
101
|
-
* await ui5.session.switchUser("PURCHASER", "
|
|
101
|
+
* await ui5.session.switchUser("PURCHASER", "super-duper-sensitive-pw", authenticator, 30000);
|
|
102
102
|
*/
|
|
103
103
|
switchUser(username: string, password: string | undefined, authenticator: any, wait?: number): Promise<void>;
|
|
104
104
|
/**
|
|
@@ -12,13 +12,13 @@ class Session {
|
|
|
12
12
|
* @memberOf ui5.session
|
|
13
13
|
* @description Login with specific username and password. This function works for both fiori and sap-cloud login.
|
|
14
14
|
* @param {String} username - The username.
|
|
15
|
-
* @param {String} [password="
|
|
15
|
+
* @param {String} [password="super-duper-sensitive-pw"] - The password.
|
|
16
16
|
* @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
|
|
17
17
|
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
18
18
|
* @example await ui5.session.login("PURCHASER");
|
|
19
19
|
* @example await ui5.session.login("JOHN_DOE", "abc123!", true);
|
|
20
20
|
*/
|
|
21
|
-
async login(username, password = "
|
|
21
|
+
async login(username, password = "super-duper-sensitive-pw", verify = false, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
22
22
|
if (browser.config && browser.config.params &&
|
|
23
23
|
browser.config.params.auth && browser.config.params.auth.formType === "skip") {
|
|
24
24
|
util.console.warn("Login is skipped since 'formType' is set to 'skip'");
|
|
@@ -66,11 +66,11 @@ class Session {
|
|
|
66
66
|
* @memberOf ui5.session
|
|
67
67
|
* @description Login with fioriForm and specific username and password.
|
|
68
68
|
* @param {String} username - The username.
|
|
69
|
-
* @param {String} [password="
|
|
69
|
+
* @param {String} [password="super-duper-sensitive-pw"] - The password.
|
|
70
70
|
* @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
|
|
71
71
|
* @example await ui5.session.loginFiori("john", "abc123!");
|
|
72
72
|
*/
|
|
73
|
-
async loginFiori(username, password = "
|
|
73
|
+
async loginFiori(username, password = "super-duper-sensitive-pw", verify = false) {
|
|
74
74
|
if (!username) {
|
|
75
75
|
throw new Error("Please provide a valid username.");
|
|
76
76
|
}
|
|
@@ -89,11 +89,11 @@ class Session {
|
|
|
89
89
|
* @memberOf ui5.session
|
|
90
90
|
* @description Login with sapCloud form and specific username and password.
|
|
91
91
|
* @param {String} username - The username.
|
|
92
|
-
* @param {String} [password="
|
|
92
|
+
* @param {String} [password="super-duper-sensitive-pw"] - The password.
|
|
93
93
|
* @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
|
|
94
94
|
* @example await ui5.session.loginSapCloud("john", "abc123!");
|
|
95
95
|
*/
|
|
96
|
-
async loginSapCloud(username, password = "
|
|
96
|
+
async loginSapCloud(username, password = "super-duper-sensitive-pw", verify = false) {
|
|
97
97
|
if (!username) {
|
|
98
98
|
throw new Error("Please provide a valid username.");
|
|
99
99
|
}
|
|
@@ -112,14 +112,14 @@ class Session {
|
|
|
112
112
|
* @memberOf ui5.session
|
|
113
113
|
* @description Login with custom form and specific username and password.
|
|
114
114
|
* @param {String} username - The username.
|
|
115
|
-
* @param {String} [password="
|
|
115
|
+
* @param {String} [password="super-duper-sensitive-pw"] - The password.
|
|
116
116
|
* @param {String} usernameFieldSelector - The CSS selector of the username field.
|
|
117
117
|
* @param {String} passwordFieldSelector - The CSS selector of the password field.
|
|
118
118
|
* @param {String} logonButtonSelector - The CSS selector of the login button.
|
|
119
119
|
* @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
|
|
120
120
|
* @example await ui5.session.loginCustom("JOHN_DOE", "abc123!", "#username", #password, "#logon");
|
|
121
121
|
*/
|
|
122
|
-
async loginCustom(username, password = "
|
|
122
|
+
async loginCustom(username, password = "super-duper-sensitive-pw", usernameFieldSelector, passwordFieldSelector, logonButtonSelector, verify = false) {
|
|
123
123
|
if (!username) {
|
|
124
124
|
throw new Error("Please provide a valid username.");
|
|
125
125
|
}
|
|
@@ -141,7 +141,7 @@ class Session {
|
|
|
141
141
|
* @memberOf ui5.session
|
|
142
142
|
* @description Login with specific username and password. The selectors will be taken from the config.
|
|
143
143
|
* @param {String} username - The username. Can be specified in spec or config. If specified in both credentials will be taken from config.
|
|
144
|
-
* @param {String} [password="
|
|
144
|
+
* @param {String} [password="super-duper-sensitive-pw" - The password. Can be specified in spec or config. If specified in both credentials will be taken from config.
|
|
145
145
|
* @param {Boolean} [verify=false] - Specifies if the function will check the shell header after logging in.
|
|
146
146
|
* @example // config - SAMPLE 1
|
|
147
147
|
auth: {
|
|
@@ -158,7 +158,7 @@ class Session {
|
|
|
158
158
|
auth: {
|
|
159
159
|
formType: "plain",
|
|
160
160
|
username: "PURCH_EXT",
|
|
161
|
-
password: "
|
|
161
|
+
password: "super-duper-sensitive-pw",
|
|
162
162
|
usernameFieldSelector: "#USERNAME_BLOCK input",
|
|
163
163
|
passwordFieldSelector: "#PASSWORD_BLOCK input",
|
|
164
164
|
logonButtonSelector: "#LOGIN_LINK"
|
|
@@ -166,7 +166,7 @@ class Session {
|
|
|
166
166
|
// spec
|
|
167
167
|
await ui5.session.loginCustomViaConfig();
|
|
168
168
|
*/
|
|
169
|
-
async loginCustomViaConfig(username, password = "
|
|
169
|
+
async loginCustomViaConfig(username, password = "super-duper-sensitive-pw", verify = false) {
|
|
170
170
|
try {
|
|
171
171
|
const baseUrl = browser.config.baseUrl;
|
|
172
172
|
await browser.navigateTo(baseUrl);
|
|
@@ -228,14 +228,14 @@ class Session {
|
|
|
228
228
|
* @memberOf ui5.session
|
|
229
229
|
* @description switches the user according to the passed username and password.
|
|
230
230
|
* @param {String} username - The username.
|
|
231
|
-
* @param {String} [password="
|
|
231
|
+
* @param {String} [password="super-duper-sensitive-pw"] - The password.
|
|
232
232
|
* @param {Object} [authenticator] - The login form type. Set to null to use generic login.
|
|
233
233
|
* @param {Number} [wait=10000] - The waiting time between logout and login (ms).
|
|
234
234
|
* @example await ui5.session.switchUser("PURCHASER");
|
|
235
235
|
* @example const authenticator = ui5.authenticators.fioriForm;
|
|
236
|
-
* await ui5.session.switchUser("PURCHASER", "
|
|
236
|
+
* await ui5.session.switchUser("PURCHASER", "super-duper-sensitive-pw", authenticator, 30000);
|
|
237
237
|
*/
|
|
238
|
-
async switchUser(username, password = "
|
|
238
|
+
async switchUser(username, password = "super-duper-sensitive-pw", authenticator, wait = 10000) {
|
|
239
239
|
await this.logout();
|
|
240
240
|
await util.browser.sleep(wait);
|
|
241
241
|
await browser.navigateTo(browser.config.baseUrl);
|
|
@@ -261,7 +261,7 @@ class Session {
|
|
|
261
261
|
}
|
|
262
262
|
;
|
|
263
263
|
// =================================== HELPER ===================================
|
|
264
|
-
async _loginWithUsernameAndPassword(username, password = "
|
|
264
|
+
async _loginWithUsernameAndPassword(username, password = "super-duper-sensitive-pw", authenticator = ui5.authenticators.fioriForm, verify = false, messageSelector) {
|
|
265
265
|
let usernameField = null;
|
|
266
266
|
let passwordField = null;
|
|
267
267
|
let logonField = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/session.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AACb;;;GAGG;AACH,MAAa,OAAO;IAElB,gFAAgF;IAChF;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../../src/reuse/modules/ui5/session.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;AACb;;;GAGG;AACH,MAAa,OAAO;IAElB,gFAAgF;IAChF;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,CAAC,QAAgB,EAAE,QAAQ,GAAG,0BAA0B,EAAE,MAAM,GAAG,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,KAAK;QACtI,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM;YACzC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;YAC9E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QAED,IAAI,aAAa,CAAC;QAClB,IAAI,eAAe,CAAC;QACpB,IAAI;YACF,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK;gBAC3B,IAAI;oBACF,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC;oBACxD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBACjE,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACrC,aAAa,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC;oBAC7C,eAAe,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC;oBAC/D,OAAO,IAAI,CAAC;iBACb;gBAAC,OAAO,CAAC,EAAE;oBACV,WAAW;iBACZ;gBACD,IAAI;oBACF,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC;oBAC9D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;oBACpE,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACrC,aAAa,GAAG,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC;oBAChD,eAAe,GAAG,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,eAAe,CAAC;oBAClE,OAAO,IAAI,CAAC;iBACb;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,KAAK,CAAC;iBACd;YACH,CAAC,EAAE,OAAO,CAAC,CAAC;SACb;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,uEAAuE,GAAG,KAAK,CAAC,CAAC;SAClG;QAED,MAAM,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IACvG,CAAC;IAAA,CAAC;IAEF;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,QAAQ,GAAG,0BAA0B,EAAE,MAAM,GAAG,KAAK;QACtF,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QAED,IAAI;YACF,MAAM,aAAa,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC;YACnD,MAAM,eAAe,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,eAAe,CAAC;YACrE,OAAO,MAAM,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;SAC7G;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,EAAE,CAAC,CAAC;SAC3D;IACH,CAAC;IAAA,CAAC;IAEF;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,QAAQ,GAAG,0BAA0B,EAAE,MAAM,GAAG,KAAK;QACzF,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QAED,IAAI;YACF,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC;YAC5D,MAAM,eAAe,GAAG,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,eAAe,CAAC;YACxE,OAAO,MAAM,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;SAC7G;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,KAAK,EAAE,CAAC,CAAC;SAC9D;IACH,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB,EAAE,QAAQ,GAAG,0BAA0B,EAAE,qBAA6B,EAAE,qBAA6B,EAAE,mBAA2B,EAAE,MAAM,GAAG,KAAK;QAClL,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;QAED,IAAI;YACF,MAAM,aAAa,GAAG;gBACpB,uBAAuB,EAAE,qBAAqB;gBAC9C,uBAAuB,EAAE,qBAAqB;gBAC9C,qBAAqB,EAAE,mBAAmB;aAC3C,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;SAC5F;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,EAAE,CAAC,CAAC;SAC5D;IACH,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IAEH,KAAK,CAAC,oBAAoB,CAAC,QAAgB,EAAE,QAAQ,GAAG,0BAA0B,EAAE,MAAM,GAAG,KAAK;QAChG,IAAI;YACF,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM;gBACvB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;gBAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;gBACnC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACrC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC/C,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC/C,aAAa;gBACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,8CAA8C,CAAC,CAAC;aACxF;iBAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;gBACjC,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;aAC3F;SACF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,mGAAmG,GAAG,KAAK,CAAC,CAAC;SAC9H;QACD,IAAI;YACF,MAAM,aAAa,GAAG;gBACpB,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB;gBACzE,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB;gBACzE,qBAAqB,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB;aACtE,CAAC;YACF,OAAO,MAAM,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;SAC5F;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,yFAAyF,CAAC,CAAC;SAC5G;IACH,CAAC;IAAA,CAAC;IAGF,0FAA0F;IAC1F;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI;QACxB,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM;YACzC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE;YAC9E,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnC,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,cAAc;YAC7C,OAAO,IAAI,CAAC;SACb;QAED,MAAM,GAAG,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,MAAM,GAAG,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAEvC,IAAI,MAAM,EAAE;YACV,MAAM,GAAG,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;SACtC;IACH,CAAC;IAAA,CAAC;IAEF;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,QAAQ,GAAG,0BAA0B,EAAE,aAAkB,EAAE,IAAI,GAAG,KAAK;QACxG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SAChC;aAAM;YACL,MAAM,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;SAC7E;IACH,CAAC;IAAA,CAAC;IAGF,oFAAoF;IACpF;;;;;;OAMG;IACH,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAAA,CAAC;IAGF,iFAAiF;IACzE,KAAK,CAAC,6BAA6B,CAAC,QAAgB,EAAE,QAAQ,GAAG,0BAA0B,EAAE,aAAa,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,KAAK,EAAE,eAAwB;QACzL,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI;YACF,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK;gBAC3B,aAAa,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;gBAC7D,aAAa,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;gBAC7D,UAAU,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;gBACxD,OAAO,MAAM,aAAa,CAAC,qBAAqB,EAAE;oBAChD,MAAM,aAAa,CAAC,qBAAqB,EAAE;oBAC3C,2CAA2C;oBAC3C,MAAM,UAAU,CAAC,qBAAqB,EAAE,CAAC;YAC7C,CAAC,EAAE;gBACD,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,oEAAoE;aACjF,CAAC,CAAC;YAEH,aAAa;YACb,MAAM,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvC,aAAa;YACb,MAAM,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvC,aAAa;YACb,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;SAC1B;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,wFAAwF,KAAK,EAAE,CAAC,CAAC;SAClH;QAED,IAAI,eAAe,EAAE;YACnB,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;SAC7C;QAED,IAAI,MAAM,EAAE;YACV,MAAM,GAAG,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;SAC7C;QACD,IAAI;YACF,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;SACpC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,KAAK,YAAY,KAAK,EAAE;gBAC1B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;aACrC;SACF;IACH,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,QAAQ,GAAG;YACf,mBAAmB,EAAE;gBACnB,UAAU,EAAE,wBAAwB;gBACpC,aAAa,EAAE;oBACb,IAAI,EAAE,YAAY;iBACnB;aACF;SACF,CAAC;QACF,MAAM,GAAG,CAAC,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACpD,OAAO,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,eAAuB;QACnD,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,WAAW,CAAC;QAEhB,IAAI;YACF,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAC3E,aAAa;YACb,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAChE,oBAAoB,GAAG,IAAI,CAAC;SAC7B;QAAC,OAAO,CAAC,EAAE;YACV,mCAAmC;SACpC;QACD,IAAI,oBAAoB,EAAE;YACxB,MAAM,IAAI,KAAK,CAAC,kBAAkB,WAAW,GAAG,CAAC,CAAC;SACnD;IACH,CAAC;CAEF;AA7UD,0BA6UC;AAAA,CAAC;AACF,kBAAe,IAAI,OAAO,EAAE,CAAC"}
|
|
@@ -25,6 +25,27 @@ export declare class UserInteraction {
|
|
|
25
25
|
* @example await ui5.userInteraction.clickAndRetry(selector);
|
|
26
26
|
*/
|
|
27
27
|
clickAndRetry(selector: any, index?: number, timeout?: string | number, retries?: number, interval?: number): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* @function doubleClick
|
|
30
|
+
* @memberOf ui5.userInteraction
|
|
31
|
+
* @description Double Clicks on the passed element.
|
|
32
|
+
* @param {Object} selector - The selector describing the element.
|
|
33
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
34
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
35
|
+
* @example await ui5.userInteraction.doubleClick(selector);
|
|
36
|
+
*/
|
|
37
|
+
doubleClick(selector: any, index?: number, timeout?: string | number): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* @function rightClick
|
|
40
|
+
* @memberOf ui5.userInteraction
|
|
41
|
+
* @description Right Clicks on the passed element.
|
|
42
|
+
* @param {Object} selector - The selector describing the element.
|
|
43
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
44
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
45
|
+
* @example const elem = await nonUi5.element.getById("button01");
|
|
46
|
+
* await ui5.userInteraction.rightClick(elem);
|
|
47
|
+
*/
|
|
48
|
+
rightClick(selector: any, index?: number, timeout?: string | number): Promise<void>;
|
|
28
49
|
/**
|
|
29
50
|
* @function clickTab
|
|
30
51
|
* @memberOf ui5.userInteraction
|
|
@@ -36,6 +57,18 @@ export declare class UserInteraction {
|
|
|
36
57
|
* @example await ui5.userInteraction.clickTab(selector);
|
|
37
58
|
*/
|
|
38
59
|
clickTab(selector: any, index?: number, timeout?: string | number): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* @function selectFromTab
|
|
62
|
+
* @memberOf ui5.userInteraction
|
|
63
|
+
* @description Selects the passed value on the tab with the given selector and checks if the tab got selected successfully.
|
|
64
|
+
* The function retries the click for maximal 3 times if the selection of the tab (blue underline) was not successful.
|
|
65
|
+
* @param {Object} selector - The selector describing the element.
|
|
66
|
+
* @param {String} value - The value to select.
|
|
67
|
+
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
68
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
69
|
+
* @example await ui5.userInteraction.selectFromTab(selector);
|
|
70
|
+
*/
|
|
71
|
+
selectFromTab(selector: any, value: string, index?: number, timeout?: string | number): Promise<void>;
|
|
39
72
|
/**
|
|
40
73
|
* @function clickListItem
|
|
41
74
|
* @memberOf ui5.userInteraction
|
|
@@ -278,27 +311,7 @@ export declare class UserInteraction {
|
|
|
278
311
|
*/
|
|
279
312
|
resetSearch(selector: any, index?: number, timeout?: string | number): Promise<void>;
|
|
280
313
|
private _clearHelper;
|
|
281
|
-
|
|
282
|
-
* @function doubleClick
|
|
283
|
-
* @memberOf ui5.userInteraction
|
|
284
|
-
* @description Double Clicks on the passed element.
|
|
285
|
-
* @param {Object} selector - The selector describing the element.
|
|
286
|
-
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
287
|
-
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
288
|
-
* @example await ui5.userInteraction.doubleClick(selector);
|
|
289
|
-
*/
|
|
290
|
-
doubleClick(selector: any, index?: number, timeout?: string | number): Promise<void>;
|
|
291
|
-
/**
|
|
292
|
-
* @function rightClick
|
|
293
|
-
* @memberOf ui5.userInteraction
|
|
294
|
-
* @description Right Clicks on the passed element.
|
|
295
|
-
* @param {Object} selector - The selector describing the element.
|
|
296
|
-
* @param {Number} [index=0] - The index of the selector (in case there are more than one elements visible at the same time).
|
|
297
|
-
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
298
|
-
* @example const elem = await nonUi5.element.getById("button01");
|
|
299
|
-
* await ui5.userInteraction.rightClick(elem);
|
|
300
|
-
*/
|
|
301
|
-
rightClick(selector: any, index?: number, timeout?: string | number): Promise<void>;
|
|
314
|
+
private _verifyTabSwitch;
|
|
302
315
|
}
|
|
303
316
|
declare const _default: UserInteraction;
|
|
304
317
|
export default _default;
|