@sap_oss/wdio-qmate-service 1.0.0 → 1.0.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.
Files changed (144) hide show
  1. package/README.md +2 -1
  2. package/{test/core/package-lock.json → docs/bestPractices/spec.md} +0 -0
  3. package/docs/doc.md +176 -353
  4. package/docs/gettingStarted/setup.md +2 -2
  5. package/docs/index.md +1 -1
  6. package/docs/sections/bestPractices/authentication.md +151 -0
  7. package/docs/sections/bestPractices/dataHandling.md +61 -0
  8. package/docs/sections/bestPractices/selectors.md +44 -0
  9. package/docs/{contact.md → sections/contact.md} +0 -0
  10. package/docs/sections/features/advancedDataHandling.md +252 -0
  11. package/docs/sections/features/config.md +171 -0
  12. package/docs/sections/features/dataHandling.md +83 -0
  13. package/docs/{gettingStarted → sections/features}/selectors.md +0 -0
  14. package/docs/sections/features/spec.md +0 -0
  15. package/docs/sections/gettingStarted/config.md +18 -0
  16. package/docs/sections/gettingStarted/execution.md +7 -0
  17. package/docs/sections/gettingStarted/setup.md +9 -0
  18. package/docs/sections/gettingStarted/spec.md +31 -0
  19. package/docs/sections/gettingStarted/specs.md +19 -0
  20. package/docs/sections/support/bugReporting.md +19 -0
  21. package/docs/sections/support/knownIssuesAndLimitations.md +0 -0
  22. package/docs/sections/support/troubleshooting.md +16 -0
  23. package/docs/sources/images/fiori_form.PNG +0 -0
  24. package/docs/sources/images/sapCloud_form.PNG +0 -0
  25. package/lib/index.js +59 -82
  26. package/lib/index.js.map +1 -1
  27. package/lib/reuse/authenticator/authHandler.js +12 -23
  28. package/lib/reuse/authenticator/authHandler.js.map +1 -1
  29. package/lib/reuse/authenticator/basicUrlAuthenticator.js +21 -32
  30. package/lib/reuse/authenticator/basicUrlAuthenticator.js.map +1 -1
  31. package/lib/reuse/authenticator/customAuthenticator.js +42 -55
  32. package/lib/reuse/authenticator/customAuthenticator.js.map +1 -1
  33. package/lib/reuse/authenticator/formAuthenticator.js +37 -50
  34. package/lib/reuse/authenticator/formAuthenticator.js.map +1 -1
  35. package/lib/reuse/authenticator/plainAuthenticator.js +5 -16
  36. package/lib/reuse/authenticator/plainAuthenticator.js.map +1 -1
  37. package/lib/reuse/helper/jsDocGen.js +4 -12
  38. package/lib/reuse/helper/jsDocGen.js.map +1 -1
  39. package/lib/reuse/index.js +20 -5
  40. package/lib/reuse/index.js.map +1 -1
  41. package/lib/reuse/modules/common/navigation.js +10 -23
  42. package/lib/reuse/modules/common/navigation.js.map +1 -1
  43. package/lib/reuse/modules/common/userInteraction.js +40 -73
  44. package/lib/reuse/modules/common/userInteraction.js.map +1 -1
  45. package/lib/reuse/modules/nonUi5/assertion.js +31 -52
  46. package/lib/reuse/modules/nonUi5/assertion.js.map +1 -1
  47. package/lib/reuse/modules/nonUi5/element.js +266 -331
  48. package/lib/reuse/modules/nonUi5/element.js.map +1 -1
  49. package/lib/reuse/modules/nonUi5/navigation.js +10 -21
  50. package/lib/reuse/modules/nonUi5/navigation.js.map +1 -1
  51. package/lib/reuse/modules/nonUi5/userInteraction.js +176 -215
  52. package/lib/reuse/modules/nonUi5/userInteraction.js.map +1 -1
  53. package/lib/reuse/modules/service/odata.d.ts +106 -94
  54. package/lib/reuse/modules/service/odata.js +209 -204
  55. package/lib/reuse/modules/service/odata.js.map +1 -1
  56. package/lib/reuse/modules/service/rest.js +64 -81
  57. package/lib/reuse/modules/service/rest.js.map +1 -1
  58. package/lib/reuse/modules/ui5/assertion.js +217 -268
  59. package/lib/reuse/modules/ui5/assertion.js.map +1 -1
  60. package/lib/reuse/modules/ui5/confirmationDialog.js +17 -42
  61. package/lib/reuse/modules/ui5/confirmationDialog.js.map +1 -1
  62. package/lib/reuse/modules/ui5/control.js +12 -33
  63. package/lib/reuse/modules/ui5/control.js.map +1 -1
  64. package/lib/reuse/modules/ui5/date.js +70 -89
  65. package/lib/reuse/modules/ui5/date.js.map +1 -1
  66. package/lib/reuse/modules/ui5/element.js +121 -156
  67. package/lib/reuse/modules/ui5/element.js.map +1 -1
  68. package/lib/reuse/modules/ui5/errorDialog.js +4 -17
  69. package/lib/reuse/modules/ui5/errorDialog.js.map +1 -1
  70. package/lib/reuse/modules/ui5/footerBar.js +28 -63
  71. package/lib/reuse/modules/ui5/footerBar.js.map +1 -1
  72. package/lib/reuse/modules/ui5/mockserver.js +390 -427
  73. package/lib/reuse/modules/ui5/mockserver.js.map +1 -1
  74. package/lib/reuse/modules/ui5/navigation.js +105 -132
  75. package/lib/reuse/modules/ui5/navigation.js.map +1 -1
  76. package/lib/reuse/modules/ui5/navigationBar.js +58 -77
  77. package/lib/reuse/modules/ui5/navigationBar.js.map +1 -1
  78. package/lib/reuse/modules/ui5/qunit.js +16 -27
  79. package/lib/reuse/modules/ui5/qunit.js.map +1 -1
  80. package/lib/reuse/modules/ui5/session.js +200 -236
  81. package/lib/reuse/modules/ui5/session.js.map +1 -1
  82. package/lib/reuse/modules/ui5/table.js +79 -98
  83. package/lib/reuse/modules/ui5/table.js.map +1 -1
  84. package/lib/reuse/modules/ui5/userInteraction.js +264 -335
  85. package/lib/reuse/modules/ui5/userInteraction.js.map +1 -1
  86. package/lib/reuse/modules/util/browser.js +131 -178
  87. package/lib/reuse/modules/util/browser.js.map +1 -1
  88. package/lib/reuse/modules/util/data.js +3 -2
  89. package/lib/reuse/modules/util/data.js.map +1 -1
  90. package/lib/reuse/modules/util/file.js +71 -90
  91. package/lib/reuse/modules/util/file.js.map +1 -1
  92. package/lib/reuse/modules/util/function.js +68 -87
  93. package/lib/reuse/modules/util/function.js.map +1 -1
  94. package/lib/reuse/modules/util/system.js +22 -33
  95. package/lib/reuse/modules/util/system.js.map +1 -1
  96. package/lib/scripts/dataExchange/dataExchange.js +145 -160
  97. package/lib/scripts/dataExchange/dataExchange.js.map +1 -1
  98. package/lib/scripts/dataExchange/dataExchangeUtil.js +93 -114
  99. package/lib/scripts/dataExchange/dataExchangeUtil.js.map +1 -1
  100. package/lib/scripts/hooks/after.js +3 -14
  101. package/lib/scripts/hooks/after.js.map +1 -1
  102. package/lib/scripts/hooks/before.js +9 -20
  103. package/lib/scripts/hooks/before.js.map +1 -1
  104. package/lib/scripts/hooks/beforeSession.js +7 -18
  105. package/lib/scripts/hooks/beforeSession.js.map +1 -1
  106. package/lib/scripts/hooks/onComplete.js +2 -13
  107. package/lib/scripts/hooks/onComplete.js.map +1 -1
  108. package/lib/scripts/hooks/onPrepare.js +9 -20
  109. package/lib/scripts/hooks/onPrepare.js.map +1 -1
  110. package/lib/scripts/hooks/utils/addLocatorCommands.js +109 -172
  111. package/lib/scripts/hooks/utils/addLocatorCommands.js.map +1 -1
  112. package/lib/scripts/hooks/utils/browserLog.js +18 -31
  113. package/lib/scripts/hooks/utils/browserLog.js.map +1 -1
  114. package/lib/scripts/hooks/utils/dataExchangeCommands.js +13 -24
  115. package/lib/scripts/hooks/utils/dataExchangeCommands.js.map +1 -1
  116. package/lib/scripts/hooks/utils/decryption.d.ts +1 -1
  117. package/lib/scripts/hooks/utils/decryption.js +33 -14
  118. package/lib/scripts/hooks/utils/decryption.js.map +1 -1
  119. package/lib/scripts/hooks/utils/lib.js +249 -272
  120. package/lib/scripts/hooks/utils/lib.js.map +1 -1
  121. package/lib/scripts/hooks/utils/locatorCommands.js +154 -183
  122. package/lib/scripts/hooks/utils/locatorCommands.js.map +1 -1
  123. package/mkdocs.yml +16 -3
  124. package/package.json +14 -11
  125. package/test/authenticator/staticLogin/specs/custom.spec.js +30 -1
  126. package/test/reuse/nonUi5/element/getById.spec.js +17 -0
  127. package/test/reuse/service/odata/get.spec.js +61 -0
  128. package/test/reuse/service/odata/getEntitySet.spec.js +87 -0
  129. package/test/reuse/service/odata/test.odata.conf.js +15 -0
  130. package/test/reuse/ui5/confirmationDialog/clickButton.spec.js +87 -0
  131. package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.conf.js +2 -1
  132. package/test/reuse/ui5/element/test.element.conf.js +2 -1
  133. package/test/reuse/ui5/element/waitForAll.spec.js +46 -0
  134. package/test/reuse/ui5/userInteraction/clearAndFillSmartFieldInputAndRetry.spec.js +28 -0
  135. package/test/reuse/ui5/userInteraction/test.userInteraction.conf.js +1 -0
  136. package/test/reuse/util/browser/switchToNewWindow.spec.js +2 -2
  137. package/test/reuse/util/console/console.spec.js +27 -0
  138. package/test/reuse/util/console/test.console.conf.js +12 -0
  139. package/test/reuse/util/data/data/test.secure.json +7 -3
  140. package/test/reuse/util/data/getSecureData.spec.js +9 -3
  141. package/test/reuse/util/file/pdfParser.spec.js +33 -8
  142. package/test/reuse/util/system/system.spec.js +16 -0
  143. package/test/reuse/util/system/test.system.conf.js +12 -0
  144. package/tsconfig.json +1 -1
package/docs/doc.md CHANGED
@@ -1146,8 +1146,7 @@ Slices the given string beginning at a specific substring.
1146
1146
 
1147
1147
  **Example**
1148
1148
  ```js
1149
- const sliced = util.formatter.sliceStringAt("prefixNR12345postfix", "NR", 7);
1150
- // returns "NR12345"
1149
+ const sliced = util.formatter.sliceStringAt("prefixNR12345postfix", "NR", 7);
1151
1150
  ```
1152
1151
  <a name="util.formatter.sliceStringAfter"></a>
1153
1152
 
@@ -1165,8 +1164,7 @@ Slices the given string after a specific substring.
1165
1164
 
1166
1165
  **Example**
1167
1166
  ```js
1168
- const sliced = util.formatter.sliceStringAfter("prefixNR12345postfix", "NR", 5);
1169
- // returns "12345"
1167
+ const sliced = util.formatter.sliceStringAfter("prefixNR12345postfix", "NR", 5);
1170
1168
  ```
1171
1169
  <a name="util.formatter.trimString"></a>
1172
1170
 
@@ -1181,8 +1179,7 @@ Removes whitespace from both sides of the given string.
1181
1179
 
1182
1180
  **Example**
1183
1181
  ```js
1184
- const trimmed = util.formatter.trimString(" value ");
1185
- // returns "value"
1182
+ const trimmed = util.formatter.trimString(" value ");
1186
1183
  ```
1187
1184
  <a name="util.formatter.extractNumberFromString"></a>
1188
1185
 
@@ -1199,13 +1196,11 @@ Extracts all numbers from a string.
1199
1196
 
1200
1197
  **Example**
1201
1198
  ```js
1202
- const extracted = util.formatter.extractNumberFromString("prefixNR12345postfix");
1203
- // returns "12345"
1199
+ const extracted = util.formatter.extractNumberFromString("prefixNR12345postfix");
1204
1200
  ```
1205
1201
  **Example**
1206
1202
  ```js
1207
- const extracted = util.formatter.extractNumberFromString("first12345 someText second 20 abc", 1);
1208
- // returns "20"
1203
+ const extracted = util.formatter.extractNumberFromString("first12345 someText second 20 abc", 1);
1209
1204
  ```
1210
1205
  <a name="util.formatter.stringifyJSON"></a>
1211
1206
 
@@ -1256,15 +1251,11 @@ formats date.
1256
1251
 
1257
1252
  **Example**
1258
1253
  ```js
1259
- const date = new Date(2020, 0, 17);
1260
- const formattedDate = util.formatter.formatDate(date, "mm/dd/yyyy");
1261
- // returns "01/17/2020"
1254
+ const date = new Date(2020, 0, 17);
1262
1255
  ```
1263
1256
  **Example**
1264
1257
  ```js
1265
- const date = new Date(2022, 3, 12);
1266
- const formattedDate = util.formatter.formatDate(date, "mmm dd, yyyy");
1267
- // returns "Apr 03, 2022"
1258
+ const date = new Date(2022, 3, 12);
1268
1259
  ```
1269
1260
  <a name="util.function"></a>
1270
1261
 
@@ -1296,9 +1287,7 @@ await util.function.retry(ui5.userInteraction.fill, [selector, value], 4, 10000)
1296
1287
  ```
1297
1288
  **Example**
1298
1289
  ```js
1299
- await util.function.retry(async () => {
1300
- await ui5.userInteraction.fill(selector, "ABC");
1301
- }, [], 2, 30000);
1290
+ await util.function.retry(async () => {
1302
1291
  await ui5.userInteraction.fill(selector, "ABC");
1303
1292
  ```
1304
1293
  <a name="util.function.executeOptional"></a>
1305
1294
 
@@ -1318,9 +1307,7 @@ await util.function.executeOptional(ui5.userInteraction.fill, [selector, value])
1318
1307
  ```
1319
1308
  **Example**
1320
1309
  ```js
1321
- await util.function.executeOptional(async () => {
1322
- await ui5.userInteraction.fill(selector, "ABC");
1323
- }, []);
1310
+ await util.function.executeOptional(async () => {
1324
1311
  await ui5.userInteraction.fill(selector, "ABC");
1325
1312
  ```
1326
1313
  <a name="util.system"></a>
1327
1314
 
@@ -1389,7 +1376,7 @@ Global namespace for UI5 modules.
1389
1376
  * [.getByChild(elementSelector, childSelector, [index], [timeout])](#ui5.element.getByChild) ⇒ <code>Object</code>
1390
1377
  * [.getByParent(elementSelector, parentSelector, [index], [timeout])](#ui5.element.getByParent) ⇒ <code>Object</code>
1391
1378
  * [.getId(selector, [index], [timeout])](#ui5.element.getId) ⇒ <code>String</code>
1392
- * [.getPropertyValue(selector, property, [index], [timeout])](#ui5.element.getPropertyValue) ⇒ <code>String</code>
1379
+ * [.getPropertyValue(selector, property, [index], [timeout])](#ui5.element.getPropertyValue) ⇒ <code>any</code>
1393
1380
  * [.getValue(selector, [index], [timeout])](#ui5.element.getValue) ⇒ <code>String</code>
1394
1381
  * [.getBindingValue(selector, bindingContext, [index], [timeout])](#ui5.element.getBindingValue) ⇒ <code>String</code>
1395
1382
  * [.isVisible(selector, [index], [timeout])](#ui5.element.isVisible) ⇒ <code>Boolean</code>
@@ -1942,11 +1929,7 @@ Executes a native UI5 action as callback function in the browser on the given UI
1942
1929
 
1943
1930
  **Example**
1944
1931
  ```js
1945
- const selector = {"elementProperties":{"metadata":"sap.m.StandardListItem", "id": "*categoryList-7"}};
1946
- const args = {"property": "text"};
1947
- const title = await ui5.control.execute(function (control, args, done) {
1948
- done(control.getProperty(args.property));
1949
- }, selector, args);
1932
+ const selector = {"elementProperties":{"metadata":"sap.m.StandardListItem", "id": "*categoryList-7"}};
1950
1933
  done(control.getProperty(args.property));
1951
1934
  ```
1952
1935
  <a name="ui5.control.getProperty"></a>
1953
1936
 
@@ -1962,10 +1945,7 @@ Gets the UI5 control property of the given element.
1962
1945
 
1963
1946
  **Example**
1964
1947
  ```js
1965
- const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
1966
- const elem = await ui5.control.locator.getDisplayedElement(selector);
1967
- const propertyName = "title";
1968
- const val = await ui5.control.getProperty(elem, propertyName);
1948
+ const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
1969
1949
  ```
1970
1950
  <a name="ui5.control.getAggregationProperty"></a>
1971
1951
 
@@ -1981,10 +1961,7 @@ Gets the UI5 control aggregation property of the given element.
1981
1961
 
1982
1962
  **Example**
1983
1963
  ```js
1984
- const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "items":[{"path":"/Categories"}] }};
1985
- const elem = await ui5.control.locator.getDisplayedElement(selector);
1986
- const propertyName = "tooltip";
1987
- const val = await ui5.control.getAggregationProperty(elem, propertyName);
1964
+ const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "items":[{"path":"/Categories"}] }};
1988
1965
  ```
1989
1966
  <a name="ui5.control.getAssociationProperty"></a>
1990
1967
 
@@ -2000,10 +1977,7 @@ Get UI control property
2000
1977
 
2001
1978
  **Example**
2002
1979
  ```js
2003
- const selector = { "elementProperties":{"metadata":"sap.m.MultiComboBox","mProperties":{}};
2004
- const elem = await ui5.control.locator.getDisplayedElement(selector);
2005
- const propertyName = "selectedItems";
2006
- const propertyValue = await ui5.control.getAssociationProperty(elem, propertyName);
1980
+ const selector = { "elementProperties":{"metadata":"sap.m.MultiComboBox","mProperties":{}};
2007
1981
  ```
2008
1982
  <a name="ui5.control.getBindingContextPathProperty"></a>
2009
1983
 
@@ -2018,9 +1992,7 @@ Get UI control binding context path
2018
1992
 
2019
1993
  **Example**
2020
1994
  ```js
2021
- const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{"title":[{"path":"CategoryName"}] }};
2022
- const elem = await ui5.control.locator.getDisplayedElement(selector);
2023
- const context = await ui5.control.getBindingContextPathProperty(elem);
1995
+ const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{"title":[{"path":"CategoryName"}] }};
2024
1996
  ```
2025
1997
  <a name="ui5.control.getPropertyBinding"></a>
2026
1998
 
@@ -2037,10 +2009,7 @@ Get UI control property
2037
2009
 
2038
2010
  **Example**
2039
2011
  ```js
2040
- const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
2041
- const elem = await ui5.control.locator.getDisplayedElement(selector);
2042
- const propertyName = "title";
2043
- const binding = await ui5.control.getPropertyBinding(elem, propertyName);
2012
+ const selector = { "elementProperties":{"metadata":"sap.m.StandardListItem","mProperties":{ "title":[{"path":"CategoryName"}] }};
2044
2013
  ```
2045
2014
  <a name="ui5.date"></a>
2046
2015
 
@@ -2067,14 +2036,12 @@ Picks the passed date using the "DatePicker" with the given selector.
2067
2036
 
2068
2037
  **Example**
2069
2038
  ```js
2070
- const today = await common.date.calculate("today");
2071
- await ui5.date.pick(selector, date);
2039
+ const today = await common.date.calculate("today");
2072
2040
  ```
2073
2041
  <a name="ui5.date.pickRange"></a>
2074
2042
 
2075
2043
  #### date.pickRange(selector, range, [index])
2076
- Picks the passed date range using the "DatePicker" with the given selector.
2077
- Note that this will only work within the current month!
2044
+ Picks the passed date range using the "DatePicker" with the given selector.
2078
2045
 
2079
2046
  **Kind**: static method of [<code>date</code>](#ui5.date)
2080
2047
 
@@ -2086,10 +2053,7 @@ Note that this will only work within the current month!
2086
2053
 
2087
2054
  **Example**
2088
2055
  ```js
2089
- const start = await common.date.calculate("2020, 9, 20");
2090
- const end = await common.date.calculate("2021, 1, 3");
2091
- const range = [start, end];
2092
- await ui5.date.pickRange(selector, range);
2056
+ const start = await common.date.calculate("2020, 9, 20");
2093
2057
  ```
2094
2058
  <a name="ui5.date.fillRange"></a>
2095
2059
 
@@ -2106,10 +2070,7 @@ Enters the passed date range to the date input with the given selector by provid
2106
2070
 
2107
2071
  **Example**
2108
2072
  ```js
2109
- const start = await common.date.calculate("2020, 9, 20", "dd.mm.yyyy");
2110
- const end = await common.date.calculate("2021, 1, 3", "dd.mm.yyyy");
2111
- const range = [start, end];
2112
- await ui5.date.fillRange(selector, range);
2073
+ const start = await common.date.calculate("2020, 9, 20", "dd.mm.yyyy");
2113
2074
  ```
2114
2075
  <a name="ui5.element"></a>
2115
2076
 
@@ -2124,7 +2085,7 @@ await ui5.date.fillRange(selector, range);
2124
2085
  * [.getByChild(elementSelector, childSelector, [index], [timeout])](#ui5.element.getByChild) ⇒ <code>Object</code>
2125
2086
  * [.getByParent(elementSelector, parentSelector, [index], [timeout])](#ui5.element.getByParent) ⇒ <code>Object</code>
2126
2087
  * [.getId(selector, [index], [timeout])](#ui5.element.getId) ⇒ <code>String</code>
2127
- * [.getPropertyValue(selector, property, [index], [timeout])](#ui5.element.getPropertyValue) ⇒ <code>String</code>
2088
+ * [.getPropertyValue(selector, property, [index], [timeout])](#ui5.element.getPropertyValue) ⇒ <code>any</code>
2128
2089
  * [.getValue(selector, [index], [timeout])](#ui5.element.getValue) ⇒ <code>String</code>
2129
2090
  * [.getBindingValue(selector, bindingContext, [index], [timeout])](#ui5.element.getBindingValue) ⇒ <code>String</code>
2130
2091
  * [.isVisible(selector, [index], [timeout])](#ui5.element.isVisible) ⇒ <code>Boolean</code>
@@ -2203,9 +2164,7 @@ const elem = await ui5.element.getByText(selector, "Home");
2203
2164
  <a name="ui5.element.getByChild"></a>
2204
2165
 
2205
2166
  #### element.getByChild(elementSelector, childSelector, [index], [timeout]) ⇒ <code>Object</code>
2206
- Gets an element by its selector and child selector.
2207
- Can be used as unique combination between element and child properties when multiple elements have the same properties.
2208
- Note: For nested selectors, all properties except of the "elementProperties" are being ignored.
2167
+ Gets an element by its selector and child selector.
2209
2168
 
2210
2169
  **Kind**: static method of [<code>element</code>](#ui5.element)
2211
2170
  **Returns**: <code>Object</code> - The found element.
@@ -2219,20 +2178,12 @@ Note: For nested selectors, all properties except of the "elementProperties" are
2219
2178
 
2220
2179
  **Example**
2221
2180
  ```js
2222
- const elementSelector = {
2223
- "elementProperties": {...}
2224
- };
2225
- const childSelector = {
2226
- "elementProperties": {...}
2227
- };
2228
- const elem = await ui5.element.getByChild(elementSelector, childSelector);
2181
+ const elementSelector = {
2229
2182
  "elementProperties": {...}
2230
2183
  "elementProperties": {...}
2231
2184
  ```
2232
2185
  <a name="ui5.element.getByParent"></a>
2233
2186
 
2234
2187
  #### element.getByParent(elementSelector, parentSelector, [index], [timeout]) ⇒ <code>Object</code>
2235
- Gets an element by its selector and parent selector.
2236
- Can be used as unique combination between element and parent properties when multiple elements have the same properties.
2237
- Note: For nested selectors, all properties except of the "elementProperties" are being ignored.
2188
+ Gets an element by its selector and parent selector.
2238
2189
 
2239
2190
  **Kind**: static method of [<code>element</code>](#ui5.element)
2240
2191
  **Returns**: <code>Object</code> - The found element.
@@ -2246,13 +2197,7 @@ Note: For nested selectors, all properties except of the "elementProperties" are
2246
2197
 
2247
2198
  **Example**
2248
2199
  ```js
2249
- const elementSelector = {
2250
- "elementProperties": {...}
2251
- };
2252
- const parentSelector = {
2253
- "elementProperties": {...}
2254
- };
2255
- const elem = await ui5.element.getByParent(elementSelector, parentSelector);
2200
+ const elementSelector = {
2256
2201
  "elementProperties": {...}
2257
2202
  "elementProperties": {...}
2258
2203
  ```
2259
2204
  <a name="ui5.element.getId"></a>
2260
2205
 
@@ -2274,11 +2219,11 @@ const elemId = await ui5.element.getId(selector);
2274
2219
  ```
2275
2220
  <a name="ui5.element.getPropertyValue"></a>
2276
2221
 
2277
- #### element.getPropertyValue(selector, property, [index], [timeout]) ⇒ <code>String</code>
2222
+ #### element.getPropertyValue(selector, property, [index], [timeout]) ⇒ <code>any</code>
2278
2223
  Returns the UI5 property value of the passed element.
2279
2224
 
2280
2225
  **Kind**: static method of [<code>element</code>](#ui5.element)
2281
- **Returns**: <code>String</code> - The property value of the element.
2226
+ **Returns**: <code>any</code> - The property value of the element.
2282
2227
 
2283
2228
  | Param | Type | Default | Description |
2284
2229
  | --- | --- | --- | --- |
@@ -2912,9 +2857,7 @@ Navigates to the application with the passed queryParams via the passed intent.
2912
2857
 
2913
2858
  **Example**
2914
2859
  ```js
2915
- const intent = "PurchaseOrder-manage"
2916
- const queryParams = "?sap-language=EN&responderOn=true";
2917
- await ui5.navigation.navigateToApplicationWithQueryParams(intent, queryParams);
2860
+ const intent = "PurchaseOrder-manage"
2918
2861
  ```
2919
2862
  <a name="ui5.navigation.navigateToApplicationWithQueryParamsAndRetry"></a>
2920
2863
 
@@ -2934,9 +2877,7 @@ Navigates to the application via the passed intent, and retries in case it fails
2934
2877
 
2935
2878
  **Example**
2936
2879
  ```js
2937
- const intent = "PurchaseOrder-manage"
2938
- const queryParams = "?sap-language=EN&responderOn=true";
2939
- await ui5.navigation.navigateToApplicationWithQueryParamsAndRetry(intent, queryParams);
2880
+ const intent = "PurchaseOrder-manage"
2940
2881
  ```
2941
2882
  <a name="ui5.navigation.closePopups"></a>
2942
2883
 
@@ -2956,8 +2897,7 @@ await ui5.navigation.closePopups();
2956
2897
  <a name="ui5.navigation.expectUnsupportedNavigationPopup"></a>
2957
2898
 
2958
2899
  #### navigation.expectUnsupportedNavigationPopup(navigationTarget)
2959
- Expects navigation to an app that is not supported.
2960
- This can be the case for Mocked tests when the application does not exist or when the app is not included in a role.
2900
+ Expects navigation to an app that is not supported.
2961
2901
 
2962
2902
  **Kind**: static method of [<code>navigation</code>](#ui5.navigation)
2963
2903
 
@@ -3181,27 +3121,27 @@ Login with specific username and password. The selectors will be taken from the
3181
3121
 
3182
3122
  **Example**
3183
3123
  ```js
3184
- // config - SAMPLE 1
3185
- auth: {
3186
- formType: 'plain',
3187
- usernameFieldSelector: "#USERNAME_BLOCK input",
3188
- passwordFieldSelector: "#PASSWORD_BLOCK input",
3189
- logonButtonSelector: "#LOGIN_LINK"
3190
- },
3191
- // spec
3192
- await ui5.session.loginCustomViaConfig("JOHN_DOE", "abc123!");
3193
-
3194
-
3195
- // config - SAMPLE 2
3196
- auth: {
3197
- formType: "plain",
3198
- username: "PURCH_EXT",
3199
- password: "Welcome1!",
3200
- usernameFieldSelector: "#USERNAME_BLOCK input",
3201
- passwordFieldSelector: "#PASSWORD_BLOCK input",
3202
- logonButtonSelector: "#LOGIN_LINK"
3203
- },
3204
- // spec
3124
+ // config - SAMPLE 1
3125
+ auth: {
3126
+ formType: 'plain',
3127
+ usernameFieldSelector: "#USERNAME_BLOCK input",
3128
+ passwordFieldSelector: "#PASSWORD_BLOCK input",
3129
+ logonButtonSelector: "#LOGIN_LINK"
3130
+ },
3131
+ // spec
3132
+ await ui5.session.loginCustomViaConfig("JOHN_DOE", "abc123!");
3133
+
3134
+
3135
+ // config - SAMPLE 2
3136
+ auth: {
3137
+ formType: "plain",
3138
+ username: "PURCH_EXT",
3139
+ password: "Welcome1!",
3140
+ usernameFieldSelector: "#USERNAME_BLOCK input",
3141
+ passwordFieldSelector: "#PASSWORD_BLOCK input",
3142
+ logonButtonSelector: "#LOGIN_LINK"
3143
+ },
3144
+ // spec
3205
3145
  await ui5.session.loginCustomViaConfig();
3206
3146
  ```
3207
3147
  <a name="ui5.session.logout"></a>
@@ -3239,14 +3179,12 @@ await ui5.session.switchUser("PURCHASER");
3239
3179
  ```
3240
3180
  **Example**
3241
3181
  ```js
3242
- const authenticator = ui5.authenticators.fioriForm;
3243
- await ui5.session.switchUser("PURCHASER", "Welcome1!", authenticator, 30000);
3182
+ const authenticator = ui5.authenticators.fioriForm;
3244
3183
  ```
3245
3184
  <a name="ui5.session.expectLogoutText"></a>
3246
3185
 
3247
3186
  #### session.expectLogoutText()
3248
- Expects the logout text after logout to be "You have been logged off.
3249
- This is essential for chaining scripts, so that no static browser sleep in the spec itself is required anymore.
3187
+ Expects the logout text after logout to be "You have been logged off.
3250
3188
 
3251
3189
  **Kind**: static method of [<code>session</code>](#ui5.session)
3252
3190
  **Example**
@@ -3281,14 +3219,7 @@ await ui5.table.sortColumnAscending("Supplier");
3281
3219
  ```
3282
3220
  **Example**
3283
3221
  ```js
3284
- const glAccountItemsTable = {
3285
- "elementProperties": {
3286
- "viewName": "ui.s2p.mm.supplinvoice.manage.s1.view.S1",
3287
- "metadata": "sap.m.Table",
3288
- "id": "*idS2P.MM.MSI.TableGLAccountItems"
3289
- }
3290
- };
3291
- await ui5.table.sortColumnAscending("Amount", glAccountItemsTable);
3222
+ const glAccountItemsTable = {
3292
3223
  "elementProperties": {
3293
3224
  "viewName": "ui.s2p.mm.supplinvoice.manage.s1.view.S1",
3294
3225
  "metadata": "sap.m.Table",
3295
3226
  "id": "*idS2P.MM.MSI.TableGLAccountItems"
3296
3227
  }
3297
3228
  ```
3298
3229
  <a name="ui5.table.sortColumnDescending"></a>
3299
3230
 
@@ -3308,14 +3239,7 @@ await ui5.table.sortColumnDescending("Supplier");
3308
3239
  ```
3309
3240
  **Example**
3310
3241
  ```js
3311
- const glAccountItemsTable = {
3312
- "elementProperties": {
3313
- "viewName": "ui.s2p.mm.supplinvoice.manage.s1.view.S1",
3314
- "metadata": "sap.m.Table",
3315
- "id": "*idS2P.MM.MSI.TableGLAccountItems"
3316
- }
3317
- };
3318
- await ui5.table.sortColumnDescending("Amount", glAccountItemsTable);
3242
+ const glAccountItemsTable = {
3319
3243
  "elementProperties": {
3320
3244
  "viewName": "ui.s2p.mm.supplinvoice.manage.s1.view.S1",
3321
3245
  "metadata": "sap.m.Table",
3322
3246
  "id": "*idS2P.MM.MSI.TableGLAccountItems"
3323
3247
  }
3324
3248
  ```
3325
3249
  <a name="ui5.table.clickSettingsButton"></a>
3326
3250
 
@@ -3334,14 +3258,7 @@ await ui5.table.clickSettingsButton();
3334
3258
  ```
3335
3259
  **Example**
3336
3260
  ```js
3337
- const glAccountItemsTable = {
3338
- "elementProperties": {
3339
- "viewName": "ui.s2p.mm.supplinvoice.manage.s1.view.S1",
3340
- "metadata": "sap.m.Table",
3341
- "id": "*idS2P.MM.MSI.TableGLAccountItems"
3342
- }
3343
- };
3344
- await ui5.table.clickSettingsButton(glAccountItemsTable);
3261
+ const glAccountItemsTable = {
3345
3262
  "elementProperties": {
3346
3263
  "viewName": "ui.s2p.mm.supplinvoice.manage.s1.view.S1",
3347
3264
  "metadata": "sap.m.Table",
3348
3265
  "id": "*idS2P.MM.MSI.TableGLAccountItems"
3349
3266
  }
3350
3267
  ```
3351
3268
  <a name="ui5.userInteraction"></a>
3352
3269
 
@@ -3415,8 +3332,7 @@ await ui5.userInteraction.clickAndRetry(selector);
3415
3332
  <a name="ui5.userInteraction.clickTab"></a>
3416
3333
 
3417
3334
  #### userInteraction.clickTab(selector, [index], [timeout])
3418
- Clicks on the tab with the given selector and checks if the tab got selected successfully.
3419
- The function retries the click for maximal 3 times if the selection of the tab (blue underline) was not successful.
3335
+ Clicks on the tab with the given selector and checks if the tab got selected successfully.
3420
3336
 
3421
3337
  **Kind**: static method of [<code>userInteraction</code>](#ui5.userInteraction)
3422
3338
 
@@ -3433,9 +3349,7 @@ await ui5.userInteraction.clickTab(selector);
3433
3349
  <a name="ui5.userInteraction.clickListItem"></a>
3434
3350
 
3435
3351
  #### userInteraction.clickListItem(selector, [index], [timeout])
3436
- Clicks or opens the list item with the given selector (e.g. ColumnListItem, StandardListItem).
3437
- In some cases the default click function is not working correctly (clicks an element within the list item).
3438
- Therefore we recommend to use this function to open a specific list item.
3352
+ Clicks or opens the list item with the given selector (e.g. ColumnListItem, StandardListItem).
3439
3353
 
3440
3354
  **Kind**: static method of [<code>userInteraction</code>](#ui5.userInteraction)
3441
3355
 
@@ -3620,9 +3534,7 @@ await ui5.userInteraction.clearAndFillSmartFieldInputAndRetry(selector, "My Valu
3620
3534
  <a name="ui5.userInteraction.selectBox"></a>
3621
3535
 
3622
3536
  #### userInteraction.selectBox(selector, value, [index])
3623
- Selects the passed value of the Select box.
3624
- Please note that the function will only work for the default select Box.
3625
- In special cases, please use the clickSelectArrow function.
3537
+ Selects the passed value of the Select box.
3626
3538
 
3627
3539
  **Kind**: static method of [<code>userInteraction</code>](#ui5.userInteraction)
3628
3540
 
@@ -3639,9 +3551,7 @@ await ui5.userInteraction.selectBox(selector, "Germany");
3639
3551
  <a name="ui5.userInteraction.selectComboBox"></a>
3640
3552
 
3641
3553
  #### userInteraction.selectComboBox(selector, value, [index])
3642
- Selects the passed value from the ComboBox with the given selector.
3643
- Please note that the function will only work for the default ComboBox.
3644
- In special cases you need to use the 'clickSelectArrow' function.
3554
+ Selects the passed value from the ComboBox with the given selector.
3645
3555
 
3646
3556
  **Kind**: static method of [<code>userInteraction</code>](#ui5.userInteraction)
3647
3557
 
@@ -3658,9 +3568,7 @@ await ui5.userInteraction.selectComboBox(selector, "Germany");
3658
3568
  <a name="ui5.userInteraction.selectMultiComboBox"></a>
3659
3569
 
3660
3570
  #### userInteraction.selectMultiComboBox(selector, values, [index])
3661
- Selects the passed values of the MultiComboBox with the given selector.
3662
- Please note that the function will only work for the default MultiComboBox.
3663
- In special cases, please use the clickSelectArrow function.
3571
+ Selects the passed values of the MultiComboBox with the given selector.
3664
3572
 
3665
3573
  **Kind**: static method of [<code>userInteraction</code>](#ui5.userInteraction)
3666
3574
 
@@ -3785,8 +3693,7 @@ await ui5.userInteraction.openF4Help(selector, 0, 30000, false);
3785
3693
  <a name="ui5.userInteraction.searchFor"></a>
3786
3694
 
3787
3695
  #### userInteraction.searchFor(selector, [index], [timeout], useEnter)
3788
- Searches for the passed value and executes the search.
3789
- In case that the search is already filled, it will reset the field first.
3696
+ Searches for the passed value and executes the search.
3790
3697
 
3791
3698
  **Kind**: static method of [<code>userInteraction</code>](#ui5.userInteraction)
3792
3699
 
@@ -3850,8 +3757,7 @@ Right Clicks on the passed element.
3850
3757
 
3851
3758
  **Example**
3852
3759
  ```js
3853
- const elem = await nonUi5.element.getById("button01");
3854
- await ui5.userInteraction.rightClick(elem);
3760
+ const elem = await nonUi5.element.getById("button01");
3855
3761
  ```
3856
3762
  <a name="nonUi5"></a>
3857
3763
 
@@ -3938,13 +3844,11 @@ Expects the attributes value of the passed element to be the compare value.
3938
3844
 
3939
3845
  **Example**
3940
3846
  ```js
3941
- const elem = await nonUi5.element.getById("button01");
3942
- await nonUi5.assertion.expectAttributeToBe(elem, "Save");
3847
+ const elem = await nonUi5.element.getById("button01");
3943
3848
  ```
3944
3849
  **Example**
3945
3850
  ```js
3946
- const elem = await nonUi5.element.getById("button01");
3947
- await nonUi5.assertion.expectAttributeToBe(element, "Save", "title");
3851
+ const elem = await nonUi5.element.getById("button01");
3948
3852
  ```
3949
3853
  <a name="nonUi5.assertion.expectAttributeToContain"></a>
3950
3854
 
@@ -3961,8 +3865,7 @@ Expects the attributes value of the passed element to contain the compare value.
3961
3865
 
3962
3866
  **Example**
3963
3867
  ```js
3964
- const elem = await nonUi5.element.getById("button01");
3965
- await nonUi5.assertion.expectAttributeToContain(element, "Save", "title");
3868
+ const elem = await nonUi5.element.getById("button01");
3966
3869
  ```
3967
3870
  <a name="nonUi5.assertion.expectValueToBe"></a>
3968
3871
 
@@ -3978,8 +3881,7 @@ Expects the attributes value of the passed element to be the compare value.
3978
3881
 
3979
3882
  **Example**
3980
3883
  ```js
3981
- const elem = await nonUi5.element.getById("button01");
3982
- await nonUi5.assertion.expectValueToBe(elem, "Save");
3884
+ const elem = await nonUi5.element.getById("button01");
3983
3885
  ```
3984
3886
  <a name="nonUi5.assertion.expectToBeVisible"></a>
3985
3887
 
@@ -3994,8 +3896,7 @@ Expects that the element is visible to the user.
3994
3896
 
3995
3897
  **Example**
3996
3898
  ```js
3997
- const elem = await nonUi5.element.getById("button01");
3998
- await nonUi5.assertion.expectToBeVisible(elem);
3899
+ const elem = await nonUi5.element.getById("button01");
3999
3900
  ```
4000
3901
  <a name="nonUi5.assertion.expectToBeNotVisible"></a>
4001
3902
 
@@ -4011,8 +3912,7 @@ Expects that the element is not visible to the user.
4011
3912
 
4012
3913
  **Example**
4013
3914
  ```js
4014
- const elem = await nonUi5.element.getById("button01");
4015
- await nonUi5.assertion.expectToBeNotVisible(elem, 5000);
3915
+ const elem = await nonUi5.element.getById("button01");
4016
3916
  ```
4017
3917
  <a name="nonUi5.element"></a>
4018
3918
 
@@ -4164,9 +4064,7 @@ Returns all elements found by the given selector despite visible or not.
4164
4064
 
4165
4065
  **Example**
4166
4066
  ```js
4167
- const hiddenElements = await nonUi5.element.getAll(".sapUiInvisibleText");
4168
- const isPresent = await nonUi5.element.isPresent(hiddenElements[0]);
4169
- await common.assertion.expectTrue(isPresent);
4067
+ const hiddenElements = await nonUi5.element.getAll(".sapUiInvisibleText");
4170
4068
  ```
4171
4069
  <a name="nonUi5.element.getByCss"></a>
4172
4070
 
@@ -4243,8 +4141,7 @@ Gets the element with the given class.
4243
4141
 
4244
4142
  **Example**
4245
4143
  ```js
4246
- const elem = await nonUi5.element.getByClass("button01");
4247
- const elem = await nonUi5.element.getByClass("sapMIBar sapMTB sapMTBNewFlex sapContrastPlus");
4144
+ const elem = await nonUi5.element.getByClass("button01");
4248
4145
  ```
4249
4146
  <a name="nonUi5.element.getByName"></a>
4250
4147
 
@@ -4339,8 +4236,7 @@ Returns a boolean if the element is visible to the user.
4339
4236
 
4340
4237
  **Example**
4341
4238
  ```js
4342
- const elem = await nonUi5.element.getById("button01");
4343
- await nonUi5.element.isVisible(elem);
4239
+ const elem = await nonUi5.element.getById("button01");
4344
4240
  ```
4345
4241
  <a name="nonUi5.element.isPresent"></a>
4346
4242
 
@@ -4356,8 +4252,7 @@ Returns a boolean if the element is present at the DOM or not. It might be hidde
4356
4252
 
4357
4253
  **Example**
4358
4254
  ```js
4359
- const elem = await nonUi5.element.getById("button01");
4360
- await nonUi5.element.isPresent(elem);
4255
+ const elem = await nonUi5.element.getById("button01");
4361
4256
  ```
4362
4257
  <a name="nonUi5.element.isPresentByCss"></a>
4363
4258
 
@@ -4409,13 +4304,11 @@ Returns the attributes value of the passed element.
4409
4304
 
4410
4305
  **Example**
4411
4306
  ```js
4412
- const elem = await nonUi5.element.getById("elem01");
4413
- const text = await nonUi5.element.getAttributeValue(elem, "text");
4307
+ const elem = await nonUi5.element.getById("elem01");
4414
4308
  ```
4415
4309
  **Example**
4416
4310
  ```js
4417
- const elem = await nonUi5.element.getById("elem02");
4418
- const innerHTML = await nonUi5.element.getAttributeValue(elem);
4311
+ const elem = await nonUi5.element.getById("elem02");
4419
4312
  ```
4420
4313
  <a name="nonUi5.element.getValue"></a>
4421
4314
 
@@ -4431,14 +4324,12 @@ Returns the value of the passed element.
4431
4324
 
4432
4325
  **Example**
4433
4326
  ```js
4434
- const elem = await nonUi5.element.getById("elem02");
4435
- const innerHTML = await nonUi5.element.getValue(elem);
4327
+ const elem = await nonUi5.element.getById("elem02");
4436
4328
  ```
4437
4329
  <a name="nonUi5.element.setInnerHTML"></a>
4438
4330
 
4439
4331
  #### element.setInnerHTML(elem) ⇒ <code>String</code>
4440
- Sets the innerHTML value of the given element.
4441
- CAUTION: Only use this if filling the value in the normal way is not working and if it is unavoidable. Keep in mind, that a user is not able to perform such actions.
4332
+ Sets the innerHTML value of the given element.
4442
4333
 
4443
4334
  **Kind**: static method of [<code>element</code>](#nonUi5.element)
4444
4335
  **Returns**: <code>String</code> - The value to set.
@@ -4449,8 +4340,7 @@ CAUTION: Only use this if filling the value in the normal way is not working and
4449
4340
 
4450
4341
  **Example**
4451
4342
  ```js
4452
- const elem = await nonUi5.element.getById("text-editor");
4453
- await nonUi5.element.setInnerHTML(elem, "Hello World!");
4343
+ const elem = await nonUi5.element.getById("text-editor");
4454
4344
  ```
4455
4345
  <a name="nonUi5.element.highlight"></a>
4456
4346
 
@@ -4467,13 +4357,11 @@ Highlights the passed element.
4467
4357
 
4468
4358
  **Example**
4469
4359
  ```js
4470
- const elem = await nonUi5.element.getById("text01");
4471
- await nonUi5.element.highlight(elem);
4360
+ const elem = await nonUi5.element.getById("text01");
4472
4361
  ```
4473
4362
  **Example**
4474
4363
  ```js
4475
- const elem = await nonUi5.element.getById("text01");
4476
- await nonUi5.element.highlight(elem, 3000, "green");
4364
+ const elem = await nonUi5.element.getById("text01");
4477
4365
  ```
4478
4366
  <a name="nonUi5.element.switchToIframe"></a>
4479
4367
 
@@ -4562,8 +4450,7 @@ Clicks on the passed element.
4562
4450
 
4563
4451
  **Example**
4564
4452
  ```js
4565
- const elem = await nonUi5.element.getById("button01");
4566
- await nonUi5.userInteraction.click(elem);
4453
+ const elem = await nonUi5.element.getById("button01");
4567
4454
  ```
4568
4455
  <a name="nonUi5.userInteraction.clickAndRetry"></a>
4569
4456
 
@@ -4581,8 +4468,7 @@ Clicks on the passed element, retries in case it fails.
4581
4468
 
4582
4469
  **Example**
4583
4470
  ```js
4584
- const elem = await nonUi5.element.getById("button01");
4585
- await nonUi5.userInteraction.clickAndRetry(elem);
4471
+ const elem = await nonUi5.element.getById("button01");
4586
4472
  ```
4587
4473
  <a name="nonUi5.userInteraction.doubleClick"></a>
4588
4474
 
@@ -4598,8 +4484,7 @@ Double Clicks on the passed element.
4598
4484
 
4599
4485
  **Example**
4600
4486
  ```js
4601
- const elem = await nonUi5.element.getById("button01");
4602
- await nonUi5.userInteraction.doubleClick(elem);
4487
+ const elem = await nonUi5.element.getById("button01");
4603
4488
  ```
4604
4489
  <a name="nonUi5.userInteraction.rightClick"></a>
4605
4490
 
@@ -4615,8 +4500,7 @@ Right Clicks on the passed element.
4615
4500
 
4616
4501
  **Example**
4617
4502
  ```js
4618
- const elem = await nonUi5.element.getById("button01");
4619
- await nonUi5.userInteraction.rightClick(elem);
4503
+ const elem = await nonUi5.element.getById("button01");
4620
4504
  ```
4621
4505
  <a name="nonUi5.userInteraction.fill"></a>
4622
4506
 
@@ -4632,8 +4516,7 @@ Fills the given value into the passed input.
4632
4516
 
4633
4517
  **Example**
4634
4518
  ```js
4635
- const elem = await nonUi5.element.getById("input01");
4636
- await nonUi5.userInteraction.fill(elem, "Service 01");
4519
+ const elem = await nonUi5.element.getById("input01");
4637
4520
  ```
4638
4521
  <a name="nonUi5.userInteraction.fillAndRetry"></a>
4639
4522
 
@@ -4651,8 +4534,7 @@ Fills the given value into the passed input, retries in case of a failure.
4651
4534
 
4652
4535
  **Example**
4653
4536
  ```js
4654
- const elem = await nonUi5.element.getById("input01");
4655
- await nonUi5.userInteraction.fillAndRetry(elem, "Service 01");
4537
+ const elem = await nonUi5.element.getById("input01");
4656
4538
  ```
4657
4539
  <a name="nonUi5.userInteraction.clear"></a>
4658
4540
 
@@ -4667,8 +4549,7 @@ Clears the passed input element.
4667
4549
 
4668
4550
  **Example**
4669
4551
  ```js
4670
- const elem = await nonUi5.element.getById("input01");
4671
- await nonUi5.userInteraction.clear(elem);
4552
+ const elem = await nonUi5.element.getById("input01");
4672
4553
  ```
4673
4554
  <a name="nonUi5.userInteraction.clearAndRetry"></a>
4674
4555
 
@@ -4685,8 +4566,7 @@ Clears the passed input element, retries in case of a failure.
4685
4566
 
4686
4567
  **Example**
4687
4568
  ```js
4688
- const elem = await nonUi5.element.getById("input01", 10000);
4689
- await nonUi5.userInteraction.clearAndRetry(elem);
4569
+ const elem = await nonUi5.element.getById("input01", 10000);
4690
4570
  ```
4691
4571
  <a name="nonUi5.userInteraction.clearAndFill"></a>
4692
4572
 
@@ -4702,8 +4582,7 @@ Clears and fills the passed input element.
4702
4582
 
4703
4583
  **Example**
4704
4584
  ```js
4705
- const elem = await nonUi5.element.getById("input01");
4706
- await nonUi5.userInteraction.clearAndFill(elem, "Service 01");
4585
+ const elem = await nonUi5.element.getById("input01");
4707
4586
  ```
4708
4587
  <a name="nonUi5.userInteraction.clearAndFillAndRetry"></a>
4709
4588
 
@@ -4722,8 +4601,7 @@ Clears and fills the passed input, retries in case it fails.
4722
4601
 
4723
4602
  **Example**
4724
4603
  ```js
4725
- const elem = await nonUi5.element.getById("input01");
4726
- await nonUi5.userInteraction.clearAndFillAndRetry(elem, "Service 01");
4604
+ const elem = await nonUi5.element.getById("input01");
4727
4605
  ```
4728
4606
  <a name="nonUi5.userInteraction.mouseOverElement"></a>
4729
4607
 
@@ -4740,8 +4618,7 @@ Moves the cursor/focus to the passed element.
4740
4618
 
4741
4619
  **Example**
4742
4620
  ```js
4743
- const elem = await nonUi5.element.getById("dropdown42");
4744
- await nonUi5.userInteraction.mouseOverElement(elem);
4621
+ const elem = await nonUi5.element.getById("dropdown42");
4745
4622
  ```
4746
4623
  <a name="nonUi5.userInteraction.scrollToElement"></a>
4747
4624
 
@@ -4757,8 +4634,7 @@ Scrolls to the passed element to get it into view.
4757
4634
 
4758
4635
  **Example**
4759
4636
  ```js
4760
- const elem = await nonUi5.userInteraction.getElementById("footer01");
4761
- await nonUi5.userInteraction.scrollToElement(elem);
4637
+ const elem = await nonUi5.userInteraction.getElementById("footer01");
4762
4638
  ```
4763
4639
  <a name="nonUi5.userInteraction.dragAndDrop"></a>
4764
4640
 
@@ -4778,8 +4654,7 @@ const elem = await nonUi5.element.getById("drag01");
4778
4654
  ```
4779
4655
  **Example**
4780
4656
  ```js
4781
- const targetElem = await nonUi5.element.getById("drop02");
4782
- await nonUi5.userInteraction.dragAndDrop(elem, targetElem);
4657
+ const targetElem = await nonUi5.element.getById("drop02");
4783
4658
  ```
4784
4659
  <a name="nonUi5.userInteraction.moveCursorAndClick"></a>
4785
4660
 
@@ -4794,8 +4669,7 @@ Moves the cursor to the target element and clicks on it. Can be used for charts.
4794
4669
 
4795
4670
  **Example**
4796
4671
  ```js
4797
- const elem = await nonUi5.element.getById("chartPartToClick");
4798
- await nonUi5.userInteraction.moveCursorAndClick(elem);
4672
+ const elem = await nonUi5.element.getById("chartPartToClick");
4799
4673
  ```
4800
4674
  <a name="nonUi5.userInteraction.clickElementInSvg"></a>
4801
4675
 
@@ -4811,9 +4685,7 @@ Clicks on an inner element within a SVG element.
4811
4685
 
4812
4686
  **Example**
4813
4687
  ```js
4814
- const svgElem = await nonUi5.element.getByCss("svg");
4815
- const innerSelector = "circle:nth-child(6)";
4816
- await nonUi5.userInteraction.clickElementInSvg(svgElem, innerSelector);
4688
+ const svgElem = await nonUi5.element.getByCss("svg");
4817
4689
  ```
4818
4690
  <a name="service"></a>
4819
4691
 
@@ -4824,16 +4696,16 @@ Global namespace for service modules.
4824
4696
 
4825
4697
  * [service](#service)
4826
4698
  * [.odata](#service.odata)
4827
- * [.init(url, username, password, [loggingEnabled], [params])](#service.odata.init) ⇒ <code>Object</code>
4828
- * [.get(service, entitySet, keys)](#service.odata.get)
4829
- * [.getEntitySet(service, entitySet, [filterString], [selectionFields], [queryParams])](#service.odata.getEntitySet) ⇒ <code>Array</code>
4830
- * [.isFeatureToggleActivated(service, featureName)](#service.odata.isFeatureToggleActivated)
4831
- * [.post(service, entitySet, payload)](#service.odata.post)
4832
- * [.merge(service, entitySet, payload)](#service.odata.merge)
4833
- * [.delete(service, entitySet, options)](#service.odata.delete)
4834
- * [.callFunctionImport(service, functionImportName, options)](#service.odata.callFunctionImport)
4835
- * [.getOutputManagementPdfStream(outputConf, url)](#service.odata.getOutputManagementPdfStream)
4836
- * [.readPdfFromDirectUrl(url)](#service.odata.readPdfFromDirectUrl)
4699
+ * [.init(url, username, password, [loggingEnabled], [params], [authType])](#service.odata.init) ⇒ <code>Object</code>
4700
+ * [.get(srv, entitySet, keys)](#service.odata.get)
4701
+ * [.getEntitySet(srv, entitySet, [filterString], [selectionFields], [queryParams])](#service.odata.getEntitySet) ⇒ <code>Array</code>
4702
+ * [.isFeatureToggleActivated(srv, featureName)](#service.odata.isFeatureToggleActivated)
4703
+ * [.post(srv, entitySet, payload)](#service.odata.post)
4704
+ * [.merge(srv, entitySet, payload)](#service.odata.merge)
4705
+ * [.delete(srv, entitySet, options)](#service.odata.delete)
4706
+ * [.callFunctionImport(srv, functionImportName, options)](#service.odata.callFunctionImport)
4707
+ * [.getOutputManagementPdfStream(outputConf, url, username, password)](#service.odata.getOutputManagementPdfStream)
4708
+ * [.readPdfFromDirectUrl(url, [username], [password], [isSaml])](#service.odata.readPdfFromDirectUrl)
4837
4709
  * [.rest](#service.rest)
4838
4710
  * [.init([customConfig])](#service.rest.init) ⇒ <code>Object</code>
4839
4711
  * [.get(uri, [options])](#service.rest.get) ⇒ <code>Object</code>
@@ -4847,65 +4719,58 @@ Global namespace for service modules.
4847
4719
  **Kind**: static class of [<code>service</code>](#service)
4848
4720
 
4849
4721
  * [.odata](#service.odata)
4850
- * [.init(url, username, password, [loggingEnabled], [params])](#service.odata.init) ⇒ <code>Object</code>
4851
- * [.get(service, entitySet, keys)](#service.odata.get)
4852
- * [.getEntitySet(service, entitySet, [filterString], [selectionFields], [queryParams])](#service.odata.getEntitySet) ⇒ <code>Array</code>
4853
- * [.isFeatureToggleActivated(service, featureName)](#service.odata.isFeatureToggleActivated)
4854
- * [.post(service, entitySet, payload)](#service.odata.post)
4855
- * [.merge(service, entitySet, payload)](#service.odata.merge)
4856
- * [.delete(service, entitySet, options)](#service.odata.delete)
4857
- * [.callFunctionImport(service, functionImportName, options)](#service.odata.callFunctionImport)
4858
- * [.getOutputManagementPdfStream(outputConf, url)](#service.odata.getOutputManagementPdfStream)
4859
- * [.readPdfFromDirectUrl(url)](#service.odata.readPdfFromDirectUrl)
4722
+ * [.init(url, username, password, [loggingEnabled], [params], [authType])](#service.odata.init) ⇒ <code>Object</code>
4723
+ * [.get(srv, entitySet, keys)](#service.odata.get)
4724
+ * [.getEntitySet(srv, entitySet, [filterString], [selectionFields], [queryParams])](#service.odata.getEntitySet) ⇒ <code>Array</code>
4725
+ * [.isFeatureToggleActivated(srv, featureName)](#service.odata.isFeatureToggleActivated)
4726
+ * [.post(srv, entitySet, payload)](#service.odata.post)
4727
+ * [.merge(srv, entitySet, payload)](#service.odata.merge)
4728
+ * [.delete(srv, entitySet, options)](#service.odata.delete)
4729
+ * [.callFunctionImport(srv, functionImportName, options)](#service.odata.callFunctionImport)
4730
+ * [.getOutputManagementPdfStream(outputConf, url, username, password)](#service.odata.getOutputManagementPdfStream)
4731
+ * [.readPdfFromDirectUrl(url, [username], [password], [isSaml])](#service.odata.readPdfFromDirectUrl)
4860
4732
 
4861
4733
  <a name="service.odata.init"></a>
4862
4734
 
4863
- #### odata.init(url, username, password, [loggingEnabled], [params]) ⇒ <code>Object</code>
4864
- Initializes The service to work with.
4865
- XCSRF-Token will be automatically fetched and stored in the service instance.
4866
- Cookies will also automatically assembled and stored in the service instance.
4735
+ #### odata.init(url, username, password, [loggingEnabled], [params], [authType]) ⇒ <code>Object</code>
4736
+ Initializes The service to work with.
4867
4737
 
4868
4738
  **Kind**: static method of [<code>odata</code>](#service.odata)
4869
4739
  **Returns**: <code>Object</code> - The initialized service object.
4870
4740
 
4871
4741
  | Param | Type | Default | Description |
4872
4742
  | --- | --- | --- | --- |
4873
- | url | <code>url</code> | | The base url of the service |
4874
- | username | <code>username</code> | | The username. |
4875
- | password | <code>password</code> | | The password of the username. |
4743
+ | url | <code>String</code> | | The base url of the service |
4744
+ | username | <code>String</code> | | The username. |
4745
+ | password | <code>String</code> | | The password of the username. |
4876
4746
  | [loggingEnabled] | <code>boolean</code> | <code>false</code> | The boolean param to control whether user wants to see logs during build run |
4877
4747
  | [params] | <code>Object</code> | <code>{}</code> | JSON object with key-value pairs of parameter names and corresponding values by default we send { "client": "715", "documentation": ["heading", "quickinfo"], "language": "EN" } These can be overridden by sending params as JSON object with additional params as shown in example |
4748
+ | [authType] | <code>String</code> | | authentication type, in case you want to override the default SAML authentication. Set this to "basic", to use basic authentication for communication users for whom SAML login doesn't work. Or "none" for no authentication. |
4878
4749
 
4879
4750
  **Example**
4880
4751
  ```js
4881
- const url = "https://hbr-715.wdf.sap.corp/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
4882
- const params = {
4883
- "saml2": "disabled",
4884
- "language": "de"
4885
- }
4886
- srv = await service.odata.init(url, user, password, false, params);
4752
+ const url = "https://hbr-715.wdf.sap.corp/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
4887
4753
  "saml2": "disabled",
4888
4754
  "language": "de"
4889
4755
  ```
4890
4756
  <a name="service.odata.get"></a>
4891
4757
 
4892
- #### odata.get(service, entitySet, keys)
4758
+ #### odata.get(srv, entitySet, keys)
4893
4759
  makes a GET request.
4894
4760
 
4895
4761
  **Kind**: static method of [<code>odata</code>](#service.odata)
4896
4762
 
4897
4763
  | Param | Type | Description |
4898
4764
  | --- | --- | --- |
4899
- | service | [<code>service</code>](#service) | Instance of the service |
4900
- | entitySet | <code>entitySet</code> | The entitySet you want to GET from. |
4901
- | keys | <code>keys</code> | The required keys for the GET-request. |
4765
+ | srv | <code>Object</code> | Instance of the service |
4766
+ | entitySet | <code>String</code> | The entitySet you want to GET from. |
4767
+ | keys | <code>Object</code> | The required keys for the GET-request. |
4902
4768
 
4903
4769
  **Example**
4904
4770
  ```js
4905
- const url = "https://qs9-715.wdf.sap.corp/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
4906
- srv = await service.odata.init(url, user, password);
4771
+ const url = "https://qs9-715.wdf.sap.corp/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
4907
4772
  PurchaseOrder: "4100000000"
4908
4773
  ```
4909
4774
  <a name="service.odata.getEntitySet"></a>
4910
4775
 
4911
- #### odata.getEntitySet(service, entitySet, [filterString], [selectionFields], [queryParams]) ⇒ <code>Array</code>
4776
+ #### odata.getEntitySet(srv, entitySet, [filterString], [selectionFields], [queryParams]) ⇒ <code>Array</code>
4912
4777
  GET's the EntitySet collection.
4913
4778
 
4914
4779
  **Kind**: static method of [<code>odata</code>](#service.odata)
@@ -4913,175 +4778,135 @@ GET's the EntitySet collection.
4913
4778
 
4914
4779
  | Param | Type | Description |
4915
4780
  | --- | --- | --- |
4916
- | service | [<code>service</code>](#service) | Instance of the service |
4917
- | entitySet | <code>entitySet</code> | The entitySet you want to GET from. |
4781
+ | srv | <code>Object</code> | Instance of the service |
4782
+ | entitySet | <code>String</code> | The entitySet you want to GET from. |
4918
4783
  | [filterString] | <code>String</code> | The filters to be applied on get query |
4919
4784
  | [selectionFields] | <code>String</code> | comma separated list of fields to be selected |
4920
4785
  | [queryParams] | <code>Object</code> | JSON object of key value pairs of custom query parameters. |
4921
4786
 
4922
4787
  **Example**
4923
4788
  ```js
4924
- const url = "https://qs9-715.wdf.sap.corp/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
4925
- srv = await service.odata.init(url, user, password);
4926
-
4927
- let filterString = "Status eq '01'";
4928
- let res = await service.odata.getEntitySet(service, "A_PurchaseOrder", filterString);
4929
-
4930
- let select = "CentralPurchaseContract,PurchasingProcessingStatus" ;
4931
- let res = await service.odata.getEntitySet(service, "A_PurchaseOrder", filterString, select);
4932
-
4933
- let queryParams = {
4934
- "$top" : 5,
4935
- "$skip" : 10,
4936
- };
4937
- let res = await service.odata.getEntitySet(service, "A_PurchaseOrder", filterString, select, queryParams);
4789
+ const url = "https://qs9-715.wdf.sap.corp/sap/opu/odata/sap/API_PURCHASEORDER_PROCESS_SRV/";
4938
4790
  "$top" : 5,
4939
4791
  "$skip" : 10,
4940
4792
  ```
4941
4793
  <a name="service.odata.isFeatureToggleActivated"></a>
4942
4794
 
4943
- #### odata.isFeatureToggleActivated(service, featureName)
4795
+ #### odata.isFeatureToggleActivated(srv, featureName)
4944
4796
  checks if a feature toggle is switched on or off
4945
4797
 
4946
4798
  **Kind**: static method of [<code>odata</code>](#service.odata)
4947
4799
 
4948
4800
  | Param | Type | Description |
4949
4801
  | --- | --- | --- |
4950
- | service | [<code>service</code>](#service) | Instance of the service |
4951
- | featureName | <code>featureName</code> | The name of the feature you want know the status of. |
4802
+ | srv | <code>Object</code> | Instance of the service |
4803
+ | featureName | <code>String</code> | The name of the feature you want know the status of. |
4952
4804
 
4953
4805
  **Example**
4954
4806
  ```js
4955
- const url = browser.params.systemUrl + "/sap/opu/odata/SAP/CA_FM_FEATURE_TOGGLE_STATUS_SRV/";
4956
- service = await service.odata.init(url, user, password);
4957
- let isFeatureActive = await service.odata.isFeatureToggleActivated(service, "MM_PUR_PO_BATCHES_IN_MANAGE_PO");
4807
+ const url = browser.params.systemUrl + "/sap/opu/odata/SAP/CA_FM_FEATURE_TOGGLE_STATUS_SRV/";
4958
4808
  ```
4959
4809
  <a name="service.odata.post"></a>
4960
4810
 
4961
- #### odata.post(service, entitySet, payload)
4811
+ #### odata.post(srv, entitySet, payload)
4962
4812
  makes a POST request.
4963
4813
 
4964
4814
  **Kind**: static method of [<code>odata</code>](#service.odata)
4965
4815
 
4966
4816
  | Param | Type | Description |
4967
4817
  | --- | --- | --- |
4968
- | service | [<code>service</code>](#service) | Instance of the service |
4969
- | entitySet | <code>entitySet</code> | The entitySet you want to POST against. |
4970
- | payload | <code>payload</code> | The payload for the POST-request. |
4818
+ | srv | <code>Object</code> | Instance of the service |
4819
+ | entitySet | <code>String</code> | The entitySet you want to POST against. |
4820
+ | payload | <code>Object</code> | The payload for the POST-request. |
4971
4821
 
4972
4822
  **Example**
4973
4823
  ```js
4974
- let keys = {
4975
- "PurchaseOrder": "4500007108",
4976
- "DraftUUID": "00000000-0000-0000-0000-000000000000",
4977
- "IsActiveEntity": "true"
4978
- };
4979
- let res = await service.odata.get(service, "A_PurchaseOrder", keys);
4824
+ let payload = {
4980
4825
  "PurchaseOrder": "4500007108",
4981
4826
  "DraftUUID": "00000000-0000-0000-0000-000000000000",
4982
4827
  "IsActiveEntity": "true"
4983
4828
  ```
4984
4829
  <a name="service.odata.merge"></a>
4985
4830
 
4986
- #### odata.merge(service, entitySet, payload)
4831
+ #### odata.merge(srv, entitySet, payload)
4987
4832
  makes a MERGE request.
4988
4833
 
4989
4834
  **Kind**: static method of [<code>odata</code>](#service.odata)
4990
4835
 
4991
4836
  | Param | Type | Description |
4992
4837
  | --- | --- | --- |
4993
- | service | [<code>service</code>](#service) | Instance of the service |
4994
- | entitySet | <code>entitySet</code> | The entitySet you want to MERGE in. |
4995
- | payload | <code>payload</code> | The payload for the MERGE-request. |
4838
+ | srv | <code>Object</code> | Instance of the service |
4839
+ | entitySet | <code>String</code> | The entitySet you want to MERGE in. |
4840
+ | payload | <code>Object</code> | The payload for the MERGE-request. |
4996
4841
 
4997
4842
  **Example**
4998
4843
  ```js
4999
- let res = await service.odata.merge(service, "A_PurchaseOrderScheduleLine", {
5000
- "PurchasingDocument": "4500007108",
5001
- "PurchasingDocumentItem": "10",
5002
- "ScheduleLine": "1",
5003
- "ScheduleLineDeliveryDate": new Date()
5004
- };
5005
- let res = await service.odata.get(service, "A_PurchaseOrder", keys);
4844
+ let res = await service.odata.merge(srv, "A_PurchaseOrderScheduleLine", {
5006
4845
  "PurchasingDocument": "4500007108",
5007
4846
  "PurchasingDocumentItem": "10",
5008
4847
  "ScheduleLine": "1",
5009
4848
  "ScheduleLineDeliveryDate": new Date()
5010
4849
  ```
5011
4850
  <a name="service.odata.delete"></a>
5012
4851
 
5013
- #### odata.delete(service, entitySet, options)
4852
+ #### odata.delete(srv, entitySet, options)
5014
4853
  makes a DELETE request.
5015
4854
 
5016
4855
  **Kind**: static method of [<code>odata</code>](#service.odata)
5017
4856
 
5018
4857
  | Param | Type | Description |
5019
4858
  | --- | --- | --- |
5020
- | service | [<code>service</code>](#service) | Instance of the service |
5021
- | entitySet | <code>entitySet</code> | The entitySet you want to DELETE. |
5022
- | options | <code>options</code> | The options for the DELETE-request. |
4859
+ | srv | <code>Object</code> | Instance of the service |
4860
+ | entitySet | <code>String</code> | The entitySet you want to DELETE. |
4861
+ | options | <code>Object</code> | The options for the DELETE-request. |
5023
4862
 
5024
4863
  **Example**
5025
4864
  ```js
5026
- let options = {
5027
- "PurchaseOrder": "",
5028
- "DraftUUID": draftUUID,
5029
- "IsActiveEntity": false
5030
- };
5031
- await service.odata.delete(service, "C_PurchaseOrderTP", options);
4865
+ let options = {
5032
4866
  "PurchaseOrder": "",
5033
4867
  "DraftUUID": draftUUID,
5034
4868
  "IsActiveEntity": false
5035
4869
  ```
5036
4870
  <a name="service.odata.callFunctionImport"></a>
5037
4871
 
5038
- #### odata.callFunctionImport(service, functionImportName, options)
4872
+ #### odata.callFunctionImport(srv, functionImportName, options)
5039
4873
  makes a function import request on an OData service.
5040
4874
 
5041
4875
  **Kind**: static method of [<code>odata</code>](#service.odata)
5042
4876
 
5043
4877
  | Param | Type | Description |
5044
4878
  | --- | --- | --- |
5045
- | service | [<code>service</code>](#service) | Instance of the service |
5046
- | functionImportName | <code>entitySet</code> | Name of Function Import |
5047
- | options | <code>options</code> | parameters for function import |
4879
+ | srv | <code>Object</code> | Instance of the service |
4880
+ | functionImportName | <code>String</code> | Name of Function Import |
4881
+ | options | <code>Object</code> | parameters for function import |
5048
4882
 
5049
4883
  **Example**
5050
4884
  ```js
5051
- const options = {
5052
- CentralRequestForQuotation : "7500000026",
5053
- Supplier : "100006"
5054
- };
5055
- const res = await service.odata.callFunctionImport(service, functionImportName, options);
4885
+ const options = {
5056
4886
  CentralRequestForQuotation : "7500000026",
5057
4887
  Supplier : "100006"
5058
4888
  ```
5059
4889
  <a name="service.odata.getOutputManagementPdfStream"></a>
5060
4890
 
5061
- #### odata.getOutputManagementPdfStream(outputConf, url)
4891
+ #### odata.getOutputManagementPdfStream(outputConf, url, username, password)
5062
4892
  returns a stream of output management pdf file.
5063
4893
 
5064
4894
  **Kind**: static method of [<code>odata</code>](#service.odata)
5065
4895
 
5066
4896
  | Param | Type | Description |
5067
4897
  | --- | --- | --- |
5068
- | outputConf | <code>outputConf</code> | Configuration for the output management pdf. |
5069
- | url | <code>url</code> | system url |
5070
- | | <code>username</code> | username for login |
5071
- | | <code>password</code> | password for login |
4898
+ | outputConf | <code>Object</code> | Configuration for the output management pdf. |
4899
+ | url | <code>String</code> | system url |
4900
+ | username | <code>String</code> | username for login |
4901
+ | password | <code>String</code> | password for login |
5072
4902
 
5073
4903
  **Example**
5074
4904
  ```js
5075
- const outputConf = {
5076
- ApplObjectType: "REQUEST_FOR_QUOTATION",
5077
- ApplObjectId: "7000002653",
5078
- ItemId: "1"
5079
- };
5080
- const pdfStream = await service.odata.getOutputManagementPdfStream(outputConf, url, user, password);
4905
+ const outputConf =
5081
4906
  ApplObjectType: "REQUEST_FOR_QUOTATION",
5082
4907
  ApplObjectId: "7000002653",
5083
4908
  ItemId: "1"
5084
4909
  ```
5085
4910
  <a name="service.odata.readPdfFromDirectUrl"></a>
5086
4911
 
5087
- #### odata.readPdfFromDirectUrl(url)
4912
+ #### odata.readPdfFromDirectUrl(url, [username], [password], [isSaml])
5088
4913
  returns a stream of pdf file which is part of attachment.
5089
4914
 
5090
4915
  **Kind**: static method of [<code>odata</code>](#service.odata)
5091
4916
 
5092
- | Param | Type | Description |
5093
- | --- | --- | --- |
5094
- | url | <code>url</code> | system url |
5095
- | | <code>username</code> | [OPTIONAL] username for login |
5096
- | | <code>password</code> | [OPTIONAL] password for login |
4917
+ | Param | Type | Default | Description |
4918
+ | --- | --- | --- | --- |
4919
+ | url | <code>String</code> | | system url |
4920
+ | [username] | <code>String</code> | | username for login |
4921
+ | [password] | <code>String</code> | | password for login |
4922
+ | [isSaml] | <code>Boolean</code> | <code>false</code> | use SAML login if true |
5097
4923
 
5098
4924
  **Example**
5099
4925
  ```js
5100
- const url = "https://domain.com/getPdfFile";
5101
- const pdfStream = await service.odata.readPdfFromDirectUrl(url, "username", "Password");
4926
+ const url = "https://domain.com/getPdfFile";
5102
4927
  ```
5103
4928
  <a name="service.rest"></a>
5104
4929
 
@@ -5109,13 +4934,12 @@ Returns an axios instance for custom axios handling.
5109
4934
 
5110
4935
  **Example**
5111
4936
  ```js
5112
- const customConfig = {
5113
- baseURL: 'https://some-domain.com/api/',
5114
- timeout: 1000,
5115
- headers: {
5116
- 'X-Custom-Header': 'foobar'
5117
- }
5118
- const axios = service.rest.init(customConfig);
4937
+ const customConfig = {
4938
+ baseURL: 'https://some-domain.com/api/',
4939
+ timeout: 1000,
4940
+ headers: {
4941
+ 'X-Custom-Header': 'foobar'
4942
+ }
5119
4943
  ```
5120
4944
  <a name="service.rest.get"></a>
5121
4945
 
@@ -5132,8 +4956,7 @@ makes a GET request.
5132
4956
 
5133
4957
  **Example**
5134
4958
  ```js
5135
- const uri = https://api.predic8.de/shop/products/";
5136
- let res = await service.rest.get(uri);
4959
+ const uri = https://api.predic8.de/shop/products/";
5137
4960
  ```
5138
4961
  <a name="service.rest.post"></a>
5139
4962