UrgentcareCLI 0.1.1 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (317) hide show
  1. checksums.yaml +4 -4
  2. data/lib/UrgentCare/CLI.rb +1 -2
  3. data/lib/UrgentCare/Scraper.rb +65 -0
  4. data/lib/UrgentCare/version.rb +2 -2
  5. data/lib/UrgentCare.rb +1 -0
  6. metadata +3 -313
  7. data/.gitignore +0 -11
  8. data/.rspec +0 -3
  9. data/.travis.yml +0 -5
  10. data/CODE_OF_CONDUCT.md +0 -74
  11. data/Gemfile +0 -12
  12. data/Gemfile.lock +0 -84
  13. data/LICENSE.txt +0 -21
  14. data/Notes +0 -41
  15. data/README.md +0 -41
  16. data/Rakefile +0 -8
  17. data/UrgentCare.gemspec +0 -39
  18. data/background.jpg +0 -0
  19. data/data.txt +0 -4
  20. data/lib/Urgentcare/Scraper.rb +0 -78
  21. data/node_modules/.bin/rimraf +0 -1
  22. data/node_modules/.package-lock.json +0 -250
  23. data/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  24. data/node_modules/balanced-match/LICENSE.md +0 -21
  25. data/node_modules/balanced-match/README.md +0 -97
  26. data/node_modules/balanced-match/index.js +0 -62
  27. data/node_modules/balanced-match/package.json +0 -48
  28. data/node_modules/brace-expansion/LICENSE +0 -21
  29. data/node_modules/brace-expansion/README.md +0 -129
  30. data/node_modules/brace-expansion/index.js +0 -201
  31. data/node_modules/brace-expansion/package.json +0 -47
  32. data/node_modules/concat-map/.travis.yml +0 -4
  33. data/node_modules/concat-map/LICENSE +0 -18
  34. data/node_modules/concat-map/README.markdown +0 -62
  35. data/node_modules/concat-map/example/map.js +0 -6
  36. data/node_modules/concat-map/index.js +0 -13
  37. data/node_modules/concat-map/package.json +0 -43
  38. data/node_modules/concat-map/test/map.js +0 -39
  39. data/node_modules/core-util-is/LICENSE +0 -19
  40. data/node_modules/core-util-is/README.md +0 -3
  41. data/node_modules/core-util-is/float.patch +0 -604
  42. data/node_modules/core-util-is/lib/util.js +0 -107
  43. data/node_modules/core-util-is/package.json +0 -32
  44. data/node_modules/core-util-is/test.js +0 -68
  45. data/node_modules/fs.realpath/LICENSE +0 -43
  46. data/node_modules/fs.realpath/README.md +0 -33
  47. data/node_modules/fs.realpath/index.js +0 -66
  48. data/node_modules/fs.realpath/old.js +0 -303
  49. data/node_modules/fs.realpath/package.json +0 -26
  50. data/node_modules/glob/LICENSE +0 -21
  51. data/node_modules/glob/README.md +0 -375
  52. data/node_modules/glob/changelog.md +0 -67
  53. data/node_modules/glob/common.js +0 -234
  54. data/node_modules/glob/glob.js +0 -788
  55. data/node_modules/glob/package.json +0 -51
  56. data/node_modules/glob/sync.js +0 -484
  57. data/node_modules/immediate/LICENSE.txt +0 -20
  58. data/node_modules/immediate/README.md +0 -93
  59. data/node_modules/immediate/dist/immediate.js +0 -75
  60. data/node_modules/immediate/dist/immediate.min.js +0 -1
  61. data/node_modules/immediate/lib/browser.js +0 -69
  62. data/node_modules/immediate/lib/index.js +0 -73
  63. data/node_modules/immediate/package.json +0 -42
  64. data/node_modules/inflight/LICENSE +0 -15
  65. data/node_modules/inflight/README.md +0 -37
  66. data/node_modules/inflight/inflight.js +0 -54
  67. data/node_modules/inflight/package.json +0 -29
  68. data/node_modules/inherits/LICENSE +0 -16
  69. data/node_modules/inherits/README.md +0 -42
  70. data/node_modules/inherits/inherits.js +0 -9
  71. data/node_modules/inherits/inherits_browser.js +0 -27
  72. data/node_modules/inherits/package.json +0 -29
  73. data/node_modules/isarray/.npmignore +0 -1
  74. data/node_modules/isarray/.travis.yml +0 -4
  75. data/node_modules/isarray/Makefile +0 -6
  76. data/node_modules/isarray/README.md +0 -60
  77. data/node_modules/isarray/component.json +0 -19
  78. data/node_modules/isarray/index.js +0 -5
  79. data/node_modules/isarray/package.json +0 -45
  80. data/node_modules/isarray/test.js +0 -20
  81. data/node_modules/jszip/.codeclimate.yml +0 -16
  82. data/node_modules/jszip/.editorconfig +0 -8
  83. data/node_modules/jszip/.jshintignore +0 -1
  84. data/node_modules/jszip/.jshintrc +0 -21
  85. data/node_modules/jszip/.travis.yml +0 -17
  86. data/node_modules/jszip/CHANGES.md +0 -163
  87. data/node_modules/jszip/LICENSE.markdown +0 -651
  88. data/node_modules/jszip/README.markdown +0 -35
  89. data/node_modules/jszip/dist/jszip.js +0 -30
  90. data/node_modules/jszip/dist/jszip.min.js +0 -13
  91. data/node_modules/jszip/index.d.ts +0 -270
  92. data/node_modules/jszip/lib/base64.js +0 -106
  93. data/node_modules/jszip/lib/compressedObject.js +0 -74
  94. data/node_modules/jszip/lib/compressions.js +0 -14
  95. data/node_modules/jszip/lib/crc32.js +0 -77
  96. data/node_modules/jszip/lib/defaults.js +0 -11
  97. data/node_modules/jszip/lib/external.js +0 -19
  98. data/node_modules/jszip/lib/flate.js +0 -85
  99. data/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -540
  100. data/node_modules/jszip/lib/generate/index.js +0 -57
  101. data/node_modules/jszip/lib/index.js +0 -52
  102. data/node_modules/jszip/lib/license_header.js +0 -11
  103. data/node_modules/jszip/lib/load.js +0 -81
  104. data/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  105. data/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  106. data/node_modules/jszip/lib/nodejsUtils.js +0 -57
  107. data/node_modules/jszip/lib/object.js +0 -389
  108. data/node_modules/jszip/lib/readable-stream-browser.js +0 -9
  109. data/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  110. data/node_modules/jszip/lib/reader/DataReader.js +0 -116
  111. data/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  112. data/node_modules/jszip/lib/reader/StringReader.js +0 -38
  113. data/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  114. data/node_modules/jszip/lib/reader/readerFor.js +0 -28
  115. data/node_modules/jszip/lib/signature.js +0 -7
  116. data/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  117. data/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  118. data/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  119. data/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  120. data/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  121. data/node_modules/jszip/lib/stream/StreamHelper.js +0 -212
  122. data/node_modules/jszip/lib/support.js +0 -38
  123. data/node_modules/jszip/lib/utf8.js +0 -275
  124. data/node_modules/jszip/lib/utils.js +0 -476
  125. data/node_modules/jszip/lib/zipEntries.js +0 -262
  126. data/node_modules/jszip/lib/zipEntry.js +0 -294
  127. data/node_modules/jszip/lib/zipObject.js +0 -133
  128. data/node_modules/jszip/package.json +0 -63
  129. data/node_modules/jszip/vendor/FileSaver.js +0 -247
  130. data/node_modules/lie/README.md +0 -62
  131. data/node_modules/lie/dist/lie.js +0 -350
  132. data/node_modules/lie/dist/lie.min.js +0 -1
  133. data/node_modules/lie/dist/lie.polyfill.js +0 -358
  134. data/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  135. data/node_modules/lie/lib/browser.js +0 -273
  136. data/node_modules/lie/lib/index.js +0 -298
  137. data/node_modules/lie/license.md +0 -7
  138. data/node_modules/lie/lie.d.ts +0 -244
  139. data/node_modules/lie/package.json +0 -69
  140. data/node_modules/lie/polyfill.js +0 -4
  141. data/node_modules/minimatch/LICENSE +0 -15
  142. data/node_modules/minimatch/README.md +0 -209
  143. data/node_modules/minimatch/minimatch.js +0 -923
  144. data/node_modules/minimatch/package.json +0 -30
  145. data/node_modules/once/LICENSE +0 -15
  146. data/node_modules/once/README.md +0 -79
  147. data/node_modules/once/once.js +0 -42
  148. data/node_modules/once/package.json +0 -33
  149. data/node_modules/pako/CHANGELOG.md +0 -164
  150. data/node_modules/pako/LICENSE +0 -21
  151. data/node_modules/pako/README.md +0 -191
  152. data/node_modules/pako/dist/pako.js +0 -6818
  153. data/node_modules/pako/dist/pako.min.js +0 -1
  154. data/node_modules/pako/dist/pako_deflate.js +0 -3997
  155. data/node_modules/pako/dist/pako_deflate.min.js +0 -1
  156. data/node_modules/pako/dist/pako_inflate.js +0 -3300
  157. data/node_modules/pako/dist/pako_inflate.min.js +0 -1
  158. data/node_modules/pako/index.js +0 -14
  159. data/node_modules/pako/lib/deflate.js +0 -400
  160. data/node_modules/pako/lib/inflate.js +0 -423
  161. data/node_modules/pako/lib/utils/common.js +0 -105
  162. data/node_modules/pako/lib/utils/strings.js +0 -187
  163. data/node_modules/pako/lib/zlib/README +0 -59
  164. data/node_modules/pako/lib/zlib/adler32.js +0 -51
  165. data/node_modules/pako/lib/zlib/constants.js +0 -68
  166. data/node_modules/pako/lib/zlib/crc32.js +0 -59
  167. data/node_modules/pako/lib/zlib/deflate.js +0 -1874
  168. data/node_modules/pako/lib/zlib/gzheader.js +0 -58
  169. data/node_modules/pako/lib/zlib/inffast.js +0 -345
  170. data/node_modules/pako/lib/zlib/inflate.js +0 -1556
  171. data/node_modules/pako/lib/zlib/inftrees.js +0 -343
  172. data/node_modules/pako/lib/zlib/messages.js +0 -32
  173. data/node_modules/pako/lib/zlib/trees.js +0 -1222
  174. data/node_modules/pako/lib/zlib/zstream.js +0 -47
  175. data/node_modules/pako/package.json +0 -44
  176. data/node_modules/path-is-absolute/index.js +0 -20
  177. data/node_modules/path-is-absolute/license +0 -21
  178. data/node_modules/path-is-absolute/package.json +0 -43
  179. data/node_modules/path-is-absolute/readme.md +0 -59
  180. data/node_modules/process-nextick-args/index.js +0 -45
  181. data/node_modules/process-nextick-args/license.md +0 -19
  182. data/node_modules/process-nextick-args/package.json +0 -25
  183. data/node_modules/process-nextick-args/readme.md +0 -18
  184. data/node_modules/readable-stream/.travis.yml +0 -34
  185. data/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  186. data/node_modules/readable-stream/GOVERNANCE.md +0 -136
  187. data/node_modules/readable-stream/LICENSE +0 -47
  188. data/node_modules/readable-stream/README.md +0 -58
  189. data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  190. data/node_modules/readable-stream/duplex-browser.js +0 -1
  191. data/node_modules/readable-stream/duplex.js +0 -1
  192. data/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  193. data/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  194. data/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  195. data/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  196. data/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  197. data/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  198. data/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  199. data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  200. data/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  201. data/node_modules/readable-stream/package.json +0 -52
  202. data/node_modules/readable-stream/passthrough.js +0 -1
  203. data/node_modules/readable-stream/readable-browser.js +0 -7
  204. data/node_modules/readable-stream/readable.js +0 -19
  205. data/node_modules/readable-stream/transform.js +0 -1
  206. data/node_modules/readable-stream/writable-browser.js +0 -1
  207. data/node_modules/readable-stream/writable.js +0 -8
  208. data/node_modules/rimraf/LICENSE +0 -15
  209. data/node_modules/rimraf/README.md +0 -101
  210. data/node_modules/rimraf/bin.js +0 -50
  211. data/node_modules/rimraf/package.json +0 -29
  212. data/node_modules/rimraf/rimraf.js +0 -372
  213. data/node_modules/safe-buffer/LICENSE +0 -21
  214. data/node_modules/safe-buffer/README.md +0 -584
  215. data/node_modules/safe-buffer/index.d.ts +0 -187
  216. data/node_modules/safe-buffer/index.js +0 -62
  217. data/node_modules/safe-buffer/package.json +0 -37
  218. data/node_modules/selenium-webdriver/CHANGES.md +0 -1114
  219. data/node_modules/selenium-webdriver/LICENSE +0 -202
  220. data/node_modules/selenium-webdriver/NOTICE +0 -2
  221. data/node_modules/selenium-webdriver/README.md +0 -229
  222. data/node_modules/selenium-webdriver/chrome.js +0 -295
  223. data/node_modules/selenium-webdriver/chromium.js +0 -829
  224. data/node_modules/selenium-webdriver/devtools/CDPConnection.js +0 -35
  225. data/node_modules/selenium-webdriver/edge.js +0 -224
  226. data/node_modules/selenium-webdriver/example/chrome_android.js +0 -45
  227. data/node_modules/selenium-webdriver/example/chrome_mobile_emulation.js +0 -46
  228. data/node_modules/selenium-webdriver/example/firefox_channels.js +0 -84
  229. data/node_modules/selenium-webdriver/example/google_search.js +0 -50
  230. data/node_modules/selenium-webdriver/example/google_search_test.js +0 -70
  231. data/node_modules/selenium-webdriver/example/headless.js +0 -63
  232. data/node_modules/selenium-webdriver/example/logging.js +0 -64
  233. data/node_modules/selenium-webdriver/firefox.js +0 -789
  234. data/node_modules/selenium-webdriver/http/index.js +0 -324
  235. data/node_modules/selenium-webdriver/http/util.js +0 -172
  236. data/node_modules/selenium-webdriver/ie.js +0 -503
  237. data/node_modules/selenium-webdriver/index.js +0 -825
  238. data/node_modules/selenium-webdriver/io/exec.js +0 -162
  239. data/node_modules/selenium-webdriver/io/index.js +0 -348
  240. data/node_modules/selenium-webdriver/io/zip.js +0 -223
  241. data/node_modules/selenium-webdriver/lib/atoms/find-elements.js +0 -123
  242. data/node_modules/selenium-webdriver/lib/atoms/get-attribute.js +0 -101
  243. data/node_modules/selenium-webdriver/lib/atoms/is-displayed.js +0 -101
  244. data/node_modules/selenium-webdriver/lib/atoms/mutation-listener.js +0 -55
  245. data/node_modules/selenium-webdriver/lib/by.js +0 -415
  246. data/node_modules/selenium-webdriver/lib/capabilities.js +0 -553
  247. data/node_modules/selenium-webdriver/lib/command.js +0 -206
  248. data/node_modules/selenium-webdriver/lib/error.js +0 -605
  249. data/node_modules/selenium-webdriver/lib/http.js +0 -704
  250. data/node_modules/selenium-webdriver/lib/input.js +0 -946
  251. data/node_modules/selenium-webdriver/lib/logging.js +0 -661
  252. data/node_modules/selenium-webdriver/lib/promise.js +0 -285
  253. data/node_modules/selenium-webdriver/lib/proxy.js +0 -212
  254. data/node_modules/selenium-webdriver/lib/session.js +0 -77
  255. data/node_modules/selenium-webdriver/lib/symbols.js +0 -37
  256. data/node_modules/selenium-webdriver/lib/until.js +0 -429
  257. data/node_modules/selenium-webdriver/lib/webdriver.js +0 -2919
  258. data/node_modules/selenium-webdriver/net/index.js +0 -107
  259. data/node_modules/selenium-webdriver/net/portprober.js +0 -75
  260. data/node_modules/selenium-webdriver/opera.js +0 -406
  261. data/node_modules/selenium-webdriver/package.json +0 -54
  262. data/node_modules/selenium-webdriver/proxy.js +0 -32
  263. data/node_modules/selenium-webdriver/remote/index.js +0 -624
  264. data/node_modules/selenium-webdriver/safari.js +0 -168
  265. data/node_modules/selenium-webdriver/testing/index.js +0 -504
  266. data/node_modules/set-immediate-shim/index.js +0 -7
  267. data/node_modules/set-immediate-shim/package.json +0 -34
  268. data/node_modules/set-immediate-shim/readme.md +0 -31
  269. data/node_modules/string_decoder/.travis.yml +0 -50
  270. data/node_modules/string_decoder/LICENSE +0 -48
  271. data/node_modules/string_decoder/README.md +0 -47
  272. data/node_modules/string_decoder/lib/string_decoder.js +0 -296
  273. data/node_modules/string_decoder/package.json +0 -31
  274. data/node_modules/tmp/CHANGELOG.md +0 -288
  275. data/node_modules/tmp/LICENSE +0 -21
  276. data/node_modules/tmp/README.md +0 -365
  277. data/node_modules/tmp/lib/tmp.js +0 -780
  278. data/node_modules/tmp/node_modules/.bin/rimraf +0 -1
  279. data/node_modules/tmp/node_modules/rimraf/CHANGELOG.md +0 -65
  280. data/node_modules/tmp/node_modules/rimraf/LICENSE +0 -15
  281. data/node_modules/tmp/node_modules/rimraf/README.md +0 -101
  282. data/node_modules/tmp/node_modules/rimraf/bin.js +0 -68
  283. data/node_modules/tmp/node_modules/rimraf/package.json +0 -32
  284. data/node_modules/tmp/node_modules/rimraf/rimraf.js +0 -360
  285. data/node_modules/tmp/package.json +0 -58
  286. data/node_modules/util-deprecate/History.md +0 -16
  287. data/node_modules/util-deprecate/LICENSE +0 -24
  288. data/node_modules/util-deprecate/README.md +0 -53
  289. data/node_modules/util-deprecate/browser.js +0 -67
  290. data/node_modules/util-deprecate/node.js +0 -6
  291. data/node_modules/util-deprecate/package.json +0 -27
  292. data/node_modules/wrappy/LICENSE +0 -15
  293. data/node_modules/wrappy/README.md +0 -36
  294. data/node_modules/wrappy/package.json +0 -29
  295. data/node_modules/wrappy/wrappy.js +0 -33
  296. data/node_modules/ws/LICENSE +0 -21
  297. data/node_modules/ws/README.md +0 -496
  298. data/node_modules/ws/browser.js +0 -8
  299. data/node_modules/ws/index.js +0 -10
  300. data/node_modules/ws/lib/buffer-util.js +0 -129
  301. data/node_modules/ws/lib/constants.js +0 -10
  302. data/node_modules/ws/lib/event-target.js +0 -184
  303. data/node_modules/ws/lib/extension.js +0 -223
  304. data/node_modules/ws/lib/limiter.js +0 -55
  305. data/node_modules/ws/lib/permessage-deflate.js +0 -517
  306. data/node_modules/ws/lib/receiver.js +0 -507
  307. data/node_modules/ws/lib/sender.js +0 -405
  308. data/node_modules/ws/lib/stream.js +0 -165
  309. data/node_modules/ws/lib/validation.js +0 -104
  310. data/node_modules/ws/lib/websocket-server.js +0 -418
  311. data/node_modules/ws/lib/websocket.js +0 -942
  312. data/node_modules/ws/package.json +0 -56
  313. data/package-lock.json +0 -458
  314. data/package.json +0 -5
  315. data/selenium.log +0 -1
  316. data/spec.md +0 -6
  317. data/test.data +0 -2110
@@ -1,206 +0,0 @@
1
- // Licensed to the Software Freedom Conservancy (SFC) under one
2
- // or more contributor license agreements. See the NOTICE file
3
- // distributed with this work for additional information
4
- // regarding copyright ownership. The SFC licenses this file
5
- // to you under the Apache License, Version 2.0 (the
6
- // "License"); you may not use this file except in compliance
7
- // with the License. You may obtain a copy of the License at
8
- //
9
- // http://www.apache.org/licenses/LICENSE-2.0
10
- //
11
- // Unless required by applicable law or agreed to in writing,
12
- // software distributed under the License is distributed on an
13
- // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- // KIND, either express or implied. See the License for the
15
- // specific language governing permissions and limitations
16
- // under the License.
17
-
18
- /**
19
- * @fileoverview Contains several classes for handling commands.
20
- */
21
-
22
- 'use strict'
23
-
24
- /**
25
- * Describes a command to execute.
26
- * @final
27
- */
28
- class Command {
29
- /** @param {string} name The name of this command. */
30
- constructor(name) {
31
- /** @private {string} */
32
- this.name_ = name
33
-
34
- /** @private {!Object<*>} */
35
- this.parameters_ = {}
36
- }
37
-
38
- /** @return {string} This command's name. */
39
- getName() {
40
- return this.name_
41
- }
42
-
43
- /**
44
- * Sets a parameter to send with this command.
45
- * @param {string} name The parameter name.
46
- * @param {*} value The parameter value.
47
- * @return {!Command} A self reference.
48
- */
49
- setParameter(name, value) {
50
- this.parameters_[name] = value
51
- return this
52
- }
53
-
54
- /**
55
- * Sets the parameters for this command.
56
- * @param {!Object<*>} parameters The command parameters.
57
- * @return {!Command} A self reference.
58
- */
59
- setParameters(parameters) {
60
- this.parameters_ = parameters
61
- return this
62
- }
63
-
64
- /**
65
- * Returns a named command parameter.
66
- * @param {string} key The parameter key to look up.
67
- * @return {*} The parameter value, or undefined if it has not been set.
68
- */
69
- getParameter(key) {
70
- return this.parameters_[key]
71
- }
72
-
73
- /**
74
- * @return {!Object<*>} The parameters to send with this command.
75
- */
76
- getParameters() {
77
- return this.parameters_
78
- }
79
- }
80
-
81
- /**
82
- * Enumeration of predefined names command names that all command processors
83
- * will support.
84
- * @enum {string}
85
- */
86
- // TODO: Delete obsolete command names.
87
- const Name = {
88
- GET_SERVER_STATUS: 'getStatus',
89
-
90
- NEW_SESSION: 'newSession',
91
- GET_SESSIONS: 'getSessions',
92
-
93
- CLOSE: 'close',
94
- QUIT: 'quit',
95
-
96
- GET_CURRENT_URL: 'getCurrentUrl',
97
- GET: 'get',
98
- GO_BACK: 'goBack',
99
- GO_FORWARD: 'goForward',
100
- REFRESH: 'refresh',
101
-
102
- ADD_COOKIE: 'addCookie',
103
- GET_COOKIE: 'getCookie',
104
- GET_ALL_COOKIES: 'getCookies',
105
- DELETE_COOKIE: 'deleteCookie',
106
- DELETE_ALL_COOKIES: 'deleteAllCookies',
107
-
108
- GET_ACTIVE_ELEMENT: 'getActiveElement',
109
- FIND_ELEMENT: 'findElement',
110
- FIND_ELEMENTS: 'findElements',
111
- FIND_ELEMENTS_RELATIVE: 'findElementsRelative',
112
- FIND_CHILD_ELEMENT: 'findChildElement',
113
- FIND_CHILD_ELEMENTS: 'findChildElements',
114
-
115
- CLEAR_ELEMENT: 'clearElement',
116
- CLICK_ELEMENT: 'clickElement',
117
- SEND_KEYS_TO_ELEMENT: 'sendKeysToElement',
118
- SUBMIT_ELEMENT: 'submitElement',
119
-
120
- GET_CURRENT_WINDOW_HANDLE: 'getCurrentWindowHandle',
121
- GET_WINDOW_HANDLES: 'getWindowHandles',
122
- GET_WINDOW_POSITION: 'getWindowPosition',
123
- SET_WINDOW_POSITION: 'setWindowPosition',
124
- GET_WINDOW_SIZE: 'getWindowSize',
125
- SET_WINDOW_SIZE: 'setWindowSize',
126
- GET_WINDOW_RECT: 'getWindowRect',
127
- SET_WINDOW_RECT: 'setWindowRect',
128
- MAXIMIZE_WINDOW: 'maximizeWindow',
129
- MINIMIZE_WINDOW: 'minimizeWindow',
130
- FULLSCREEN_WINDOW: 'fullscreenWindow',
131
-
132
- SWITCH_TO_WINDOW: 'switchToWindow',
133
- SWITCH_TO_NEW_WINDOW: 'newWindow',
134
- SWITCH_TO_FRAME: 'switchToFrame',
135
- SWITCH_TO_FRAME_PARENT: 'switchToFrameParent',
136
- GET_PAGE_SOURCE: 'getPageSource',
137
- GET_TITLE: 'getTitle',
138
-
139
- EXECUTE_SCRIPT: 'executeScript',
140
- EXECUTE_ASYNC_SCRIPT: 'executeAsyncScript',
141
-
142
- GET_ELEMENT_TEXT: 'getElementText',
143
- GET_COMPUTED_ROLE: 'getAriaRole',
144
- GET_COMPUTED_LABEL: 'getAccessibleName',
145
- GET_ELEMENT_TAG_NAME: 'getElementTagName',
146
- IS_ELEMENT_SELECTED: 'isElementSelected',
147
- IS_ELEMENT_ENABLED: 'isElementEnabled',
148
- IS_ELEMENT_DISPLAYED: 'isElementDisplayed',
149
- GET_ELEMENT_LOCATION: 'getElementLocation',
150
- GET_ELEMENT_LOCATION_IN_VIEW: 'getElementLocationOnceScrolledIntoView',
151
- GET_ELEMENT_RECT: 'getElementRect',
152
- GET_ELEMENT_SIZE: 'getElementSize',
153
- GET_ELEMENT_ATTRIBUTE: 'getElementAttribute',
154
- GET_ELEMENT_VALUE_OF_CSS_PROPERTY: 'getElementValueOfCssProperty',
155
- GET_ELEMENT_PROPERTY: 'getElementProperty',
156
-
157
- SCREENSHOT: 'screenshot',
158
- TAKE_ELEMENT_SCREENSHOT: 'takeElementScreenshot',
159
- SET_SCRIPT_TIMEOUT: 'setScriptTimeout',
160
-
161
- PRINT_PAGE: 'printPage',
162
-
163
- GET_TIMEOUT: 'getTimeout',
164
- SET_TIMEOUT: 'setTimeout',
165
-
166
- ACCEPT_ALERT: 'acceptAlert',
167
- DISMISS_ALERT: 'dismissAlert',
168
- GET_ALERT_TEXT: 'getAlertText',
169
- SET_ALERT_TEXT: 'setAlertValue',
170
-
171
- GET_AVAILABLE_LOG_TYPES: 'getAvailableLogTypes',
172
- GET_LOG: 'getLog',
173
- GET_SESSION_LOGS: 'getSessionLogs',
174
-
175
- // Non-standard commands used by the standalone Selenium server.
176
- UPLOAD_FILE: 'uploadFile',
177
-
178
- ACTIONS: 'actions',
179
- CLEAR_ACTIONS: 'clearActions',
180
- }
181
-
182
- /**
183
- * Handles the execution of WebDriver {@link Command commands}.
184
- * @record
185
- */
186
- class Executor {
187
- /**
188
- * Executes the given {@code command}. If there is an error executing the
189
- * command, the provided callback will be invoked with the offending error.
190
- * Otherwise, the callback will be invoked with a null Error and non-null
191
- * response object.
192
- *
193
- * @param {!Command} command The command to execute.
194
- * @return {!Promise<?>} A promise that will be fulfilled with the command
195
- * result.
196
- */
197
- execute(command) {} // eslint-disable-line
198
- }
199
-
200
- // PUBLIC API
201
-
202
- module.exports = {
203
- Command: Command,
204
- Name: Name,
205
- Executor: Executor,
206
- }
@@ -1,605 +0,0 @@
1
- // Licensed to the Software Freedom Conservancy (SFC) under one
2
- // or more contributor license agreements. See the NOTICE file
3
- // distributed with this work for additional information
4
- // regarding copyright ownership. The SFC licenses this file
5
- // to you under the Apache License, Version 2.0 (the
6
- // "License"); you may not use this file except in compliance
7
- // with the License. You may obtain a copy of the License at
8
- //
9
- // http://www.apache.org/licenses/LICENSE-2.0
10
- //
11
- // Unless required by applicable law or agreed to in writing,
12
- // software distributed under the License is distributed on an
13
- // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- // KIND, either express or implied. See the License for the
15
- // specific language governing permissions and limitations
16
- // under the License.
17
-
18
- 'use strict'
19
-
20
- /**
21
- * The base WebDriver error type. This error type is only used directly when a
22
- * more appropriate category is not defined for the offending error.
23
- */
24
- class WebDriverError extends Error {
25
- /** @param {string=} opt_error the error message, if any. */
26
- constructor(opt_error) {
27
- super(opt_error)
28
-
29
- /** @override */
30
- this.name = this.constructor.name
31
-
32
- /**
33
- * A stacktrace reported by the remote webdriver endpoint that initially
34
- * reported this error. This property will be an empty string if the remote
35
- * end did not provide a stacktrace.
36
- * @type {string}
37
- */
38
- this.remoteStacktrace = ''
39
- }
40
- }
41
-
42
- /**
43
- * Indicates a {@linkplain ./webdriver.WebElement#click click command} could not
44
- * completed because the click target is obscured by other elements on the
45
- * page.
46
- */
47
- class ElementClickInterceptedError extends WebDriverError {
48
- /** @param {string=} opt_error the error message, if any. */
49
- constructor(opt_error) {
50
- super(opt_error)
51
- }
52
- }
53
-
54
- /**
55
- * An attempt was made to select an element that cannot be selected.
56
- */
57
- class ElementNotSelectableError extends WebDriverError {
58
- /** @param {string=} opt_error the error message, if any. */
59
- constructor(opt_error) {
60
- super(opt_error)
61
- }
62
- }
63
-
64
- /**
65
- * Indicates a command could not be completed because the target element is
66
- * not pointer or keyboard interactable. This will often occur if an element
67
- * is present in the DOM, but not rendered (i.e. its CSS style has
68
- * "display: none").
69
- */
70
- class ElementNotInteractableError extends WebDriverError {
71
- /** @param {string=} opt_error the error message, if any. */
72
- constructor(opt_error) {
73
- super(opt_error)
74
- }
75
- }
76
-
77
- /**
78
- * Indicates a navigation event caused the browser to generate a certificate
79
- * warning. This is usually caused by an expired or invalid TLS certificate.
80
- */
81
- class InsecureCertificateError extends WebDriverError {
82
- /** @param {string=} opt_error the error message, if any. */
83
- constructor(opt_error) {
84
- super(opt_error)
85
- }
86
- }
87
-
88
- /**
89
- * The arguments passed to a command are either invalid or malformed.
90
- */
91
- class InvalidArgumentError extends WebDriverError {
92
- /** @param {string=} opt_error the error message, if any. */
93
- constructor(opt_error) {
94
- super(opt_error)
95
- }
96
- }
97
-
98
- /**
99
- * An illegal attempt was made to set a cookie under a different domain than
100
- * the current page.
101
- */
102
- class InvalidCookieDomainError extends WebDriverError {
103
- /** @param {string=} opt_error the error message, if any. */
104
- constructor(opt_error) {
105
- super(opt_error)
106
- }
107
- }
108
-
109
- /**
110
- * The coordinates provided to an interactions operation are invalid.
111
- */
112
- class InvalidCoordinatesError extends WebDriverError {
113
- /** @param {string=} opt_error the error message, if any. */
114
- constructor(opt_error) {
115
- super(opt_error)
116
- }
117
- }
118
-
119
- /**
120
- * An element command could not be completed because the element is in an
121
- * invalid state, e.g. attempting to click an element that is no longer attached
122
- * to the document.
123
- */
124
- class InvalidElementStateError extends WebDriverError {
125
- /** @param {string=} opt_error the error message, if any. */
126
- constructor(opt_error) {
127
- super(opt_error)
128
- }
129
- }
130
-
131
- /**
132
- * Argument was an invalid selector.
133
- */
134
- class InvalidSelectorError extends WebDriverError {
135
- /** @param {string=} opt_error the error message, if any. */
136
- constructor(opt_error) {
137
- super(opt_error)
138
- }
139
- }
140
-
141
- /**
142
- * Occurs when a command is directed to a session that does not exist.
143
- */
144
- class NoSuchSessionError extends WebDriverError {
145
- /** @param {string=} opt_error the error message, if any. */
146
- constructor(opt_error) {
147
- super(opt_error)
148
- }
149
- }
150
-
151
- /**
152
- * An error occurred while executing JavaScript supplied by the user.
153
- */
154
- class JavascriptError extends WebDriverError {
155
- /** @param {string=} opt_error the error message, if any. */
156
- constructor(opt_error) {
157
- super(opt_error)
158
- }
159
- }
160
-
161
- /**
162
- * The target for mouse interaction is not in the browser’s viewport and cannot
163
- * be brought into that viewport.
164
- */
165
- class MoveTargetOutOfBoundsError extends WebDriverError {
166
- /** @param {string=} opt_error the error message, if any. */
167
- constructor(opt_error) {
168
- super(opt_error)
169
- }
170
- }
171
-
172
- /**
173
- * An attempt was made to operate on a modal dialog when one was not open.
174
- */
175
- class NoSuchAlertError extends WebDriverError {
176
- /** @param {string=} opt_error the error message, if any. */
177
- constructor(opt_error) {
178
- super(opt_error)
179
- }
180
- }
181
-
182
- /**
183
- * Indicates a named cookie could not be found in the cookie jar for the
184
- * currently selected document.
185
- */
186
- class NoSuchCookieError extends WebDriverError {
187
- /** @param {string=} opt_error the error message, if any. */
188
- constructor(opt_error) {
189
- super(opt_error)
190
- }
191
- }
192
-
193
- /**
194
- * An element could not be located on the page using the given search
195
- * parameters.
196
- */
197
- class NoSuchElementError extends WebDriverError {
198
- /** @param {string=} opt_error the error message, if any. */
199
- constructor(opt_error) {
200
- super(opt_error)
201
- }
202
- }
203
-
204
- /**
205
- * A request to switch to a frame could not be satisfied because the frame
206
- * could not be found.
207
- */
208
- class NoSuchFrameError extends WebDriverError {
209
- /** @param {string=} opt_error the error message, if any. */
210
- constructor(opt_error) {
211
- super(opt_error)
212
- }
213
- }
214
-
215
- /**
216
- * A request to switch to a window could not be satisfied because the window
217
- * could not be found.
218
- */
219
- class NoSuchWindowError extends WebDriverError {
220
- /** @param {string=} opt_error the error message, if any. */
221
- constructor(opt_error) {
222
- super(opt_error)
223
- }
224
- }
225
-
226
- /**
227
- * A script did not complete before its timeout expired.
228
- */
229
- class ScriptTimeoutError extends WebDriverError {
230
- /** @param {string=} opt_error the error message, if any. */
231
- constructor(opt_error) {
232
- super(opt_error)
233
- }
234
- }
235
-
236
- /**
237
- * A new session could not be created.
238
- */
239
- class SessionNotCreatedError extends WebDriverError {
240
- /** @param {string=} opt_error the error message, if any. */
241
- constructor(opt_error) {
242
- super(opt_error)
243
- }
244
- }
245
-
246
- /**
247
- * An element command failed because the referenced element is no longer
248
- * attached to the DOM.
249
- */
250
- class StaleElementReferenceError extends WebDriverError {
251
- /** @param {string=} opt_error the error message, if any. */
252
- constructor(opt_error) {
253
- super(opt_error)
254
- }
255
- }
256
-
257
- /**
258
- * An operation did not complete before its timeout expired.
259
- */
260
- class TimeoutError extends WebDriverError {
261
- /** @param {string=} opt_error the error message, if any. */
262
- constructor(opt_error) {
263
- super(opt_error)
264
- }
265
- }
266
-
267
- /**
268
- * A request to set a cookie’s value could not be satisfied.
269
- */
270
- class UnableToSetCookieError extends WebDriverError {
271
- /** @param {string=} opt_error the error message, if any. */
272
- constructor(opt_error) {
273
- super(opt_error)
274
- }
275
- }
276
-
277
- /**
278
- * A screen capture operation was not possible.
279
- */
280
- class UnableToCaptureScreenError extends WebDriverError {
281
- /** @param {string=} opt_error the error message, if any. */
282
- constructor(opt_error) {
283
- super(opt_error)
284
- }
285
- }
286
-
287
- /**
288
- * A modal dialog was open, blocking this operation.
289
- */
290
- class UnexpectedAlertOpenError extends WebDriverError {
291
- /**
292
- * @param {string=} opt_error the error message, if any.
293
- * @param {string=} opt_text the text of the open dialog, if available.
294
- */
295
- constructor(opt_error, opt_text) {
296
- super(opt_error)
297
-
298
- /** @private {(string|undefined)} */
299
- this.text_ = opt_text
300
- }
301
-
302
- /**
303
- * @return {(string|undefined)} The text displayed with the unhandled alert,
304
- * if available.
305
- */
306
- getAlertText() {
307
- return this.text_
308
- }
309
- }
310
-
311
- /**
312
- * A command could not be executed because the remote end is not aware of it.
313
- */
314
- class UnknownCommandError extends WebDriverError {
315
- /** @param {string=} opt_error the error message, if any. */
316
- constructor(opt_error) {
317
- super(opt_error)
318
- }
319
- }
320
-
321
- /**
322
- * The requested command matched a known URL but did not match an method for
323
- * that URL.
324
- */
325
- class UnknownMethodError extends WebDriverError {
326
- /** @param {string=} opt_error the error message, if any. */
327
- constructor(opt_error) {
328
- super(opt_error)
329
- }
330
- }
331
-
332
- /**
333
- * Reports an unsupported operation.
334
- */
335
- class UnsupportedOperationError extends WebDriverError {
336
- /** @param {string=} opt_error the error message, if any. */
337
- constructor(opt_error) {
338
- super(opt_error)
339
- }
340
- }
341
-
342
- // TODO(jleyba): Define UnknownError as an alias of WebDriverError?
343
-
344
- /**
345
- * Enum of legacy error codes.
346
- * TODO: remove this when all code paths have been switched to the new error
347
- * types.
348
- * @deprecated
349
- * @enum {number}
350
- */
351
- const ErrorCode = {
352
- SUCCESS: 0,
353
- NO_SUCH_SESSION: 6,
354
- NO_SUCH_ELEMENT: 7,
355
- NO_SUCH_FRAME: 8,
356
- UNKNOWN_COMMAND: 9,
357
- UNSUPPORTED_OPERATION: 9,
358
- STALE_ELEMENT_REFERENCE: 10,
359
- ELEMENT_NOT_VISIBLE: 11,
360
- INVALID_ELEMENT_STATE: 12,
361
- UNKNOWN_ERROR: 13,
362
- ELEMENT_NOT_SELECTABLE: 15,
363
- JAVASCRIPT_ERROR: 17,
364
- XPATH_LOOKUP_ERROR: 19,
365
- TIMEOUT: 21,
366
- NO_SUCH_WINDOW: 23,
367
- INVALID_COOKIE_DOMAIN: 24,
368
- UNABLE_TO_SET_COOKIE: 25,
369
- UNEXPECTED_ALERT_OPEN: 26,
370
- NO_SUCH_ALERT: 27,
371
- SCRIPT_TIMEOUT: 28,
372
- INVALID_ELEMENT_COORDINATES: 29,
373
- IME_NOT_AVAILABLE: 30,
374
- IME_ENGINE_ACTIVATION_FAILED: 31,
375
- INVALID_SELECTOR_ERROR: 32,
376
- SESSION_NOT_CREATED: 33,
377
- MOVE_TARGET_OUT_OF_BOUNDS: 34,
378
- SQL_DATABASE_ERROR: 35,
379
- INVALID_XPATH_SELECTOR: 51,
380
- INVALID_XPATH_SELECTOR_RETURN_TYPE: 52,
381
- ELEMENT_NOT_INTERACTABLE: 60,
382
- INVALID_ARGUMENT: 61,
383
- NO_SUCH_COOKIE: 62,
384
- UNABLE_TO_CAPTURE_SCREEN: 63,
385
- ELEMENT_CLICK_INTERCEPTED: 64,
386
- METHOD_NOT_ALLOWED: 405,
387
- }
388
-
389
- const LEGACY_ERROR_CODE_TO_TYPE = new Map([
390
- [ErrorCode.NO_SUCH_SESSION, NoSuchSessionError],
391
- [ErrorCode.NO_SUCH_ELEMENT, NoSuchElementError],
392
- [ErrorCode.NO_SUCH_FRAME, NoSuchFrameError],
393
- [ErrorCode.UNSUPPORTED_OPERATION, UnsupportedOperationError],
394
- [ErrorCode.STALE_ELEMENT_REFERENCE, StaleElementReferenceError],
395
- [ErrorCode.INVALID_ELEMENT_STATE, InvalidElementStateError],
396
- [ErrorCode.UNKNOWN_ERROR, WebDriverError],
397
- [ErrorCode.ELEMENT_NOT_SELECTABLE, ElementNotSelectableError],
398
- [ErrorCode.JAVASCRIPT_ERROR, JavascriptError],
399
- [ErrorCode.XPATH_LOOKUP_ERROR, InvalidSelectorError],
400
- [ErrorCode.TIMEOUT, TimeoutError],
401
- [ErrorCode.NO_SUCH_WINDOW, NoSuchWindowError],
402
- [ErrorCode.INVALID_COOKIE_DOMAIN, InvalidCookieDomainError],
403
- [ErrorCode.UNABLE_TO_SET_COOKIE, UnableToSetCookieError],
404
- [ErrorCode.UNEXPECTED_ALERT_OPEN, UnexpectedAlertOpenError],
405
- [ErrorCode.NO_SUCH_ALERT, NoSuchAlertError],
406
- [ErrorCode.SCRIPT_TIMEOUT, ScriptTimeoutError],
407
- [ErrorCode.INVALID_ELEMENT_COORDINATES, InvalidCoordinatesError],
408
- [ErrorCode.INVALID_SELECTOR_ERROR, InvalidSelectorError],
409
- [ErrorCode.SESSION_NOT_CREATED, SessionNotCreatedError],
410
- [ErrorCode.MOVE_TARGET_OUT_OF_BOUNDS, MoveTargetOutOfBoundsError],
411
- [ErrorCode.INVALID_XPATH_SELECTOR, InvalidSelectorError],
412
- [ErrorCode.INVALID_XPATH_SELECTOR_RETURN_TYPE, InvalidSelectorError],
413
- [ErrorCode.ELEMENT_NOT_INTERACTABLE, ElementNotInteractableError],
414
- [ErrorCode.INVALID_ARGUMENT, InvalidArgumentError],
415
- [ErrorCode.NO_SUCH_COOKIE, NoSuchCookieError],
416
- [ErrorCode.UNABLE_TO_CAPTURE_SCREEN, UnableToCaptureScreenError],
417
- [ErrorCode.ELEMENT_CLICK_INTERCEPTED, ElementClickInterceptedError],
418
- [ErrorCode.METHOD_NOT_ALLOWED, UnsupportedOperationError],
419
- ])
420
-
421
- const ERROR_CODE_TO_TYPE = new Map([
422
- ['unknown error', WebDriverError],
423
- ['element click intercepted', ElementClickInterceptedError],
424
- ['element not interactable', ElementNotInteractableError],
425
- ['element not selectable', ElementNotSelectableError],
426
- ['insecure certificate', InsecureCertificateError],
427
- ['invalid argument', InvalidArgumentError],
428
- ['invalid cookie domain', InvalidCookieDomainError],
429
- ['invalid coordinates', InvalidCoordinatesError],
430
- ['invalid element state', InvalidElementStateError],
431
- ['invalid selector', InvalidSelectorError],
432
- ['invalid session id', NoSuchSessionError],
433
- ['javascript error', JavascriptError],
434
- ['move target out of bounds', MoveTargetOutOfBoundsError],
435
- ['no such alert', NoSuchAlertError],
436
- ['no such cookie', NoSuchCookieError],
437
- ['no such element', NoSuchElementError],
438
- ['no such frame', NoSuchFrameError],
439
- ['no such window', NoSuchWindowError],
440
- ['script timeout', ScriptTimeoutError],
441
- ['session not created', SessionNotCreatedError],
442
- ['stale element reference', StaleElementReferenceError],
443
- ['timeout', TimeoutError],
444
- ['unable to set cookie', UnableToSetCookieError],
445
- ['unable to capture screen', UnableToCaptureScreenError],
446
- ['unexpected alert open', UnexpectedAlertOpenError],
447
- ['unknown command', UnknownCommandError],
448
- ['unknown method', UnknownMethodError],
449
- ['unsupported operation', UnsupportedOperationError],
450
- ])
451
-
452
- const TYPE_TO_ERROR_CODE = new Map()
453
- ERROR_CODE_TO_TYPE.forEach((value, key) => {
454
- TYPE_TO_ERROR_CODE.set(value, key)
455
- })
456
-
457
- /**
458
- * @param {*} err The error to encode.
459
- * @return {{error: string, message: string}} the encoded error.
460
- */
461
- function encodeError(err) {
462
- let type = WebDriverError
463
- if (
464
- err instanceof WebDriverError &&
465
- TYPE_TO_ERROR_CODE.has(err.constructor)
466
- ) {
467
- type = err.constructor
468
- }
469
-
470
- let message = err instanceof Error ? err.message : err + ''
471
-
472
- let code = /** @type {string} */ (TYPE_TO_ERROR_CODE.get(type))
473
- return { error: code, message: message }
474
- }
475
-
476
- /**
477
- * Checks a response object from a server that adheres to the W3C WebDriver
478
- * protocol.
479
- * @param {*} data The response data to check.
480
- * @return {*} The response data if it was not an encoded error.
481
- * @throws {WebDriverError} the decoded error, if present in the data object.
482
- * @deprecated Use {@link #throwDecodedError(data)} instead.
483
- * @see https://w3c.github.io/webdriver/webdriver-spec.html#protocol
484
- */
485
- function checkResponse(data) {
486
- if (data && typeof data.error === 'string') {
487
- let ctor = ERROR_CODE_TO_TYPE.get(data.error) || WebDriverError
488
- throw new ctor(data.message)
489
- }
490
- return data
491
- }
492
-
493
- /**
494
- * Tests if the given value is a valid error response object according to the
495
- * W3C WebDriver spec.
496
- *
497
- * @param {?} data The value to test.
498
- * @return {boolean} Whether the given value data object is a valid error
499
- * response.
500
- * @see https://w3c.github.io/webdriver/webdriver-spec.html#protocol
501
- */
502
- function isErrorResponse(data) {
503
- return data && typeof data === 'object' && typeof data.error === 'string'
504
- }
505
-
506
- /**
507
- * Throws an error coded from the W3C protocol. A generic error will be thrown
508
- * if the provided `data` is not a valid encoded error.
509
- *
510
- * @param {{error: string, message: string}} data The error data to decode.
511
- * @throws {WebDriverError} the decoded error.
512
- * @see https://w3c.github.io/webdriver/webdriver-spec.html#protocol
513
- */
514
- function throwDecodedError(data) {
515
- if (isErrorResponse(data)) {
516
- let ctor = ERROR_CODE_TO_TYPE.get(data.error) || WebDriverError
517
- let err = new ctor(data.message)
518
- // TODO(jleyba): remove whichever case is excluded from the final W3C spec.
519
- if (typeof data.stacktrace === 'string') {
520
- err.remoteStacktrace = data.stacktrace
521
- } else if (typeof data.stackTrace === 'string') {
522
- err.remoteStacktrace = data.stackTrace
523
- }
524
- throw err
525
- }
526
- throw new WebDriverError('Unknown error: ' + JSON.stringify(data))
527
- }
528
-
529
- /**
530
- * Checks a legacy response from the Selenium 2.0 wire protocol for an error.
531
- * @param {*} responseObj the response object to check.
532
- * @return {*} responseObj the original response if it does not define an error.
533
- * @throws {WebDriverError} if the response object defines an error.
534
- */
535
- function checkLegacyResponse(responseObj) {
536
- // Handle the legacy Selenium error response format.
537
- if (
538
- responseObj &&
539
- typeof responseObj === 'object' &&
540
- typeof responseObj['status'] === 'number' &&
541
- responseObj['status'] !== 0
542
- ) {
543
- let status = responseObj['status']
544
- let ctor = LEGACY_ERROR_CODE_TO_TYPE.get(status) || WebDriverError
545
-
546
- let value = responseObj['value']
547
-
548
- if (!value || typeof value !== 'object') {
549
- throw new ctor(value + '')
550
- } else {
551
- let message = value['message'] + ''
552
- if (ctor !== UnexpectedAlertOpenError) {
553
- throw new ctor(message)
554
- }
555
-
556
- let text = ''
557
- if (value['alert'] && typeof value['alert']['text'] === 'string') {
558
- text = value['alert']['text']
559
- }
560
- throw new UnexpectedAlertOpenError(message, text)
561
- }
562
- }
563
- return responseObj
564
- }
565
-
566
- // PUBLIC API
567
-
568
- module.exports = {
569
- ErrorCode,
570
-
571
- WebDriverError,
572
- ElementClickInterceptedError,
573
- ElementNotInteractableError,
574
- ElementNotSelectableError,
575
- InsecureCertificateError,
576
- InvalidArgumentError,
577
- InvalidCookieDomainError,
578
- InvalidCoordinatesError,
579
- InvalidElementStateError,
580
- InvalidSelectorError,
581
- JavascriptError,
582
- MoveTargetOutOfBoundsError,
583
- NoSuchAlertError,
584
- NoSuchCookieError,
585
- NoSuchElementError,
586
- NoSuchFrameError,
587
- NoSuchSessionError,
588
- NoSuchWindowError,
589
- ScriptTimeoutError,
590
- SessionNotCreatedError,
591
- StaleElementReferenceError,
592
- TimeoutError,
593
- UnableToSetCookieError,
594
- UnableToCaptureScreenError,
595
- UnexpectedAlertOpenError,
596
- UnknownCommandError,
597
- UnknownMethodError,
598
- UnsupportedOperationError,
599
-
600
- checkResponse,
601
- checkLegacyResponse,
602
- encodeError,
603
- isErrorResponse,
604
- throwDecodedError,
605
- }