UrgentcareCLI 0.1.1 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (318) hide show
  1. checksums.yaml +4 -4
  2. data/lib/UrgentCare/CLI.rb +57 -22
  3. data/lib/UrgentCare/Office.rb +1 -5
  4. data/lib/UrgentCare/Scraper.rb +71 -0
  5. data/lib/UrgentCare/version.rb +2 -2
  6. data/lib/UrgentCare.rb +2 -1
  7. metadata +27 -321
  8. data/.gitignore +0 -11
  9. data/.rspec +0 -3
  10. data/.travis.yml +0 -5
  11. data/CODE_OF_CONDUCT.md +0 -74
  12. data/Gemfile +0 -12
  13. data/Gemfile.lock +0 -84
  14. data/LICENSE.txt +0 -21
  15. data/Notes +0 -41
  16. data/README.md +0 -41
  17. data/Rakefile +0 -8
  18. data/UrgentCare.gemspec +0 -39
  19. data/background.jpg +0 -0
  20. data/data.txt +0 -4
  21. data/lib/Urgentcare/Scraper.rb +0 -78
  22. data/node_modules/.bin/rimraf +0 -1
  23. data/node_modules/.package-lock.json +0 -250
  24. data/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  25. data/node_modules/balanced-match/LICENSE.md +0 -21
  26. data/node_modules/balanced-match/README.md +0 -97
  27. data/node_modules/balanced-match/index.js +0 -62
  28. data/node_modules/balanced-match/package.json +0 -48
  29. data/node_modules/brace-expansion/LICENSE +0 -21
  30. data/node_modules/brace-expansion/README.md +0 -129
  31. data/node_modules/brace-expansion/index.js +0 -201
  32. data/node_modules/brace-expansion/package.json +0 -47
  33. data/node_modules/concat-map/.travis.yml +0 -4
  34. data/node_modules/concat-map/LICENSE +0 -18
  35. data/node_modules/concat-map/README.markdown +0 -62
  36. data/node_modules/concat-map/example/map.js +0 -6
  37. data/node_modules/concat-map/index.js +0 -13
  38. data/node_modules/concat-map/package.json +0 -43
  39. data/node_modules/concat-map/test/map.js +0 -39
  40. data/node_modules/core-util-is/LICENSE +0 -19
  41. data/node_modules/core-util-is/README.md +0 -3
  42. data/node_modules/core-util-is/float.patch +0 -604
  43. data/node_modules/core-util-is/lib/util.js +0 -107
  44. data/node_modules/core-util-is/package.json +0 -32
  45. data/node_modules/core-util-is/test.js +0 -68
  46. data/node_modules/fs.realpath/LICENSE +0 -43
  47. data/node_modules/fs.realpath/README.md +0 -33
  48. data/node_modules/fs.realpath/index.js +0 -66
  49. data/node_modules/fs.realpath/old.js +0 -303
  50. data/node_modules/fs.realpath/package.json +0 -26
  51. data/node_modules/glob/LICENSE +0 -21
  52. data/node_modules/glob/README.md +0 -375
  53. data/node_modules/glob/changelog.md +0 -67
  54. data/node_modules/glob/common.js +0 -234
  55. data/node_modules/glob/glob.js +0 -788
  56. data/node_modules/glob/package.json +0 -51
  57. data/node_modules/glob/sync.js +0 -484
  58. data/node_modules/immediate/LICENSE.txt +0 -20
  59. data/node_modules/immediate/README.md +0 -93
  60. data/node_modules/immediate/dist/immediate.js +0 -75
  61. data/node_modules/immediate/dist/immediate.min.js +0 -1
  62. data/node_modules/immediate/lib/browser.js +0 -69
  63. data/node_modules/immediate/lib/index.js +0 -73
  64. data/node_modules/immediate/package.json +0 -42
  65. data/node_modules/inflight/LICENSE +0 -15
  66. data/node_modules/inflight/README.md +0 -37
  67. data/node_modules/inflight/inflight.js +0 -54
  68. data/node_modules/inflight/package.json +0 -29
  69. data/node_modules/inherits/LICENSE +0 -16
  70. data/node_modules/inherits/README.md +0 -42
  71. data/node_modules/inherits/inherits.js +0 -9
  72. data/node_modules/inherits/inherits_browser.js +0 -27
  73. data/node_modules/inherits/package.json +0 -29
  74. data/node_modules/isarray/.npmignore +0 -1
  75. data/node_modules/isarray/.travis.yml +0 -4
  76. data/node_modules/isarray/Makefile +0 -6
  77. data/node_modules/isarray/README.md +0 -60
  78. data/node_modules/isarray/component.json +0 -19
  79. data/node_modules/isarray/index.js +0 -5
  80. data/node_modules/isarray/package.json +0 -45
  81. data/node_modules/isarray/test.js +0 -20
  82. data/node_modules/jszip/.codeclimate.yml +0 -16
  83. data/node_modules/jszip/.editorconfig +0 -8
  84. data/node_modules/jszip/.jshintignore +0 -1
  85. data/node_modules/jszip/.jshintrc +0 -21
  86. data/node_modules/jszip/.travis.yml +0 -17
  87. data/node_modules/jszip/CHANGES.md +0 -163
  88. data/node_modules/jszip/LICENSE.markdown +0 -651
  89. data/node_modules/jszip/README.markdown +0 -35
  90. data/node_modules/jszip/dist/jszip.js +0 -30
  91. data/node_modules/jszip/dist/jszip.min.js +0 -13
  92. data/node_modules/jszip/index.d.ts +0 -270
  93. data/node_modules/jszip/lib/base64.js +0 -106
  94. data/node_modules/jszip/lib/compressedObject.js +0 -74
  95. data/node_modules/jszip/lib/compressions.js +0 -14
  96. data/node_modules/jszip/lib/crc32.js +0 -77
  97. data/node_modules/jszip/lib/defaults.js +0 -11
  98. data/node_modules/jszip/lib/external.js +0 -19
  99. data/node_modules/jszip/lib/flate.js +0 -85
  100. data/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -540
  101. data/node_modules/jszip/lib/generate/index.js +0 -57
  102. data/node_modules/jszip/lib/index.js +0 -52
  103. data/node_modules/jszip/lib/license_header.js +0 -11
  104. data/node_modules/jszip/lib/load.js +0 -81
  105. data/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  106. data/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  107. data/node_modules/jszip/lib/nodejsUtils.js +0 -57
  108. data/node_modules/jszip/lib/object.js +0 -389
  109. data/node_modules/jszip/lib/readable-stream-browser.js +0 -9
  110. data/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  111. data/node_modules/jszip/lib/reader/DataReader.js +0 -116
  112. data/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  113. data/node_modules/jszip/lib/reader/StringReader.js +0 -38
  114. data/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  115. data/node_modules/jszip/lib/reader/readerFor.js +0 -28
  116. data/node_modules/jszip/lib/signature.js +0 -7
  117. data/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  118. data/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  119. data/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  120. data/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  121. data/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  122. data/node_modules/jszip/lib/stream/StreamHelper.js +0 -212
  123. data/node_modules/jszip/lib/support.js +0 -38
  124. data/node_modules/jszip/lib/utf8.js +0 -275
  125. data/node_modules/jszip/lib/utils.js +0 -476
  126. data/node_modules/jszip/lib/zipEntries.js +0 -262
  127. data/node_modules/jszip/lib/zipEntry.js +0 -294
  128. data/node_modules/jszip/lib/zipObject.js +0 -133
  129. data/node_modules/jszip/package.json +0 -63
  130. data/node_modules/jszip/vendor/FileSaver.js +0 -247
  131. data/node_modules/lie/README.md +0 -62
  132. data/node_modules/lie/dist/lie.js +0 -350
  133. data/node_modules/lie/dist/lie.min.js +0 -1
  134. data/node_modules/lie/dist/lie.polyfill.js +0 -358
  135. data/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  136. data/node_modules/lie/lib/browser.js +0 -273
  137. data/node_modules/lie/lib/index.js +0 -298
  138. data/node_modules/lie/license.md +0 -7
  139. data/node_modules/lie/lie.d.ts +0 -244
  140. data/node_modules/lie/package.json +0 -69
  141. data/node_modules/lie/polyfill.js +0 -4
  142. data/node_modules/minimatch/LICENSE +0 -15
  143. data/node_modules/minimatch/README.md +0 -209
  144. data/node_modules/minimatch/minimatch.js +0 -923
  145. data/node_modules/minimatch/package.json +0 -30
  146. data/node_modules/once/LICENSE +0 -15
  147. data/node_modules/once/README.md +0 -79
  148. data/node_modules/once/once.js +0 -42
  149. data/node_modules/once/package.json +0 -33
  150. data/node_modules/pako/CHANGELOG.md +0 -164
  151. data/node_modules/pako/LICENSE +0 -21
  152. data/node_modules/pako/README.md +0 -191
  153. data/node_modules/pako/dist/pako.js +0 -6818
  154. data/node_modules/pako/dist/pako.min.js +0 -1
  155. data/node_modules/pako/dist/pako_deflate.js +0 -3997
  156. data/node_modules/pako/dist/pako_deflate.min.js +0 -1
  157. data/node_modules/pako/dist/pako_inflate.js +0 -3300
  158. data/node_modules/pako/dist/pako_inflate.min.js +0 -1
  159. data/node_modules/pako/index.js +0 -14
  160. data/node_modules/pako/lib/deflate.js +0 -400
  161. data/node_modules/pako/lib/inflate.js +0 -423
  162. data/node_modules/pako/lib/utils/common.js +0 -105
  163. data/node_modules/pako/lib/utils/strings.js +0 -187
  164. data/node_modules/pako/lib/zlib/README +0 -59
  165. data/node_modules/pako/lib/zlib/adler32.js +0 -51
  166. data/node_modules/pako/lib/zlib/constants.js +0 -68
  167. data/node_modules/pako/lib/zlib/crc32.js +0 -59
  168. data/node_modules/pako/lib/zlib/deflate.js +0 -1874
  169. data/node_modules/pako/lib/zlib/gzheader.js +0 -58
  170. data/node_modules/pako/lib/zlib/inffast.js +0 -345
  171. data/node_modules/pako/lib/zlib/inflate.js +0 -1556
  172. data/node_modules/pako/lib/zlib/inftrees.js +0 -343
  173. data/node_modules/pako/lib/zlib/messages.js +0 -32
  174. data/node_modules/pako/lib/zlib/trees.js +0 -1222
  175. data/node_modules/pako/lib/zlib/zstream.js +0 -47
  176. data/node_modules/pako/package.json +0 -44
  177. data/node_modules/path-is-absolute/index.js +0 -20
  178. data/node_modules/path-is-absolute/license +0 -21
  179. data/node_modules/path-is-absolute/package.json +0 -43
  180. data/node_modules/path-is-absolute/readme.md +0 -59
  181. data/node_modules/process-nextick-args/index.js +0 -45
  182. data/node_modules/process-nextick-args/license.md +0 -19
  183. data/node_modules/process-nextick-args/package.json +0 -25
  184. data/node_modules/process-nextick-args/readme.md +0 -18
  185. data/node_modules/readable-stream/.travis.yml +0 -34
  186. data/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  187. data/node_modules/readable-stream/GOVERNANCE.md +0 -136
  188. data/node_modules/readable-stream/LICENSE +0 -47
  189. data/node_modules/readable-stream/README.md +0 -58
  190. data/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  191. data/node_modules/readable-stream/duplex-browser.js +0 -1
  192. data/node_modules/readable-stream/duplex.js +0 -1
  193. data/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  194. data/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  195. data/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  196. data/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  197. data/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  198. data/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  199. data/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  200. data/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  201. data/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  202. data/node_modules/readable-stream/package.json +0 -52
  203. data/node_modules/readable-stream/passthrough.js +0 -1
  204. data/node_modules/readable-stream/readable-browser.js +0 -7
  205. data/node_modules/readable-stream/readable.js +0 -19
  206. data/node_modules/readable-stream/transform.js +0 -1
  207. data/node_modules/readable-stream/writable-browser.js +0 -1
  208. data/node_modules/readable-stream/writable.js +0 -8
  209. data/node_modules/rimraf/LICENSE +0 -15
  210. data/node_modules/rimraf/README.md +0 -101
  211. data/node_modules/rimraf/bin.js +0 -50
  212. data/node_modules/rimraf/package.json +0 -29
  213. data/node_modules/rimraf/rimraf.js +0 -372
  214. data/node_modules/safe-buffer/LICENSE +0 -21
  215. data/node_modules/safe-buffer/README.md +0 -584
  216. data/node_modules/safe-buffer/index.d.ts +0 -187
  217. data/node_modules/safe-buffer/index.js +0 -62
  218. data/node_modules/safe-buffer/package.json +0 -37
  219. data/node_modules/selenium-webdriver/CHANGES.md +0 -1114
  220. data/node_modules/selenium-webdriver/LICENSE +0 -202
  221. data/node_modules/selenium-webdriver/NOTICE +0 -2
  222. data/node_modules/selenium-webdriver/README.md +0 -229
  223. data/node_modules/selenium-webdriver/chrome.js +0 -295
  224. data/node_modules/selenium-webdriver/chromium.js +0 -829
  225. data/node_modules/selenium-webdriver/devtools/CDPConnection.js +0 -35
  226. data/node_modules/selenium-webdriver/edge.js +0 -224
  227. data/node_modules/selenium-webdriver/example/chrome_android.js +0 -45
  228. data/node_modules/selenium-webdriver/example/chrome_mobile_emulation.js +0 -46
  229. data/node_modules/selenium-webdriver/example/firefox_channels.js +0 -84
  230. data/node_modules/selenium-webdriver/example/google_search.js +0 -50
  231. data/node_modules/selenium-webdriver/example/google_search_test.js +0 -70
  232. data/node_modules/selenium-webdriver/example/headless.js +0 -63
  233. data/node_modules/selenium-webdriver/example/logging.js +0 -64
  234. data/node_modules/selenium-webdriver/firefox.js +0 -789
  235. data/node_modules/selenium-webdriver/http/index.js +0 -324
  236. data/node_modules/selenium-webdriver/http/util.js +0 -172
  237. data/node_modules/selenium-webdriver/ie.js +0 -503
  238. data/node_modules/selenium-webdriver/index.js +0 -825
  239. data/node_modules/selenium-webdriver/io/exec.js +0 -162
  240. data/node_modules/selenium-webdriver/io/index.js +0 -348
  241. data/node_modules/selenium-webdriver/io/zip.js +0 -223
  242. data/node_modules/selenium-webdriver/lib/atoms/find-elements.js +0 -123
  243. data/node_modules/selenium-webdriver/lib/atoms/get-attribute.js +0 -101
  244. data/node_modules/selenium-webdriver/lib/atoms/is-displayed.js +0 -101
  245. data/node_modules/selenium-webdriver/lib/atoms/mutation-listener.js +0 -55
  246. data/node_modules/selenium-webdriver/lib/by.js +0 -415
  247. data/node_modules/selenium-webdriver/lib/capabilities.js +0 -553
  248. data/node_modules/selenium-webdriver/lib/command.js +0 -206
  249. data/node_modules/selenium-webdriver/lib/error.js +0 -605
  250. data/node_modules/selenium-webdriver/lib/http.js +0 -704
  251. data/node_modules/selenium-webdriver/lib/input.js +0 -946
  252. data/node_modules/selenium-webdriver/lib/logging.js +0 -661
  253. data/node_modules/selenium-webdriver/lib/promise.js +0 -285
  254. data/node_modules/selenium-webdriver/lib/proxy.js +0 -212
  255. data/node_modules/selenium-webdriver/lib/session.js +0 -77
  256. data/node_modules/selenium-webdriver/lib/symbols.js +0 -37
  257. data/node_modules/selenium-webdriver/lib/until.js +0 -429
  258. data/node_modules/selenium-webdriver/lib/webdriver.js +0 -2919
  259. data/node_modules/selenium-webdriver/net/index.js +0 -107
  260. data/node_modules/selenium-webdriver/net/portprober.js +0 -75
  261. data/node_modules/selenium-webdriver/opera.js +0 -406
  262. data/node_modules/selenium-webdriver/package.json +0 -54
  263. data/node_modules/selenium-webdriver/proxy.js +0 -32
  264. data/node_modules/selenium-webdriver/remote/index.js +0 -624
  265. data/node_modules/selenium-webdriver/safari.js +0 -168
  266. data/node_modules/selenium-webdriver/testing/index.js +0 -504
  267. data/node_modules/set-immediate-shim/index.js +0 -7
  268. data/node_modules/set-immediate-shim/package.json +0 -34
  269. data/node_modules/set-immediate-shim/readme.md +0 -31
  270. data/node_modules/string_decoder/.travis.yml +0 -50
  271. data/node_modules/string_decoder/LICENSE +0 -48
  272. data/node_modules/string_decoder/README.md +0 -47
  273. data/node_modules/string_decoder/lib/string_decoder.js +0 -296
  274. data/node_modules/string_decoder/package.json +0 -31
  275. data/node_modules/tmp/CHANGELOG.md +0 -288
  276. data/node_modules/tmp/LICENSE +0 -21
  277. data/node_modules/tmp/README.md +0 -365
  278. data/node_modules/tmp/lib/tmp.js +0 -780
  279. data/node_modules/tmp/node_modules/.bin/rimraf +0 -1
  280. data/node_modules/tmp/node_modules/rimraf/CHANGELOG.md +0 -65
  281. data/node_modules/tmp/node_modules/rimraf/LICENSE +0 -15
  282. data/node_modules/tmp/node_modules/rimraf/README.md +0 -101
  283. data/node_modules/tmp/node_modules/rimraf/bin.js +0 -68
  284. data/node_modules/tmp/node_modules/rimraf/package.json +0 -32
  285. data/node_modules/tmp/node_modules/rimraf/rimraf.js +0 -360
  286. data/node_modules/tmp/package.json +0 -58
  287. data/node_modules/util-deprecate/History.md +0 -16
  288. data/node_modules/util-deprecate/LICENSE +0 -24
  289. data/node_modules/util-deprecate/README.md +0 -53
  290. data/node_modules/util-deprecate/browser.js +0 -67
  291. data/node_modules/util-deprecate/node.js +0 -6
  292. data/node_modules/util-deprecate/package.json +0 -27
  293. data/node_modules/wrappy/LICENSE +0 -15
  294. data/node_modules/wrappy/README.md +0 -36
  295. data/node_modules/wrappy/package.json +0 -29
  296. data/node_modules/wrappy/wrappy.js +0 -33
  297. data/node_modules/ws/LICENSE +0 -21
  298. data/node_modules/ws/README.md +0 -496
  299. data/node_modules/ws/browser.js +0 -8
  300. data/node_modules/ws/index.js +0 -10
  301. data/node_modules/ws/lib/buffer-util.js +0 -129
  302. data/node_modules/ws/lib/constants.js +0 -10
  303. data/node_modules/ws/lib/event-target.js +0 -184
  304. data/node_modules/ws/lib/extension.js +0 -223
  305. data/node_modules/ws/lib/limiter.js +0 -55
  306. data/node_modules/ws/lib/permessage-deflate.js +0 -517
  307. data/node_modules/ws/lib/receiver.js +0 -507
  308. data/node_modules/ws/lib/sender.js +0 -405
  309. data/node_modules/ws/lib/stream.js +0 -165
  310. data/node_modules/ws/lib/validation.js +0 -104
  311. data/node_modules/ws/lib/websocket-server.js +0 -418
  312. data/node_modules/ws/lib/websocket.js +0 -942
  313. data/node_modules/ws/package.json +0 -56
  314. data/package-lock.json +0 -458
  315. data/package.json +0 -5
  316. data/selenium.log +0 -1
  317. data/spec.md +0 -6
  318. data/test.data +0 -2110
@@ -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
- }