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,77 +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
- const { Capabilities } = require('./capabilities')
21
-
22
- /**
23
- * Contains information about a single WebDriver session.
24
- */
25
- class Session {
26
- /**
27
- * @param {string} id The session ID.
28
- * @param {!./capabilities.Capabilities} capabilities
29
- * The session capabilities.
30
- */
31
- constructor(id, capabilities) {
32
- /** @private {string} */
33
- this.id_ = id
34
-
35
- /** @private {!Capabilities} */
36
- this.caps_ =
37
- capabilities instanceof Capabilities
38
- ? /** @type {!Capabilities} */ (capabilities)
39
- : new Capabilities(capabilities)
40
- }
41
-
42
- /**
43
- * @return {string} This session's ID.
44
- */
45
- getId() {
46
- return this.id_
47
- }
48
-
49
- /**
50
- * @return {!Capabilities} This session's capabilities.
51
- */
52
- getCapabilities() {
53
- return this.caps_
54
- }
55
-
56
- /**
57
- * Retrieves the value of a specific capability.
58
- * @param {string} key The capability to retrieve.
59
- * @return {*} The capability value.
60
- */
61
- getCapability(key) {
62
- return this.caps_.get(key)
63
- }
64
-
65
- /**
66
- * Returns the JSON representation of this object, which is just the string
67
- * session ID.
68
- * @return {string} The JSON representation of this Session.
69
- */
70
- toJSON() {
71
- return this.getId()
72
- }
73
- }
74
-
75
- // PUBLIC API
76
-
77
- module.exports = { Session: Session }
@@ -1,37 +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
- * @fileoverview Defines well-known symbols used within the selenium-webdriver
22
- * library.
23
- */
24
-
25
- module.exports = {
26
- /**
27
- * The serialize symbol specifies a method that returns an object's serialized
28
- * representation. If an object's serialized form is not immediately
29
- * available, the serialize method will return a promise that will be resolved
30
- * with the serialized form.
31
- *
32
- * Note that the described method is analogous to objects that define a
33
- * `toJSON()` method, except the serialized result may be a promise, or
34
- * another object with a promised property.
35
- */
36
- serialize: Symbol('serialize'),
37
- }
@@ -1,429 +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 Defines common conditions for use with
20
- * {@link webdriver.WebDriver#wait WebDriver wait}.
21
- *
22
- * Sample usage:
23
- *
24
- * driver.get('http://www.google.com/ncr');
25
- *
26
- * var query = driver.wait(until.elementLocated(By.name('q')));
27
- * query.sendKeys('webdriver\n');
28
- *
29
- * driver.wait(until.titleIs('webdriver - Google Search'));
30
- *
31
- * To define a custom condition, simply call WebDriver.wait with a function
32
- * that will eventually return a truthy-value (neither null, undefined, false,
33
- * 0, or the empty string):
34
- *
35
- * driver.wait(function() {
36
- * return driver.getTitle().then(function(title) {
37
- * return title === 'webdriver - Google Search';
38
- * });
39
- * }, 1000);
40
- */
41
-
42
- 'use strict'
43
-
44
- const by = require('./by')
45
- const error = require('./error')
46
- const webdriver = require('./webdriver'),
47
- Condition = webdriver.Condition,
48
- WebElementCondition = webdriver.WebElementCondition
49
-
50
- /**
51
- * Creates a condition that will wait until the input driver is able to switch
52
- * to the designated frame. The target frame may be specified as
53
- *
54
- * 1. a numeric index into
55
- * [window.frames](https://developer.mozilla.org/en-US/docs/Web/API/Window.frames)
56
- * for the currently selected frame.
57
- * 2. a {@link ./webdriver.WebElement}, which must reference a FRAME or IFRAME
58
- * element on the current page.
59
- * 3. a locator which may be used to first locate a FRAME or IFRAME on the
60
- * current page before attempting to switch to it.
61
- *
62
- * Upon successful resolution of this condition, the driver will be left
63
- * focused on the new frame.
64
- *
65
- * @param {!(number|./webdriver.WebElement|By|
66
- * function(!./webdriver.WebDriver): !./webdriver.WebElement)} frame
67
- * The frame identifier.
68
- * @return {!Condition<boolean>} A new condition.
69
- */
70
- exports.ableToSwitchToFrame = function ableToSwitchToFrame(frame) {
71
- let condition
72
- if (typeof frame === 'number' || frame instanceof webdriver.WebElement) {
73
- condition = (driver) => attemptToSwitchFrames(driver, frame)
74
- } else {
75
- condition = function (driver) {
76
- let locator = /** @type {!(By|Function)} */ (frame)
77
- return driver.findElements(locator).then(function (els) {
78
- if (els.length) {
79
- return attemptToSwitchFrames(driver, els[0])
80
- }
81
- })
82
- }
83
- }
84
-
85
- return new Condition('to be able to switch to frame', condition)
86
-
87
- function attemptToSwitchFrames(driver, frame) {
88
- return driver
89
- .switchTo()
90
- .frame(frame)
91
- .then(
92
- function () {
93
- return true
94
- },
95
- function (e) {
96
- if (!(e instanceof error.NoSuchFrameError)) {
97
- throw e
98
- }
99
- }
100
- )
101
- }
102
- }
103
-
104
- /**
105
- * Creates a condition that waits for an alert to be opened. Upon success, the
106
- * returned promise will be fulfilled with the handle for the opened alert.
107
- *
108
- * @return {!Condition<!./webdriver.Alert>} The new condition.
109
- */
110
- exports.alertIsPresent = function alertIsPresent() {
111
- return new Condition('for alert to be present', function (driver) {
112
- return driver
113
- .switchTo()
114
- .alert()
115
- .catch(function (e) {
116
- if (
117
- !(
118
- e instanceof error.NoSuchAlertError ||
119
- // XXX: Workaround for GeckoDriver error `TypeError: can't convert null
120
- // to object`. For more details, see
121
- // https://github.com/SeleniumHQ/selenium/pull/2137
122
- (e instanceof error.WebDriverError &&
123
- e.message === `can't convert null to object`)
124
- )
125
- ) {
126
- throw e
127
- }
128
- })
129
- })
130
- }
131
-
132
- /**
133
- * Creates a condition that will wait for the current page's title to match the
134
- * given value.
135
- *
136
- * @param {string} title The expected page title.
137
- * @return {!Condition<boolean>} The new condition.
138
- */
139
- exports.titleIs = function titleIs(title) {
140
- return new Condition(
141
- 'for title to be ' + JSON.stringify(title),
142
- function (driver) {
143
- return driver.getTitle().then(function (t) {
144
- return t === title
145
- })
146
- }
147
- )
148
- }
149
-
150
- /**
151
- * Creates a condition that will wait for the current page's title to contain
152
- * the given substring.
153
- *
154
- * @param {string} substr The substring that should be present in the page
155
- * title.
156
- * @return {!Condition<boolean>} The new condition.
157
- */
158
- exports.titleContains = function titleContains(substr) {
159
- return new Condition(
160
- 'for title to contain ' + JSON.stringify(substr),
161
- function (driver) {
162
- return driver.getTitle().then(function (title) {
163
- return title.indexOf(substr) !== -1
164
- })
165
- }
166
- )
167
- }
168
-
169
- /**
170
- * Creates a condition that will wait for the current page's title to match the
171
- * given regular expression.
172
- *
173
- * @param {!RegExp} regex The regular expression to test against.
174
- * @return {!Condition<boolean>} The new condition.
175
- */
176
- exports.titleMatches = function titleMatches(regex) {
177
- return new Condition('for title to match ' + regex, function (driver) {
178
- return driver.getTitle().then(function (title) {
179
- return regex.test(title)
180
- })
181
- })
182
- }
183
-
184
- /**
185
- * Creates a condition that will wait for the current page's url to match the
186
- * given value.
187
- *
188
- * @param {string} url The expected page url.
189
- * @return {!Condition<boolean>} The new condition.
190
- */
191
- exports.urlIs = function urlIs(url) {
192
- return new Condition(
193
- 'for URL to be ' + JSON.stringify(url),
194
- function (driver) {
195
- return driver.getCurrentUrl().then(function (u) {
196
- return u === url
197
- })
198
- }
199
- )
200
- }
201
-
202
- /**
203
- * Creates a condition that will wait for the current page's url to contain
204
- * the given substring.
205
- *
206
- * @param {string} substrUrl The substring that should be present in the current
207
- * URL.
208
- * @return {!Condition<boolean>} The new condition.
209
- */
210
- exports.urlContains = function urlContains(substrUrl) {
211
- return new Condition(
212
- 'for URL to contain ' + JSON.stringify(substrUrl),
213
- function (driver) {
214
- return driver.getCurrentUrl().then(function (url) {
215
- return url && url.indexOf(substrUrl) !== -1
216
- })
217
- }
218
- )
219
- }
220
-
221
- /**
222
- * Creates a condition that will wait for the current page's url to match the
223
- * given regular expression.
224
- *
225
- * @param {!RegExp} regex The regular expression to test against.
226
- * @return {!Condition<boolean>} The new condition.
227
- */
228
- exports.urlMatches = function urlMatches(regex) {
229
- return new Condition('for URL to match ' + regex, function (driver) {
230
- return driver.getCurrentUrl().then(function (url) {
231
- return regex.test(url)
232
- })
233
- })
234
- }
235
-
236
- /**
237
- * Creates a condition that will loop until an element is
238
- * {@link ./webdriver.WebDriver#findElement found} with the given locator.
239
- *
240
- * @param {!(By|Function)} locator The locator to use.
241
- * @return {!WebElementCondition} The new condition.
242
- */
243
- exports.elementLocated = function elementLocated(locator) {
244
- locator = by.checkedLocator(locator)
245
- let locatorStr =
246
- typeof locator === 'function' ? 'by function()' : locator + ''
247
- return new WebElementCondition(
248
- 'for element to be located ' + locatorStr,
249
- function (driver) {
250
- return driver.findElements(locator).then(function (elements) {
251
- return elements[0]
252
- })
253
- }
254
- )
255
- }
256
-
257
- /**
258
- * Creates a condition that will loop until at least one element is
259
- * {@link ./webdriver.WebDriver#findElement found} with the given locator.
260
- *
261
- * @param {!(By|Function)} locator The locator to use.
262
- * @return {!Condition<!Array<!./webdriver.WebElement>>} The new
263
- * condition.
264
- */
265
- exports.elementsLocated = function elementsLocated(locator) {
266
- locator = by.checkedLocator(locator)
267
- let locatorStr =
268
- typeof locator === 'function' ? 'by function()' : locator + ''
269
- return new Condition(
270
- 'for at least one element to be located ' + locatorStr,
271
- function (driver) {
272
- return driver.findElements(locator).then(function (elements) {
273
- return elements.length > 0 ? elements : null
274
- })
275
- }
276
- )
277
- }
278
-
279
- /**
280
- * Creates a condition that will wait for the given element to become stale. An
281
- * element is considered stale once it is removed from the DOM, or a new page
282
- * has loaded.
283
- *
284
- * @param {!./webdriver.WebElement} element The element that should become stale.
285
- * @return {!Condition<boolean>} The new condition.
286
- */
287
- exports.stalenessOf = function stalenessOf(element) {
288
- return new Condition('element to become stale', function () {
289
- return element.getTagName().then(
290
- function () {
291
- return false
292
- },
293
- function (e) {
294
- if (e instanceof error.StaleElementReferenceError) {
295
- return true
296
- }
297
- throw e
298
- }
299
- )
300
- })
301
- }
302
-
303
- /**
304
- * Creates a condition that will wait for the given element to become visible.
305
- *
306
- * @param {!./webdriver.WebElement} element The element to test.
307
- * @return {!WebElementCondition} The new condition.
308
- * @see ./webdriver.WebDriver#isDisplayed
309
- */
310
- exports.elementIsVisible = function elementIsVisible(element) {
311
- return new WebElementCondition('until element is visible', function () {
312
- return element.isDisplayed().then((v) => (v ? element : null))
313
- })
314
- }
315
-
316
- /**
317
- * Creates a condition that will wait for the given element to be in the DOM,
318
- * yet not visible to the user.
319
- *
320
- * @param {!./webdriver.WebElement} element The element to test.
321
- * @return {!WebElementCondition} The new condition.
322
- * @see ./webdriver.WebDriver#isDisplayed
323
- */
324
- exports.elementIsNotVisible = function elementIsNotVisible(element) {
325
- return new WebElementCondition('until element is not visible', function () {
326
- return element.isDisplayed().then((v) => (v ? null : element))
327
- })
328
- }
329
-
330
- /**
331
- * Creates a condition that will wait for the given element to be enabled.
332
- *
333
- * @param {!./webdriver.WebElement} element The element to test.
334
- * @return {!WebElementCondition} The new condition.
335
- * @see webdriver.WebDriver#isEnabled
336
- */
337
- exports.elementIsEnabled = function elementIsEnabled(element) {
338
- return new WebElementCondition('until element is enabled', function () {
339
- return element.isEnabled().then((v) => (v ? element : null))
340
- })
341
- }
342
-
343
- /**
344
- * Creates a condition that will wait for the given element to be disabled.
345
- *
346
- * @param {!./webdriver.WebElement} element The element to test.
347
- * @return {!WebElementCondition} The new condition.
348
- * @see webdriver.WebDriver#isEnabled
349
- */
350
- exports.elementIsDisabled = function elementIsDisabled(element) {
351
- return new WebElementCondition('until element is disabled', function () {
352
- return element.isEnabled().then((v) => (v ? null : element))
353
- })
354
- }
355
-
356
- /**
357
- * Creates a condition that will wait for the given element to be selected.
358
- * @param {!./webdriver.WebElement} element The element to test.
359
- * @return {!WebElementCondition} The new condition.
360
- * @see webdriver.WebDriver#isSelected
361
- */
362
- exports.elementIsSelected = function elementIsSelected(element) {
363
- return new WebElementCondition('until element is selected', function () {
364
- return element.isSelected().then((v) => (v ? element : null))
365
- })
366
- }
367
-
368
- /**
369
- * Creates a condition that will wait for the given element to be deselected.
370
- *
371
- * @param {!./webdriver.WebElement} element The element to test.
372
- * @return {!WebElementCondition} The new condition.
373
- * @see webdriver.WebDriver#isSelected
374
- */
375
- exports.elementIsNotSelected = function elementIsNotSelected(element) {
376
- return new WebElementCondition('until element is not selected', function () {
377
- return element.isSelected().then((v) => (v ? null : element))
378
- })
379
- }
380
-
381
- /**
382
- * Creates a condition that will wait for the given element's
383
- * {@link webdriver.WebDriver#getText visible text} to match the given
384
- * {@code text} exactly.
385
- *
386
- * @param {!./webdriver.WebElement} element The element to test.
387
- * @param {string} text The expected text.
388
- * @return {!WebElementCondition} The new condition.
389
- * @see webdriver.WebDriver#getText
390
- */
391
- exports.elementTextIs = function elementTextIs(element, text) {
392
- return new WebElementCondition('until element text is', function () {
393
- return element.getText().then((t) => (t === text ? element : null))
394
- })
395
- }
396
-
397
- /**
398
- * Creates a condition that will wait for the given element's
399
- * {@link webdriver.WebDriver#getText visible text} to contain the given
400
- * substring.
401
- *
402
- * @param {!./webdriver.WebElement} element The element to test.
403
- * @param {string} substr The substring to search for.
404
- * @return {!WebElementCondition} The new condition.
405
- * @see webdriver.WebDriver#getText
406
- */
407
- exports.elementTextContains = function elementTextContains(element, substr) {
408
- return new WebElementCondition('until element text contains', function () {
409
- return element
410
- .getText()
411
- .then((t) => (t.indexOf(substr) != -1 ? element : null))
412
- })
413
- }
414
-
415
- /**
416
- * Creates a condition that will wait for the given element's
417
- * {@link webdriver.WebDriver#getText visible text} to match a regular
418
- * expression.
419
- *
420
- * @param {!./webdriver.WebElement} element The element to test.
421
- * @param {!RegExp} regex The regular expression to test against.
422
- * @return {!WebElementCondition} The new condition.
423
- * @see webdriver.WebDriver#getText
424
- */
425
- exports.elementTextMatches = function elementTextMatches(element, regex) {
426
- return new WebElementCondition('until element text matches', function () {
427
- return element.getText().then((t) => (regex.test(t) ? element : null))
428
- })
429
- }