@eclipse-che/che-e2e 7.58.1-dev-7636b8b → 7.58.1-dev-43d35ee

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 (277) hide show
  1. package/TestConstants.ts +6 -1
  2. package/build/dockerfiles/Dockerfile +4 -3
  3. package/driver/CheReporter.ts +4 -25
  4. package/index.ts +1 -0
  5. package/inversify.config.ts +2 -0
  6. package/inversify.types.ts +1 -0
  7. package/mocha-all-devfiles-che-code.json +12 -0
  8. package/mocha-all-devfiles-theia.json +13 -10
  9. package/mocha-all-factories-che-code.json +14 -0
  10. package/mocha-all-factories-theia.json +14 -11
  11. package/mocha-all-plugins-che-code.json +13 -0
  12. package/mocha-all-plugins-theia.json +13 -10
  13. package/mocha-che-code.json +12 -0
  14. package/mocha-connector-theia.json +10 -7
  15. package/mocha-devworkspace-happy-path-che-code.json +13 -0
  16. package/mocha-devworkspace-happy-path-theia.json +12 -9
  17. package/mocha-factory-che-code.json +13 -0
  18. package/mocha-factory-theia.json +12 -9
  19. package/mocha-git-publish-branch-theia.json +12 -9
  20. package/mocha-git-self-sign-cert-theia.json +12 -9
  21. package/mocha-git-ssh-theia.json +12 -9
  22. package/mocha-happy-path-che-code.json +14 -0
  23. package/mocha-happy-path-theia.json +13 -10
  24. package/mocha-java-maven.json +11 -7
  25. package/mocha-java-springboot-che-code.json +12 -0
  26. package/mocha-java-springboot-theia.json +11 -7
  27. package/mocha-java-vertx-che-code.json +12 -0
  28. package/mocha-java-vertx-theia.json +11 -7
  29. package/mocha-load-theia.json +10 -7
  30. package/mocha-scala.json +11 -7
  31. package/mocha-single-devfile.json +9 -6
  32. package/mocha-theia.json +10 -6
  33. package/mocha-ws-creation-and-ls-theia.json +10 -7
  34. package/mocha.intelij.json +11 -7
  35. package/mocha.ocp.link.json +9 -6
  36. package/mocha.single.plugin.json +6 -5
  37. package/package.json +13 -13
  38. package/pageobjects/dashboard/Workspaces.ts +10 -4
  39. package/pageobjects/ide/theia/Ide.ts +1 -1
  40. package/pageobjects/ide/theia/OpenEditors.ts +1 -1
  41. package/tests/MochaHooks.ts +47 -0
  42. package/tests/devfiles/che-code/EmptyWorkspace.spec.ts +14 -24
  43. package/tests/devfiles/theia/DotNetCore.spec.ts +1 -1
  44. package/tests/e2e/theia/FactoryUrl.spec.ts +1 -1
  45. package/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.ts +1 -1
  46. package/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.ts +1 -1
  47. package/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.ts +1 -1
  48. package/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.ts +1 -1
  49. package/testsLibrary/che-code/ProjectAndFileTestsCheCode.ts +34 -0
  50. package/testsLibrary/theia/LanguageServerTestsTheia.ts +2 -2
  51. package/testsLibrary/theia/ProjectAndFileTestsTheia.ts +2 -2
  52. package/tslint.json +15 -12
  53. package/utils/VCS/github/GitHubUtil.ts +2 -2
  54. package/utils/workspace/ApiUrlResolver.ts +1 -1
  55. package/utils/workspace/ITestWorkspaceUtil.ts +12 -12
  56. package/dist/TestConstants.js +0 -240
  57. package/dist/TestConstants.js.map +0 -1
  58. package/dist/TimeoutConstants.js +0 -184
  59. package/dist/TimeoutConstants.js.map +0 -1
  60. package/dist/driver/CheReporter.js +0 -191
  61. package/dist/driver/CheReporter.js.map +0 -1
  62. package/dist/driver/ChromeDriver.js +0 -77
  63. package/dist/driver/ChromeDriver.js.map +0 -1
  64. package/dist/driver/IDriver.js +0 -3
  65. package/dist/driver/IDriver.js.map +0 -1
  66. package/dist/index.js +0 -93
  67. package/dist/index.js.map +0 -1
  68. package/dist/inversify.config.js +0 -130
  69. package/dist/inversify.config.js.map +0 -1
  70. package/dist/inversify.types.js +0 -74
  71. package/dist/inversify.types.js.map +0 -1
  72. package/dist/pageobjects/dashboard/CreateWorkspace.js +0 -106
  73. package/dist/pageobjects/dashboard/CreateWorkspace.js.map +0 -1
  74. package/dist/pageobjects/dashboard/Dashboard.js +0 -115
  75. package/dist/pageobjects/dashboard/Dashboard.js.map +0 -1
  76. package/dist/pageobjects/dashboard/Workspaces.js +0 -157
  77. package/dist/pageobjects/dashboard/Workspaces.js.map +0 -1
  78. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js +0 -138
  79. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetails.js.map +0 -1
  80. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js +0 -97
  81. package/dist/pageobjects/dashboard/workspace-details/WorkspaceDetailsPlugins.js.map +0 -1
  82. package/dist/pageobjects/ide/theia/ContextMenu.js +0 -66
  83. package/dist/pageobjects/ide/theia/ContextMenu.js.map +0 -1
  84. package/dist/pageobjects/ide/theia/DebugView.js +0 -98
  85. package/dist/pageobjects/ide/theia/DebugView.js.map +0 -1
  86. package/dist/pageobjects/ide/theia/DialogWindow.js +0 -102
  87. package/dist/pageobjects/ide/theia/DialogWindow.js.map +0 -1
  88. package/dist/pageobjects/ide/theia/Editor.js +0 -463
  89. package/dist/pageobjects/ide/theia/Editor.js.map +0 -1
  90. package/dist/pageobjects/ide/theia/Ide.js +0 -336
  91. package/dist/pageobjects/ide/theia/Ide.js.map +0 -1
  92. package/dist/pageobjects/ide/theia/LeftToolBar.js +0 -81
  93. package/dist/pageobjects/ide/theia/LeftToolBar.js.map +0 -1
  94. package/dist/pageobjects/ide/theia/NavigationBar.js +0 -57
  95. package/dist/pageobjects/ide/theia/NavigationBar.js.map +0 -1
  96. package/dist/pageobjects/ide/theia/NotificationCenter.js +0 -76
  97. package/dist/pageobjects/ide/theia/NotificationCenter.js.map +0 -1
  98. package/dist/pageobjects/ide/theia/OpenDialogWidget.js +0 -100
  99. package/dist/pageobjects/ide/theia/OpenDialogWidget.js.map +0 -1
  100. package/dist/pageobjects/ide/theia/OpenEditors.js +0 -73
  101. package/dist/pageobjects/ide/theia/OpenEditors.js.map +0 -1
  102. package/dist/pageobjects/ide/theia/OpenWorkspaceWidget.js +0 -62
  103. package/dist/pageobjects/ide/theia/OpenWorkspaceWidget.js.map +0 -1
  104. package/dist/pageobjects/ide/theia/PreviewWidget.js +0 -134
  105. package/dist/pageobjects/ide/theia/PreviewWidget.js.map +0 -1
  106. package/dist/pageobjects/ide/theia/ProjectTree.js +0 -282
  107. package/dist/pageobjects/ide/theia/ProjectTree.js.map +0 -1
  108. package/dist/pageobjects/ide/theia/QuickOpenContainer.js +0 -70
  109. package/dist/pageobjects/ide/theia/QuickOpenContainer.js.map +0 -1
  110. package/dist/pageobjects/ide/theia/RightToolBar.js +0 -51
  111. package/dist/pageobjects/ide/theia/RightToolBar.js.map +0 -1
  112. package/dist/pageobjects/ide/theia/Terminal.js +0 -184
  113. package/dist/pageobjects/ide/theia/Terminal.js.map +0 -1
  114. package/dist/pageobjects/ide/theia/TopMenu.js +0 -109
  115. package/dist/pageobjects/ide/theia/TopMenu.js.map +0 -1
  116. package/dist/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.js +0 -128
  117. package/dist/pageobjects/ide/theia/plugins/GitHubPullRequestPlugin.js.map +0 -1
  118. package/dist/pageobjects/ide/theia/plugins/GitPlugin.js +0 -120
  119. package/dist/pageobjects/ide/theia/plugins/GitPlugin.js.map +0 -1
  120. package/dist/pageobjects/ide/theia/plugins/KubernetesPlugin.js +0 -107
  121. package/dist/pageobjects/ide/theia/plugins/KubernetesPlugin.js.map +0 -1
  122. package/dist/pageobjects/ide/theia/plugins/OpenshiftPlugin.js +0 -99
  123. package/dist/pageobjects/ide/theia/plugins/OpenshiftPlugin.js.map +0 -1
  124. package/dist/pageobjects/ide/theia/plugins/PluginsView.js +0 -166
  125. package/dist/pageobjects/ide/theia/plugins/PluginsView.js.map +0 -1
  126. package/dist/pageobjects/login/ICheLoginPage.js +0 -12
  127. package/dist/pageobjects/login/ICheLoginPage.js.map +0 -1
  128. package/dist/pageobjects/login/IOcpLoginPage.js +0 -12
  129. package/dist/pageobjects/login/IOcpLoginPage.js.map +0 -1
  130. package/dist/pageobjects/login/MultiUserLoginPage.js +0 -49
  131. package/dist/pageobjects/login/MultiUserLoginPage.js.map +0 -1
  132. package/dist/pageobjects/login/OcpUserLoginPage.js +0 -53
  133. package/dist/pageobjects/login/OcpUserLoginPage.js.map +0 -1
  134. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js +0 -86
  135. package/dist/pageobjects/login/RegularUserOcpCheLoginPage.js.map +0 -1
  136. package/dist/pageobjects/login/UpdateAccountInformationPage.js +0 -74
  137. package/dist/pageobjects/login/UpdateAccountInformationPage.js.map +0 -1
  138. package/dist/pageobjects/openshift/CheLoginPage.js +0 -88
  139. package/dist/pageobjects/openshift/CheLoginPage.js.map +0 -1
  140. package/dist/pageobjects/openshift/OcpLoginPage.js +0 -106
  141. package/dist/pageobjects/openshift/OcpLoginPage.js.map +0 -1
  142. package/dist/pageobjects/third-parties/GitLoginPage.js +0 -85
  143. package/dist/pageobjects/third-parties/GitLoginPage.js.map +0 -1
  144. package/dist/pageobjects/third-parties/GitOauthAppsSettings.js +0 -110
  145. package/dist/pageobjects/third-parties/GitOauthAppsSettings.js.map +0 -1
  146. package/dist/tests/devfiles/che-code/EmptyWorkspace.spec.js +0 -61
  147. package/dist/tests/devfiles/che-code/EmptyWorkspace.spec.js.map +0 -1
  148. package/dist/tests/devfiles/theia/CSlashCPlusPlus.spec.js +0 -73
  149. package/dist/tests/devfiles/theia/CSlashCPlusPlus.spec.js.map +0 -1
  150. package/dist/tests/devfiles/theia/DevfileSmoke.spec.js +0 -47
  151. package/dist/tests/devfiles/theia/DevfileSmoke.spec.js.map +0 -1
  152. package/dist/tests/devfiles/theia/DotNetCore.spec.js +0 -81
  153. package/dist/tests/devfiles/theia/DotNetCore.spec.js.map +0 -1
  154. package/dist/tests/devfiles/theia/Go.spec.js +0 -72
  155. package/dist/tests/devfiles/theia/Go.spec.js.map +0 -1
  156. package/dist/tests/devfiles/theia/JavaMaven.spec.js +0 -60
  157. package/dist/tests/devfiles/theia/JavaMaven.spec.js.map +0 -1
  158. package/dist/tests/devfiles/theia/JavaSpringBoot.spec.js +0 -66
  159. package/dist/tests/devfiles/theia/JavaSpringBoot.spec.js.map +0 -1
  160. package/dist/tests/devfiles/theia/JavaVertx.spec.js +0 -60
  161. package/dist/tests/devfiles/theia/JavaVertx.spec.js.map +0 -1
  162. package/dist/tests/devfiles/theia/NodeJS.spec.js +0 -64
  163. package/dist/tests/devfiles/theia/NodeJS.spec.js.map +0 -1
  164. package/dist/tests/devfiles/theia/PHPSimple.spec.js +0 -74
  165. package/dist/tests/devfiles/theia/PHPSimple.spec.js.map +0 -1
  166. package/dist/tests/devfiles/theia/Python.spec.js +0 -58
  167. package/dist/tests/devfiles/theia/Python.spec.js.map +0 -1
  168. package/dist/tests/devfiles/theia/PythonDjango.spec.js +0 -61
  169. package/dist/tests/devfiles/theia/PythonDjango.spec.js.map +0 -1
  170. package/dist/tests/devfiles/theia/Quarkus.spec.js +0 -69
  171. package/dist/tests/devfiles/theia/Quarkus.spec.js.map +0 -1
  172. package/dist/tests/devfiles/theia/Scala.spec.js +0 -66
  173. package/dist/tests/devfiles/theia/Scala.spec.js.map +0 -1
  174. package/dist/tests/e2e/theia/FactoryUrl.spec.js +0 -40
  175. package/dist/tests/e2e/theia/FactoryUrl.spec.js.map +0 -1
  176. package/dist/tests/e2e/theia/GitPublishBranch.spec.js +0 -90
  177. package/dist/tests/e2e/theia/GitPublishBranch.spec.js.map +0 -1
  178. package/dist/tests/e2e/theia/GitSelfSignCert.spec.js +0 -90
  179. package/dist/tests/e2e/theia/GitSelfSignCert.spec.js.map +0 -1
  180. package/dist/tests/e2e/theia/GitSsh.spec.js +0 -120
  181. package/dist/tests/e2e/theia/GitSsh.spec.js.map +0 -1
  182. package/dist/tests/e2e/theia/OpenshiftConnector.spec.js +0 -124
  183. package/dist/tests/e2e/theia/OpenshiftConnector.spec.js.map +0 -1
  184. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.js +0 -50
  185. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithKeepDirectoryTest.spec.js.map +0 -1
  186. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.js +0 -48
  187. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithRootFolderTest.spec.js.map +0 -1
  188. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js +0 -48
  189. package/dist/tests/e2e/theia/factories/DirectUrlFactoryWithSpecificBranchTest.spec.js.map +0 -1
  190. package/dist/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.js +0 -277
  191. package/dist/tests/e2e_happy_path/theia/DevWorkspaceHappyPath.spec.js.map +0 -1
  192. package/dist/tests/e2e_happy_path/theia/HappyPath.spec.js +0 -314
  193. package/dist/tests/e2e_happy_path/theia/HappyPath.spec.js.map +0 -1
  194. package/dist/tests/intelij/IntelijOpenWorkspace.spec.js +0 -39
  195. package/dist/tests/intelij/IntelijOpenWorkspace.spec.js.map +0 -1
  196. package/dist/tests/load_test/theia/LoadTest.spec.js +0 -41
  197. package/dist/tests/load_test/theia/LoadTest.spec.js.map +0 -1
  198. package/dist/tests/login/LinkCheAndOcpUsers.spec.js +0 -39
  199. package/dist/tests/login/LinkCheAndOcpUsers.spec.js.map +0 -1
  200. package/dist/tests/login/Login.spec.js +0 -28
  201. package/dist/tests/login/Login.spec.js.map +0 -1
  202. package/dist/tests/plugins/theia/GitHubPullRequestPlugin.spec.js +0 -117
  203. package/dist/tests/plugins/theia/GitHubPullRequestPlugin.spec.js.map +0 -1
  204. package/dist/tests/plugins/theia/InstallPluginUsingUI.spec.js +0 -62
  205. package/dist/tests/plugins/theia/InstallPluginUsingUI.spec.js.map +0 -1
  206. package/dist/tests/plugins/theia/JavaPlugin.spec.js +0 -82
  207. package/dist/tests/plugins/theia/JavaPlugin.spec.js.map +0 -1
  208. package/dist/tests/plugins/theia/PhpPlugin.spec.js +0 -96
  209. package/dist/tests/plugins/theia/PhpPlugin.spec.js.map +0 -1
  210. package/dist/tests/plugins/theia/PythonPlugin.spec.js +0 -72
  211. package/dist/tests/plugins/theia/PythonPlugin.spec.js.map +0 -1
  212. package/dist/tests/plugins/theia/TypescriptPlugin.spec.js +0 -135
  213. package/dist/tests/plugins/theia/TypescriptPlugin.spec.js.map +0 -1
  214. package/dist/tests/plugins/theia/VscodeKubernetesPlugin.spec.js +0 -69
  215. package/dist/tests/plugins/theia/VscodeKubernetesPlugin.spec.js.map +0 -1
  216. package/dist/tests/plugins/theia/VscodeShellcheckPlugin.spec.js +0 -82
  217. package/dist/tests/plugins/theia/VscodeShellcheckPlugin.spec.js.map +0 -1
  218. package/dist/tests/plugins/theia/VscodeValePlugin.spec.js +0 -70
  219. package/dist/tests/plugins/theia/VscodeValePlugin.spec.js.map +0 -1
  220. package/dist/tests/plugins/theia/VscodeXmlPlugin.spec.js +0 -81
  221. package/dist/tests/plugins/theia/VscodeXmlPlugin.spec.js.map +0 -1
  222. package/dist/tests/plugins/theia/VscodeYamlPlugin.spec.js +0 -78
  223. package/dist/tests/plugins/theia/VscodeYamlPlugin.spec.js.map +0 -1
  224. package/dist/testsLibrary/WorkspaceHandlingTests.js +0 -140
  225. package/dist/testsLibrary/WorkspaceHandlingTests.js.map +0 -1
  226. package/dist/testsLibrary/theia/CodeExecutionTestsTheia.js +0 -248
  227. package/dist/testsLibrary/theia/CodeExecutionTestsTheia.js.map +0 -1
  228. package/dist/testsLibrary/theia/LanguageServerTestsTheia.js +0 -230
  229. package/dist/testsLibrary/theia/LanguageServerTestsTheia.js.map +0 -1
  230. package/dist/testsLibrary/theia/ProjectAndFileTestsTheia.js +0 -133
  231. package/dist/testsLibrary/theia/ProjectAndFileTestsTheia.js.map +0 -1
  232. package/dist/utils/AnimationChecker.js +0 -45
  233. package/dist/utils/AnimationChecker.js.map +0 -1
  234. package/dist/utils/BrowserTabsUtil.js +0 -115
  235. package/dist/utils/BrowserTabsUtil.js.map +0 -1
  236. package/dist/utils/DriverHelper.js +0 -616
  237. package/dist/utils/DriverHelper.js.map +0 -1
  238. package/dist/utils/Logger.js +0 -84
  239. package/dist/utils/Logger.js.map +0 -1
  240. package/dist/utils/Sanitizer.js +0 -29
  241. package/dist/utils/Sanitizer.js.map +0 -1
  242. package/dist/utils/ScreenCatcher.js +0 -107
  243. package/dist/utils/ScreenCatcher.js.map +0 -1
  244. package/dist/utils/VCS/CheGitApi.js +0 -42
  245. package/dist/utils/VCS/CheGitApi.js.map +0 -1
  246. package/dist/utils/VCS/github/GitHubUtil.js +0 -126
  247. package/dist/utils/VCS/github/GitHubUtil.js.map +0 -1
  248. package/dist/utils/WorkspaceNameHandler.js +0 -60
  249. package/dist/utils/WorkspaceNameHandler.js.map +0 -1
  250. package/dist/utils/requestHandlers/CheApiRequestHandler.js +0 -126
  251. package/dist/utils/requestHandlers/CheApiRequestHandler.js.map +0 -1
  252. package/dist/utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler.js +0 -49
  253. package/dist/utils/requestHandlers/headers/CheMultiuserAuthorizationHeaderHandler.js.map +0 -1
  254. package/dist/utils/requestHandlers/headers/IAuthorizationHeaderHandler.js +0 -12
  255. package/dist/utils/requestHandlers/headers/IAuthorizationHeaderHandler.js.map +0 -1
  256. package/dist/utils/requestHandlers/tokens/CheMultiuserTokenHandler.js +0 -50
  257. package/dist/utils/requestHandlers/tokens/CheMultiuserTokenHandler.js.map +0 -1
  258. package/dist/utils/requestHandlers/tokens/ITokenHandler.js +0 -12
  259. package/dist/utils/requestHandlers/tokens/ITokenHandler.js.map +0 -1
  260. package/dist/utils/theia/PreferencesHandlerTheia.js +0 -142
  261. package/dist/utils/theia/PreferencesHandlerTheia.js.map +0 -1
  262. package/dist/utils/workspace/ApiUrlResolver.js +0 -67
  263. package/dist/utils/workspace/ApiUrlResolver.js.map +0 -1
  264. package/dist/utils/workspace/ITestWorkspaceUtil.js +0 -12
  265. package/dist/utils/workspace/ITestWorkspaceUtil.js.map +0 -1
  266. package/dist/utils/workspace/TestWorkspaceUtil.js +0 -357
  267. package/dist/utils/workspace/TestWorkspaceUtil.js.map +0 -1
  268. package/dist/utils/workspace/WorkspaceStatus.js +0 -19
  269. package/dist/utils/workspace/WorkspaceStatus.js.map +0 -1
  270. package/mocha-all-factories-code.json +0 -11
  271. package/mocha-all-plugins-code.json +0 -10
  272. package/mocha-code.json +0 -8
  273. package/mocha-devworkspace-happy-path-code.json +0 -10
  274. package/mocha-factory-code.json +0 -10
  275. package/mocha-happy-path-code.json +0 -11
  276. package/mocha-java-springboot-code.json +0 -9
  277. package/mocha-java-vertx-code.json +0 -9
@@ -1,616 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DriverHelper = void 0;
16
- const inversify_1 = require("inversify");
17
- const inversify_types_1 = require("../inversify.types");
18
- const selenium_webdriver_1 = require("selenium-webdriver");
19
- require("reflect-metadata");
20
- const selenium_webdriver_2 = require("selenium-webdriver");
21
- const TestConstants_1 = require("../TestConstants");
22
- const Logger_1 = require("./Logger");
23
- const TimeoutConstants_1 = require("../TimeoutConstants");
24
- let DriverHelper = class DriverHelper {
25
- constructor(driver) {
26
- this.driver = driver.get();
27
- }
28
- getAction() {
29
- Logger_1.Logger.trace('DriverHelper.getAction');
30
- return this.driver.actions();
31
- }
32
- /**
33
- * @deprecated Method deprecated. Use the next method instead.
34
- * @see BrowserTabsUtil.maximize()
35
- */
36
- async maximize() {
37
- Logger_1.Logger.trace(`DriverHelper.maximize`);
38
- await this.driver.manage().window().maximize();
39
- }
40
- async isVisible(locator) {
41
- Logger_1.Logger.trace(`DriverHelper.isVisible ${locator}`);
42
- try {
43
- const element = await this.driver.findElement(locator);
44
- const isVisible = await element.isDisplayed();
45
- return isVisible;
46
- }
47
- catch (_a) {
48
- return false;
49
- }
50
- }
51
- async wait(milliseconds) {
52
- Logger_1.Logger.trace(`DriverHelper.wait (${milliseconds} milliseconds)`);
53
- await this.driver.sleep(milliseconds);
54
- }
55
- async waitVisibilityBoolean(locator, attempts = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_ATTEMPTS, polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING) {
56
- Logger_1.Logger.trace(`DriverHelper.waitVisibilityBoolean ${locator}`);
57
- for (let i = 0; i < attempts; i++) {
58
- const isVisible = await this.isVisible(locator);
59
- if (isVisible) {
60
- return true;
61
- }
62
- await this.wait(polling);
63
- }
64
- return false;
65
- }
66
- async waitDisappearanceBoolean(locator, attempts = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_ATTEMPTS, polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING) {
67
- Logger_1.Logger.trace(`DriverHelper.waitDisappearanceBoolean ${locator}`);
68
- for (let i = 0; i < attempts; i++) {
69
- const isVisible = await this.isVisible(locator);
70
- if (!isVisible) {
71
- return true;
72
- }
73
- await this.wait(polling);
74
- }
75
- return false;
76
- }
77
- async waitVisibility(elementLocator, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
78
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
79
- const attempts = Math.ceil(timeout / polling);
80
- Logger_1.Logger.trace(`DriverHelper.waitVisibility ${elementLocator}`);
81
- for (let i = 0; i < attempts; i++) {
82
- let element;
83
- try {
84
- element = await this.driver.wait(selenium_webdriver_2.until.elementLocated(elementLocator), polling);
85
- }
86
- catch (err) {
87
- if (i >= attempts - 1) {
88
- Logger_1.Logger.error(`DriverHelper.waitVisibility - failed with exception, out of attempts - ${err}`);
89
- throw err;
90
- }
91
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
92
- if (attempts !== 1) { // waitVisibility was spamming other methods when the number of attempts was 1 - only show message if attempts > 1
93
- Logger_1.Logger.trace(`DriverHelper.waitVisibility - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
94
- }
95
- continue;
96
- }
97
- if (err instanceof selenium_webdriver_1.error.NoSuchWindowError) { // sometimes waitVisibility fails with NoSuchWindowError when the check is run too soon before the page loads
98
- Logger_1.Logger.trace(`DriverHelper.waitVisibility - failed with NoSuchWindow exception. Attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
99
- continue;
100
- }
101
- Logger_1.Logger.error(`DriverHelper.waitVisibility - failed with an unexpected exception - ${err}`);
102
- throw err;
103
- }
104
- try {
105
- const visibleWebElement = await this.driver.wait(selenium_webdriver_2.until.elementIsVisible(element), polling);
106
- Logger_1.Logger.trace('DriverHelper.waitVisibility - Element is located and is visible.');
107
- return visibleWebElement;
108
- }
109
- catch (err) {
110
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
111
- if (attempts !== 1) { // waitVisibility was spamming other methods when the number of attempts was 1 - only show message if attempts > 1
112
- Logger_1.Logger.trace(`DriverHelper.waitVisibility - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
113
- }
114
- continue;
115
- }
116
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
117
- Logger_1.Logger.debug(`DriverHelper.waitVisibility - Stale element error - ${err}`);
118
- await this.wait(polling);
119
- continue;
120
- }
121
- Logger_1.Logger.error(`DriverHelper.waitVisibility - failed with an unexpected exception - ${err}`);
122
- throw err;
123
- }
124
- }
125
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum visibility checkings attempts for '${elementLocator}' element, timeouted after ${timeout}`);
126
- }
127
- async waitPresence(elementLocator, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
128
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
129
- const attempts = Math.ceil(timeout / polling);
130
- Logger_1.Logger.trace(`DriverHelper.waitPresence ${elementLocator}`);
131
- for (let i = 0; i < attempts; i++) {
132
- try {
133
- const webElement = await this.driver.wait(selenium_webdriver_2.until.elementLocated(elementLocator), polling);
134
- return webElement;
135
- }
136
- catch (err) {
137
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
138
- Logger_1.Logger.trace(`DriverHelper.waitPresence - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
139
- continue;
140
- }
141
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
142
- await this.wait(polling);
143
- continue;
144
- }
145
- Logger_1.Logger.error(`DriverHelper.waitPresence - failed with an unexpected exception - ${err}`);
146
- throw err;
147
- }
148
- }
149
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum presence checkings attempts, problems with 'StaleElementReferenceError' of '${elementLocator}' element`);
150
- }
151
- async waitAllPresence(elementLocator, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
152
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
153
- const attempts = Math.ceil(timeout / polling);
154
- Logger_1.Logger.trace(`DriverHelper.waitAllPresence ${elementLocator}`);
155
- for (let i = 0; i < attempts; i++) {
156
- try {
157
- const webElements = await this.driver.wait(selenium_webdriver_2.until.elementsLocated(elementLocator), polling);
158
- return webElements;
159
- }
160
- catch (err) {
161
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
162
- Logger_1.Logger.trace(`DriverHelper.waitAllPresence - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
163
- continue;
164
- }
165
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
166
- await this.wait(polling);
167
- continue;
168
- }
169
- Logger_1.Logger.error(`DriverHelper.waitAllPresence - failed with an unexpected exception - ${err}`);
170
- throw err;
171
- }
172
- }
173
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum presence checkings attempts, problems with 'StaleElementReferenceError' of '${elementLocator}' element`);
174
- }
175
- async waitAllVisibility(locators, timeout) {
176
- Logger_1.Logger.trace(`DriverHelper.waitAllVisibility ${locators}`);
177
- for (const elementLocator of locators) {
178
- await this.waitVisibility(elementLocator, timeout);
179
- }
180
- }
181
- async waitDisappearance(elementLocator, attempts = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_ATTEMPTS, polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING) {
182
- Logger_1.Logger.trace(`DriverHelper.waitDisappearance ${elementLocator}`);
183
- const isDisappeared = await this.waitDisappearanceBoolean(elementLocator, attempts, polling);
184
- if (!isDisappeared) {
185
- throw new selenium_webdriver_1.error.TimeoutError(`Waiting attempts exceeded, element '${elementLocator}' is still visible`);
186
- }
187
- }
188
- async waitDisappearanceWithTimeout(elementLocator, timeout) {
189
- Logger_1.Logger.trace(`DriverHelper.waitDisappearanceWithTimeout ${elementLocator}`);
190
- await this.getDriver().wait(async () => {
191
- const isVisible = await this.isVisible(elementLocator);
192
- if (!isVisible) {
193
- return true;
194
- }
195
- }, timeout);
196
- }
197
- async waitAllDisappearance(locators, attemptsPerLocator = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_ATTEMPTS, pollingPerLocator = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING) {
198
- Logger_1.Logger.trace(`DriverHelper.waitAllDisappearance ${locators}`);
199
- for (const elementLocator of locators) {
200
- await this.waitDisappearance(elementLocator, attemptsPerLocator, pollingPerLocator);
201
- }
202
- }
203
- async waitAndClick(elementLocator, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
204
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
205
- const attempts = Math.ceil(timeout / polling);
206
- Logger_1.Logger.trace(`DriverHelper.waitAndClick ${elementLocator}`);
207
- for (let i = 0; i < attempts; i++) {
208
- let element;
209
- try {
210
- element = await this.waitVisibility(elementLocator, polling);
211
- }
212
- catch (err) {
213
- if (i >= attempts - 1) {
214
- Logger_1.Logger.error(`DriverHelper.waitAndClick - failed with exception, out of attempts - ${err}`);
215
- throw err;
216
- }
217
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
218
- Logger_1.Logger.trace(`DriverHelper.waitAndClick - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
219
- continue;
220
- }
221
- Logger_1.Logger.error(`DriverHelper.waitAndClick - failed with an unexpected exception - ${err}`);
222
- throw err;
223
- }
224
- try {
225
- await element.click();
226
- return;
227
- }
228
- catch (err) {
229
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
230
- Logger_1.Logger.debug(`DriverHelper.waitAndClik - ${elementLocator} - StaleElementReferenceError - ${err}`);
231
- await this.wait(polling);
232
- continue;
233
- }
234
- Logger_1.Logger.error(`DriverHelper.waitAndClick - failed with an unexpected exception - ${err}`);
235
- throw err;
236
- }
237
- }
238
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum clicking attempts, the '${elementLocator}' element is not clickable`);
239
- }
240
- async waitAndGetElementAttribute(elementLocator, attribute, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
241
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
242
- const attempts = Math.ceil(timeout / polling);
243
- Logger_1.Logger.trace(`DriverHelper.waitAndGetElementAttribute ${elementLocator} attribute: '${attribute}'`);
244
- for (let i = 0; i < attempts; i++) {
245
- let element;
246
- try {
247
- element = await this.waitVisibility(elementLocator, polling);
248
- }
249
- catch (err) {
250
- if (i >= attempts - 1) {
251
- Logger_1.Logger.error(`DriverHelper.waitAndGetElementAttribute - failed with exception, out of attempts - ${err}`);
252
- throw err;
253
- }
254
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
255
- Logger_1.Logger.trace(`DriverHelper.waitAndGetElementAttribute - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
256
- continue;
257
- }
258
- Logger_1.Logger.error(`DriverHelper.waitAndGetElementAttribute - failed with an unexpected exception - ${err}`);
259
- throw err;
260
- }
261
- try {
262
- const attributeValue = await element.getAttribute(attribute);
263
- return attributeValue;
264
- }
265
- catch (err) {
266
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
267
- await this.wait(polling);
268
- continue;
269
- }
270
- Logger_1.Logger.error(`DriverHelper.waitAndGetElementAttribute - failed with an unexpected exception - ${err}`);
271
- throw err;
272
- }
273
- }
274
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum gettin of the '${attribute}' attribute attempts, from the '${elementLocator}' element`);
275
- }
276
- async waitAndGetCssValue(elementLocator, cssAttribute, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
277
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
278
- const attempts = Math.ceil(timeout / polling);
279
- Logger_1.Logger.trace(`DriverHelper.waitAndGetCssValue ${elementLocator} cssAttribute: ${cssAttribute}`);
280
- for (let i = 0; i < attempts; i++) {
281
- let element;
282
- try {
283
- element = await this.waitVisibility(elementLocator, polling);
284
- }
285
- catch (err) {
286
- if (i >= attempts - 1) {
287
- Logger_1.Logger.error(`DriverHelper.waitAndGetCssValue - failed with exception, out of attempts - ${err}`);
288
- throw err;
289
- }
290
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
291
- Logger_1.Logger.trace(`DriverHelper.waitAndGetCssValue - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
292
- continue;
293
- }
294
- Logger_1.Logger.error(`DriverHelper.waitAndGetCssValue - failed with an unexpected exception - ${err}`);
295
- throw err;
296
- }
297
- try {
298
- const cssAttributeValue = await element.getCssValue(cssAttribute);
299
- return cssAttributeValue;
300
- }
301
- catch (err) {
302
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
303
- await this.wait(polling);
304
- continue;
305
- }
306
- Logger_1.Logger.error(`DriverHelper.waitAndGetCssValue - failed with an unexpected exception - ${err}`);
307
- throw err;
308
- }
309
- }
310
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum gettin of the '${cssAttribute}' css attribute attempts, from the '${elementLocator}' element`);
311
- }
312
- async waitAttributeValue(elementLocator, attribute, expectedValue, timeout) {
313
- Logger_1.Logger.trace(`DriverHelper.waitAttributeValue ${elementLocator}`);
314
- await this.driver.wait(async () => {
315
- const attributeValue = await this.waitAndGetElementAttribute(elementLocator, attribute, timeout);
316
- return expectedValue === attributeValue;
317
- }, timeout, `The '${attribute}' attribute value doesn't match with expected value '${expectedValue}'`);
318
- }
319
- async type(elementLocator, text, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
320
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
321
- const attempts = Math.ceil(timeout / polling);
322
- Logger_1.Logger.trace(`DriverHelper.type ${elementLocator} text: ${text}`);
323
- for (let i = 0; i < attempts; i++) {
324
- let element;
325
- try {
326
- element = await this.waitVisibility(elementLocator, polling);
327
- }
328
- catch (err) {
329
- if (i >= attempts - 1) {
330
- Logger_1.Logger.error(`DriverHelper.type - failed with exception, out of attempts - ${err}`);
331
- throw err;
332
- }
333
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
334
- Logger_1.Logger.trace(`DriverHelper.type - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
335
- continue;
336
- }
337
- Logger_1.Logger.error(`DriverHelper.type - failed with an unexpected exception - ${err}`);
338
- throw err;
339
- }
340
- try {
341
- await element.sendKeys(text);
342
- return;
343
- }
344
- catch (err) {
345
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
346
- await this.wait(polling);
347
- continue;
348
- }
349
- Logger_1.Logger.error(`DriverHelper.type - failed with an unexpected exception - ${err}`);
350
- throw err;
351
- }
352
- }
353
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum typing attempts, to the '${elementLocator}' element`);
354
- }
355
- async typeToInvisible(elementLocator, text, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
356
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
357
- const attempts = Math.ceil(timeout / polling);
358
- Logger_1.Logger.trace(`DriverHelper.typeToInvisible ${elementLocator} text: ${text}`);
359
- for (let i = 0; i < attempts; i++) {
360
- let element;
361
- try {
362
- element = await this.waitPresence(elementLocator, polling);
363
- }
364
- catch (err) {
365
- if (i >= attempts - 1) {
366
- Logger_1.Logger.error(`DriverHelper.typeToInvisible - failed with exception, out of attempts - ${err}`);
367
- throw err;
368
- }
369
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
370
- Logger_1.Logger.trace(`DriverHelper.typeToInvisible - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
371
- continue;
372
- }
373
- Logger_1.Logger.error(`DriverHelper.typeToInvisible - failed with an unexpected exception - ${err}`);
374
- throw err;
375
- }
376
- try {
377
- await element.sendKeys(text);
378
- return;
379
- }
380
- catch (err) {
381
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
382
- await this.wait(polling);
383
- continue;
384
- }
385
- Logger_1.Logger.error(`DriverHelper.typeToInvisible - failed with an unexpected exception - ${err}`);
386
- throw err;
387
- }
388
- }
389
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum typing attempts, to the '${elementLocator}' element`);
390
- }
391
- async clear(elementLocator, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
392
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
393
- const attempts = Math.ceil(timeout / polling);
394
- Logger_1.Logger.trace(`DriverHelper.clear ${elementLocator}`);
395
- for (let i = 0; i < attempts; i++) {
396
- let element;
397
- try {
398
- element = await this.waitVisibility(elementLocator, polling);
399
- }
400
- catch (err) {
401
- if (i >= attempts - 1) {
402
- Logger_1.Logger.error(`DriverHelper.clear - failed with exception, out of attempts - ${err}`);
403
- throw err;
404
- }
405
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
406
- Logger_1.Logger.trace(`DriverHelper.clear - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
407
- continue;
408
- }
409
- Logger_1.Logger.error(`DriverHelper.clear - failed with an unexpected exception - ${err}`);
410
- throw err;
411
- }
412
- try {
413
- await element.clear();
414
- return;
415
- }
416
- catch (err) {
417
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
418
- await this.wait(polling);
419
- continue;
420
- }
421
- Logger_1.Logger.error(`DriverHelper.clear - failed with an unexpected exception - ${err}`);
422
- throw err;
423
- }
424
- }
425
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum clearing attempts, to the '${elementLocator}' element`);
426
- }
427
- async clearInvisible(elementLocator, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
428
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
429
- const attempts = Math.ceil(timeout / polling);
430
- Logger_1.Logger.trace(`DriverHelper.clearInvisible ${elementLocator}`);
431
- for (let i = 0; i < attempts; i++) {
432
- let element;
433
- try {
434
- element = await this.waitPresence(elementLocator, polling);
435
- }
436
- catch (err) {
437
- if (i >= attempts - 1) {
438
- Logger_1.Logger.error(`DriverHelper.clearInvisible - failed with exception, out of attempts - ${err}`);
439
- throw err;
440
- }
441
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
442
- Logger_1.Logger.trace(`DriverHelper.clearInvisible - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
443
- continue;
444
- }
445
- Logger_1.Logger.error(`DriverHelper.clearInvisible - failed with an unexpected exception - ${err}`);
446
- throw err;
447
- }
448
- try {
449
- await element.clear();
450
- return;
451
- }
452
- catch (err) {
453
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
454
- await this.wait(polling);
455
- continue;
456
- }
457
- Logger_1.Logger.error(`DriverHelper.clearInvisible - failed with an unexpected exception - ${err}`);
458
- throw err;
459
- }
460
- }
461
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum clearing attempts, to the '${elementLocator}' element`);
462
- }
463
- async enterValue(elementLocator, text, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
464
- Logger_1.Logger.trace(`DriverHelper.enterValue ${elementLocator} text: ${text}`);
465
- await this.waitVisibility(elementLocator, timeout);
466
- await this.clear(elementLocator);
467
- await this.waitAttributeValue(elementLocator, 'value', '', timeout);
468
- await this.type(elementLocator, text, timeout);
469
- await this.waitAttributeValue(elementLocator, 'value', text, timeout);
470
- }
471
- async waitAndSwitchToFrame(iframeLocator, timeout) {
472
- Logger_1.Logger.trace(`DriverHelper.waitAndSwitchToFrame ${iframeLocator}`);
473
- await this.driver.wait(selenium_webdriver_2.until.ableToSwitchToFrame(iframeLocator), timeout);
474
- }
475
- async waitAndGetText(elementLocator, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
476
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
477
- const attempts = Math.ceil(timeout / polling);
478
- Logger_1.Logger.trace(`DriverHelper.waitAndGetText ${elementLocator}`);
479
- for (let i = 0; i < attempts; i++) {
480
- let element;
481
- try {
482
- element = await this.waitVisibility(elementLocator, polling);
483
- }
484
- catch (err) {
485
- if (i >= attempts - 1) {
486
- Logger_1.Logger.error(`DriverHelper.waitAndGetText - failed with exception, out of attempts - ${err}`);
487
- throw err;
488
- }
489
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
490
- Logger_1.Logger.trace(`DriverHelper.waitAndGetText - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
491
- continue;
492
- }
493
- Logger_1.Logger.error(`DriverHelper.waitAndGetText - failed with an unexpected exception - ${err}`);
494
- throw err;
495
- }
496
- try {
497
- const innerText = await element.getText();
498
- return innerText;
499
- }
500
- catch (err) {
501
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
502
- await this.wait(polling);
503
- continue;
504
- }
505
- Logger_1.Logger.error(`DriverHelper.waitAndGetText - failed with an unexpected exception - ${err}`);
506
- throw err;
507
- }
508
- }
509
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum text obtaining attempts, from the '${elementLocator}' element`);
510
- }
511
- async waitAndGetValue(elementLocator, timeout) {
512
- Logger_1.Logger.trace(`DriverHelper.waitAndGetValue ${elementLocator}`);
513
- const elementValue = await this.waitAndGetElementAttribute(elementLocator, 'value', timeout);
514
- return elementValue;
515
- }
516
- async waitUntilTrue(callback, timeout) {
517
- Logger_1.Logger.trace('DriverHelper.waitUntilTrue');
518
- await this.driver.wait(callback, timeout);
519
- }
520
- /**
521
- * @deprecated Method deprecated. Use the next method instead.
522
- * @see BrowserTabsUtil.refreshPage()
523
- */
524
- async reloadPage() {
525
- Logger_1.Logger.debug('DriverHelper.reloadPage');
526
- await this.driver.navigate().refresh();
527
- }
528
- /**
529
- * @deprecated Method deprecated. Use the next method instead.
530
- * @see BrowserTabsUtil.navigateAndWaitToUrl()
531
- */
532
- async navigateAndWaitToUrl(url, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_WAIT_FOR_URL) {
533
- Logger_1.Logger.trace(`DriverHelper.navigateAndWaitToUrl ${url}`);
534
- await this.navigateToUrl(url);
535
- await this.waitURL(url, timeout);
536
- }
537
- /**
538
- * @deprecated Method deprecated. Use the next method instead.
539
- * @see BrowserTabsUtil.navigateTo()
540
- */
541
- async navigateToUrl(url) {
542
- Logger_1.Logger.debug(`DriverHelper.navigateToUrl ${url}`);
543
- await this.driver.navigate().to(url);
544
- }
545
- /**
546
- * @deprecated Method deprecated. Use the next method instead.
547
- * @see BrowserTabsUtil.waitURL()
548
- */
549
- async waitURL(expectedUrl, timeout) {
550
- Logger_1.Logger.trace(`DriverHelper.waitURL ${expectedUrl}`);
551
- await this.getDriver().wait(async () => {
552
- const currentUrl = await this.getDriver().getCurrentUrl();
553
- const urlEquals = currentUrl === expectedUrl;
554
- if (urlEquals) {
555
- return true;
556
- }
557
- }, timeout);
558
- }
559
- async scrollTo(elementLocator, timeout = TimeoutConstants_1.TimeoutConstants.TS_SELENIUM_CLICK_ON_VISIBLE_ITEM) {
560
- const polling = TestConstants_1.TestConstants.TS_SELENIUM_DEFAULT_POLLING;
561
- const attempts = Math.ceil(timeout / polling);
562
- Logger_1.Logger.trace(`DriverHelper.scrollTo ${elementLocator}`);
563
- for (let i = 0; i < attempts; i++) {
564
- let element;
565
- try {
566
- element = await this.waitPresence(elementLocator, polling);
567
- }
568
- catch (err) {
569
- if (i >= attempts - 1) {
570
- Logger_1.Logger.error(`DriverHelper.scrollTo - failed with exception, out of attempts - ${err}`);
571
- throw err;
572
- }
573
- if (err instanceof selenium_webdriver_1.error.TimeoutError) {
574
- Logger_1.Logger.trace(`DriverHelper.scrollTo - Polling timed out attempt #${(i + 1)}, retrying with ${polling}ms timeout`);
575
- continue;
576
- }
577
- Logger_1.Logger.error(`DriverHelper.scrollTo - failed with an unexpected exception - ${err}`);
578
- throw err;
579
- }
580
- try {
581
- await this.getAction().move({ origin: element }).perform();
582
- return;
583
- }
584
- catch (err) {
585
- if (err instanceof selenium_webdriver_1.error.StaleElementReferenceError) {
586
- await this.wait(polling);
587
- continue;
588
- }
589
- Logger_1.Logger.error(`DriverHelper.scrollTo - failed with an unexpected exception - ${err}`);
590
- throw err;
591
- }
592
- }
593
- throw new selenium_webdriver_1.error.TimeoutError(`Exceeded maximum mouse move attempts, for the '${elementLocator}' element`);
594
- }
595
- /**
596
- * @deprecated Method deprecated. Use the next method instead.
597
- * @see BrowserTabsUtil.getCurrentUrl()
598
- */
599
- async getCurrentUrl() {
600
- return await this.driver.getCurrentUrl();
601
- }
602
- getDriver() {
603
- Logger_1.Logger.trace('DriverHelper.getDriver');
604
- return this.driver;
605
- }
606
- sleep(time) {
607
- this.driver.sleep(time);
608
- }
609
- };
610
- DriverHelper = __decorate([
611
- inversify_1.injectable(),
612
- __param(0, inversify_1.inject(inversify_types_1.TYPES.Driver)),
613
- __metadata("design:paramtypes", [Object])
614
- ], DriverHelper);
615
- exports.DriverHelper = DriverHelper;
616
- //# sourceMappingURL=DriverHelper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DriverHelper.js","sourceRoot":"","sources":["../../utils/DriverHelper.ts"],"names":[],"mappings":"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"}