selenium-webdriver 4.0.0.alpha3 → 4.0.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +160 -5
  3. data/LICENSE +1 -1
  4. data/README.md +4 -5
  5. data/lib/selenium/server.rb +19 -27
  6. data/lib/selenium/webdriver.rb +3 -3
  7. data/lib/selenium/webdriver/atoms/findElements.js +123 -0
  8. data/lib/selenium/webdriver/atoms/getAttribute.js +104 -7
  9. data/lib/selenium/webdriver/atoms/isDisplayed.js +76 -78
  10. data/lib/selenium/webdriver/atoms/mutationListener.js +38 -0
  11. data/lib/selenium/webdriver/chrome.rb +4 -2
  12. data/lib/selenium/webdriver/chrome/bridge.rb +4 -6
  13. data/lib/selenium/webdriver/chrome/driver.rb +19 -17
  14. data/lib/selenium/webdriver/chrome/features.rb +66 -0
  15. data/lib/selenium/webdriver/chrome/options.rb +55 -38
  16. data/lib/selenium/webdriver/chrome/profile.rb +1 -1
  17. data/lib/selenium/webdriver/chrome/service.rb +1 -5
  18. data/lib/selenium/webdriver/common.rb +7 -2
  19. data/lib/selenium/webdriver/common/driver.rb +84 -21
  20. data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +89 -0
  21. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +38 -0
  22. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
  23. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +149 -0
  24. data/lib/selenium/webdriver/{edge_chrome/bridge.rb → common/driver_extensions/has_logs.rb} +7 -7
  25. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +4 -27
  26. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +1 -0
  27. data/lib/selenium/webdriver/common/driver_extensions/prints_page.rb +32 -0
  28. data/lib/selenium/webdriver/common/element.rb +5 -0
  29. data/lib/selenium/webdriver/common/logger.rb +48 -16
  30. data/lib/selenium/webdriver/common/manager.rb +11 -1
  31. data/lib/selenium/webdriver/common/options.rb +53 -12
  32. data/lib/selenium/webdriver/common/platform.rb +6 -1
  33. data/lib/selenium/webdriver/common/port_prober.rb +4 -6
  34. data/lib/selenium/webdriver/common/proxy.rb +0 -0
  35. data/lib/selenium/webdriver/common/search_context.rb +3 -2
  36. data/lib/selenium/webdriver/common/service.rb +12 -127
  37. data/lib/selenium/webdriver/common/service_manager.rb +151 -0
  38. data/lib/selenium/webdriver/common/socket_lock.rb +2 -2
  39. data/lib/selenium/webdriver/common/takes_screenshot.rb +63 -0
  40. data/lib/selenium/webdriver/common/target_locator.rb +4 -4
  41. data/lib/selenium/webdriver/common/wait.rb +1 -1
  42. data/lib/selenium/webdriver/devtools.rb +135 -0
  43. data/lib/selenium/webdriver/devtools/console_event.rb +38 -0
  44. data/lib/selenium/webdriver/devtools/exception_event.rb +36 -0
  45. data/lib/selenium/webdriver/devtools/mutation_event.rb +37 -0
  46. data/lib/selenium/webdriver/devtools/v85/accessibility.rb +64 -0
  47. data/lib/selenium/webdriver/devtools/v85/animation.rb +100 -0
  48. data/lib/selenium/webdriver/devtools/v85/application_cache.rb +66 -0
  49. data/lib/selenium/webdriver/devtools/v85/audits.rb +63 -0
  50. data/lib/selenium/webdriver/devtools/v85/background_service.rb +69 -0
  51. data/lib/selenium/webdriver/devtools/v85/browser.rb +125 -0
  52. data/lib/selenium/webdriver/devtools/v85/cache_storage.rb +75 -0
  53. data/lib/selenium/webdriver/devtools/v85/cast.rb +72 -0
  54. data/lib/selenium/webdriver/devtools/v85/console.rb +59 -0
  55. data/lib/selenium/webdriver/devtools/v85/css.rb +167 -0
  56. data/lib/selenium/webdriver/devtools/v85/database.rb +66 -0
  57. data/lib/selenium/webdriver/devtools/v85/debugger.rb +231 -0
  58. data/lib/selenium/webdriver/devtools/v85/device_orientation.rb +55 -0
  59. data/lib/selenium/webdriver/devtools/v85/dom.rb +322 -0
  60. data/lib/selenium/webdriver/devtools/v85/dom_debugger.rb +95 -0
  61. data/lib/selenium/webdriver/devtools/v85/dom_snapshot.rb +67 -0
  62. data/lib/selenium/webdriver/devtools/v85/dom_storage.rb +81 -0
  63. data/lib/selenium/webdriver/devtools/v85/emulation.rb +182 -0
  64. data/lib/selenium/webdriver/devtools/v85/fetch.rb +99 -0
  65. data/lib/selenium/webdriver/devtools/v85/headless_experimental.rb +63 -0
  66. data/lib/selenium/webdriver/devtools/v85/heap_profiler.rb +109 -0
  67. data/lib/selenium/webdriver/devtools/v85/indexed_db.rb +102 -0
  68. data/lib/selenium/webdriver/devtools/v85/input.rb +143 -0
  69. data/lib/selenium/webdriver/devtools/v85/inspector.rb +57 -0
  70. data/lib/selenium/webdriver/devtools/v85/io.rb +61 -0
  71. data/lib/selenium/webdriver/devtools/v85/layer_tree.rb +97 -0
  72. data/lib/selenium/webdriver/devtools/v85/log.rb +68 -0
  73. data/lib/selenium/webdriver/devtools/v85/media.rb +59 -0
  74. data/lib/selenium/webdriver/devtools/v85/memory.rb +88 -0
  75. data/lib/selenium/webdriver/devtools/v85/network.rb +230 -0
  76. data/lib/selenium/webdriver/devtools/v85/overlay.rb +160 -0
  77. data/lib/selenium/webdriver/devtools/v85/page.rb +376 -0
  78. data/lib/selenium/webdriver/devtools/v85/performance.rb +65 -0
  79. data/lib/selenium/webdriver/devtools/v85/profiler.rb +113 -0
  80. data/lib/selenium/webdriver/devtools/v85/runtime.rb +196 -0
  81. data/lib/selenium/webdriver/devtools/v85/schema.rb +48 -0
  82. data/lib/selenium/webdriver/devtools/v85/security.rb +73 -0
  83. data/lib/selenium/webdriver/devtools/v85/service_worker.rb +118 -0
  84. data/lib/selenium/webdriver/devtools/v85/storage.rb +97 -0
  85. data/lib/selenium/webdriver/devtools/v85/system_info.rb +52 -0
  86. data/lib/selenium/webdriver/devtools/v85/target.rb +145 -0
  87. data/lib/selenium/webdriver/devtools/v85/tethering.rb +57 -0
  88. data/lib/selenium/webdriver/devtools/v85/tracing.rb +78 -0
  89. data/lib/selenium/webdriver/devtools/v85/web_audio.rb +72 -0
  90. data/lib/selenium/webdriver/devtools/v85/web_authn.rb +96 -0
  91. data/lib/selenium/webdriver/devtools/v86/accessibility.rb +64 -0
  92. data/lib/selenium/webdriver/devtools/v86/animation.rb +100 -0
  93. data/lib/selenium/webdriver/devtools/v86/application_cache.rb +66 -0
  94. data/lib/selenium/webdriver/devtools/v86/audits.rb +63 -0
  95. data/lib/selenium/webdriver/devtools/v86/background_service.rb +69 -0
  96. data/lib/selenium/webdriver/devtools/v86/browser.rb +125 -0
  97. data/lib/selenium/webdriver/devtools/v86/cache_storage.rb +75 -0
  98. data/lib/selenium/webdriver/devtools/v86/cast.rb +72 -0
  99. data/lib/selenium/webdriver/devtools/v86/console.rb +59 -0
  100. data/lib/selenium/webdriver/devtools/v86/css.rb +181 -0
  101. data/lib/selenium/webdriver/devtools/v86/database.rb +66 -0
  102. data/lib/selenium/webdriver/devtools/v86/debugger.rb +233 -0
  103. data/lib/selenium/webdriver/devtools/v86/device_orientation.rb +55 -0
  104. data/lib/selenium/webdriver/devtools/v86/dom.rb +329 -0
  105. data/lib/selenium/webdriver/devtools/v86/dom_debugger.rb +95 -0
  106. data/lib/selenium/webdriver/devtools/v86/dom_snapshot.rb +67 -0
  107. data/lib/selenium/webdriver/devtools/v86/dom_storage.rb +81 -0
  108. data/lib/selenium/webdriver/devtools/v86/emulation.rb +193 -0
  109. data/lib/selenium/webdriver/devtools/v86/fetch.rb +99 -0
  110. data/lib/selenium/webdriver/devtools/v86/headless_experimental.rb +63 -0
  111. data/lib/selenium/webdriver/devtools/v86/heap_profiler.rb +109 -0
  112. data/lib/selenium/webdriver/devtools/v86/indexed_db.rb +102 -0
  113. data/lib/selenium/webdriver/devtools/v86/input.rb +143 -0
  114. data/lib/selenium/webdriver/devtools/v86/inspector.rb +57 -0
  115. data/lib/selenium/webdriver/devtools/v86/io.rb +61 -0
  116. data/lib/selenium/webdriver/devtools/v86/layer_tree.rb +97 -0
  117. data/lib/selenium/webdriver/devtools/v86/log.rb +68 -0
  118. data/lib/selenium/webdriver/devtools/v86/media.rb +59 -0
  119. data/lib/selenium/webdriver/devtools/v86/memory.rb +88 -0
  120. data/lib/selenium/webdriver/devtools/v86/network.rb +235 -0
  121. data/lib/selenium/webdriver/devtools/v86/overlay.rb +183 -0
  122. data/lib/selenium/webdriver/devtools/v86/page.rb +376 -0
  123. data/lib/selenium/webdriver/devtools/v86/performance.rb +65 -0
  124. data/lib/selenium/webdriver/devtools/v86/profiler.rb +113 -0
  125. data/lib/selenium/webdriver/devtools/v86/runtime.rb +196 -0
  126. data/lib/selenium/webdriver/devtools/v86/schema.rb +48 -0
  127. data/lib/selenium/webdriver/devtools/v86/security.rb +73 -0
  128. data/lib/selenium/webdriver/devtools/v86/service_worker.rb +118 -0
  129. data/lib/selenium/webdriver/devtools/v86/storage.rb +97 -0
  130. data/lib/selenium/webdriver/devtools/v86/system_info.rb +52 -0
  131. data/lib/selenium/webdriver/devtools/v86/target.rb +145 -0
  132. data/lib/selenium/webdriver/devtools/v86/tethering.rb +57 -0
  133. data/lib/selenium/webdriver/devtools/v86/tracing.rb +78 -0
  134. data/lib/selenium/webdriver/devtools/v86/web_audio.rb +72 -0
  135. data/lib/selenium/webdriver/devtools/v86/web_authn.rb +102 -0
  136. data/lib/selenium/webdriver/devtools/v87/accessibility.rb +73 -0
  137. data/lib/selenium/webdriver/devtools/v87/animation.rb +100 -0
  138. data/lib/selenium/webdriver/devtools/v87/application_cache.rb +66 -0
  139. data/lib/selenium/webdriver/devtools/v87/audits.rb +63 -0
  140. data/lib/selenium/webdriver/devtools/v87/background_service.rb +69 -0
  141. data/lib/selenium/webdriver/devtools/v87/browser.rb +125 -0
  142. data/lib/selenium/webdriver/devtools/v87/cache_storage.rb +75 -0
  143. data/lib/selenium/webdriver/devtools/v87/cast.rb +72 -0
  144. data/lib/selenium/webdriver/{edge_html/driver.rb → devtools/v87/console.rb} +36 -30
  145. data/lib/selenium/webdriver/devtools/v87/css.rb +181 -0
  146. data/lib/selenium/webdriver/devtools/v87/database.rb +66 -0
  147. data/lib/selenium/webdriver/devtools/v87/debugger.rb +233 -0
  148. data/lib/selenium/webdriver/devtools/v87/device_orientation.rb +55 -0
  149. data/lib/selenium/webdriver/devtools/v87/dom.rb +329 -0
  150. data/lib/selenium/webdriver/devtools/v87/dom_debugger.rb +95 -0
  151. data/lib/selenium/webdriver/devtools/v87/dom_snapshot.rb +67 -0
  152. data/lib/selenium/webdriver/devtools/v87/dom_storage.rb +81 -0
  153. data/lib/selenium/webdriver/devtools/v87/emulation.rb +193 -0
  154. data/lib/selenium/webdriver/devtools/v87/fetch.rb +99 -0
  155. data/lib/selenium/webdriver/devtools/v87/headless_experimental.rb +63 -0
  156. data/lib/selenium/webdriver/devtools/v87/heap_profiler.rb +109 -0
  157. data/lib/selenium/webdriver/devtools/v87/indexed_db.rb +102 -0
  158. data/lib/selenium/webdriver/devtools/v87/input.rb +143 -0
  159. data/lib/selenium/webdriver/devtools/v87/inspector.rb +57 -0
  160. data/lib/selenium/webdriver/devtools/v87/io.rb +61 -0
  161. data/lib/selenium/webdriver/devtools/v87/layer_tree.rb +97 -0
  162. data/lib/selenium/webdriver/devtools/v87/log.rb +68 -0
  163. data/lib/selenium/webdriver/devtools/v87/media.rb +59 -0
  164. data/lib/selenium/webdriver/devtools/v87/memory.rb +88 -0
  165. data/lib/selenium/webdriver/devtools/v87/network.rb +247 -0
  166. data/lib/selenium/webdriver/devtools/v87/overlay.rb +183 -0
  167. data/lib/selenium/webdriver/devtools/v87/page.rb +376 -0
  168. data/lib/selenium/webdriver/devtools/v87/performance.rb +65 -0
  169. data/lib/selenium/webdriver/devtools/v87/profiler.rb +125 -0
  170. data/lib/selenium/webdriver/devtools/v87/runtime.rb +196 -0
  171. data/lib/selenium/webdriver/devtools/v87/schema.rb +48 -0
  172. data/lib/selenium/webdriver/devtools/v87/security.rb +73 -0
  173. data/lib/selenium/webdriver/devtools/v87/service_worker.rb +118 -0
  174. data/lib/selenium/webdriver/devtools/v87/storage.rb +97 -0
  175. data/lib/selenium/webdriver/devtools/v87/system_info.rb +52 -0
  176. data/lib/selenium/webdriver/devtools/v87/target.rb +145 -0
  177. data/lib/selenium/webdriver/devtools/v87/tethering.rb +57 -0
  178. data/lib/selenium/webdriver/devtools/v87/tracing.rb +78 -0
  179. data/lib/selenium/webdriver/devtools/v87/web_audio.rb +72 -0
  180. data/lib/selenium/webdriver/devtools/v87/web_authn.rb +102 -0
  181. data/lib/selenium/webdriver/devtools/v88/accessibility.rb +73 -0
  182. data/lib/selenium/webdriver/devtools/v88/animation.rb +100 -0
  183. data/lib/selenium/webdriver/devtools/v88/application_cache.rb +66 -0
  184. data/lib/selenium/webdriver/devtools/v88/audits.rb +63 -0
  185. data/lib/selenium/webdriver/devtools/v88/background_service.rb +69 -0
  186. data/lib/selenium/webdriver/devtools/v88/browser.rb +130 -0
  187. data/lib/selenium/webdriver/devtools/v88/cache_storage.rb +75 -0
  188. data/lib/selenium/webdriver/devtools/v88/cast.rb +72 -0
  189. data/lib/selenium/webdriver/devtools/v88/console.rb +59 -0
  190. data/lib/selenium/webdriver/devtools/v88/css.rb +181 -0
  191. data/lib/selenium/webdriver/devtools/v88/database.rb +66 -0
  192. data/lib/selenium/webdriver/devtools/v88/debugger.rb +233 -0
  193. data/lib/selenium/webdriver/devtools/v88/device_orientation.rb +55 -0
  194. data/lib/selenium/webdriver/devtools/v88/dom.rb +329 -0
  195. data/lib/selenium/webdriver/devtools/v88/dom_debugger.rb +95 -0
  196. data/lib/selenium/webdriver/devtools/v88/dom_snapshot.rb +67 -0
  197. data/lib/selenium/webdriver/devtools/v88/dom_storage.rb +81 -0
  198. data/lib/selenium/webdriver/devtools/v88/emulation.rb +198 -0
  199. data/lib/selenium/webdriver/devtools/v88/fetch.rb +99 -0
  200. data/lib/selenium/webdriver/devtools/v88/headless_experimental.rb +63 -0
  201. data/lib/selenium/webdriver/devtools/v88/heap_profiler.rb +109 -0
  202. data/lib/selenium/webdriver/devtools/v88/indexed_db.rb +102 -0
  203. data/lib/selenium/webdriver/devtools/v88/input.rb +148 -0
  204. data/lib/selenium/webdriver/devtools/v88/inspector.rb +57 -0
  205. data/lib/selenium/webdriver/devtools/v88/io.rb +61 -0
  206. data/lib/selenium/webdriver/devtools/v88/layer_tree.rb +97 -0
  207. data/lib/selenium/webdriver/devtools/v88/log.rb +68 -0
  208. data/lib/selenium/webdriver/devtools/v88/media.rb +59 -0
  209. data/lib/selenium/webdriver/devtools/v88/memory.rb +88 -0
  210. data/lib/selenium/webdriver/devtools/v88/network.rb +247 -0
  211. data/lib/selenium/webdriver/devtools/v88/overlay.rb +183 -0
  212. data/lib/selenium/webdriver/devtools/v88/page.rb +376 -0
  213. data/lib/selenium/webdriver/devtools/v88/performance.rb +65 -0
  214. data/lib/selenium/webdriver/devtools/v88/profiler.rb +125 -0
  215. data/lib/selenium/webdriver/devtools/v88/runtime.rb +197 -0
  216. data/lib/selenium/webdriver/devtools/v88/schema.rb +48 -0
  217. data/lib/selenium/webdriver/devtools/v88/security.rb +73 -0
  218. data/lib/selenium/webdriver/devtools/v88/service_worker.rb +118 -0
  219. data/lib/selenium/webdriver/devtools/v88/storage.rb +103 -0
  220. data/lib/selenium/webdriver/devtools/v88/system_info.rb +52 -0
  221. data/lib/selenium/webdriver/devtools/v88/target.rb +145 -0
  222. data/lib/selenium/webdriver/devtools/v88/tethering.rb +57 -0
  223. data/lib/selenium/webdriver/devtools/v88/tracing.rb +79 -0
  224. data/lib/selenium/webdriver/devtools/v88/web_audio.rb +72 -0
  225. data/lib/selenium/webdriver/devtools/v88/web_authn.rb +102 -0
  226. data/lib/selenium/webdriver/edge.rb +7 -27
  227. data/lib/selenium/webdriver/edge/bridge.rb +37 -0
  228. data/lib/selenium/webdriver/{edge_chrome → edge}/driver.rb +14 -4
  229. data/lib/selenium/webdriver/edge/features.rb +39 -0
  230. data/lib/selenium/webdriver/{edge_chrome → edge}/options.rb +12 -3
  231. data/lib/selenium/webdriver/{edge_chrome → edge}/profile.rb +2 -2
  232. data/lib/selenium/webdriver/{edge_chrome → edge}/service.rb +2 -6
  233. data/lib/selenium/webdriver/firefox.rb +10 -4
  234. data/lib/selenium/webdriver/firefox/bridge.rb +1 -1
  235. data/lib/selenium/webdriver/firefox/driver.rb +14 -14
  236. data/lib/selenium/webdriver/firefox/features.rb +47 -0
  237. data/lib/selenium/webdriver/firefox/options.rb +26 -29
  238. data/lib/selenium/webdriver/firefox/profile.rb +13 -76
  239. data/lib/selenium/webdriver/firefox/service.rb +1 -5
  240. data/lib/selenium/webdriver/ie.rb +4 -2
  241. data/lib/selenium/webdriver/ie/driver.rb +0 -16
  242. data/lib/selenium/webdriver/ie/options.rb +7 -20
  243. data/lib/selenium/webdriver/ie/service.rb +6 -10
  244. data/lib/selenium/webdriver/remote/bridge.rb +43 -67
  245. data/lib/selenium/webdriver/remote/capabilities.rb +13 -19
  246. data/lib/selenium/webdriver/remote/commands.rb +1 -0
  247. data/lib/selenium/webdriver/remote/driver.rb +10 -12
  248. data/lib/selenium/webdriver/remote/http/default.rb +6 -7
  249. data/lib/selenium/webdriver/remote/http/persistent.rb +6 -0
  250. data/lib/selenium/webdriver/safari.rb +11 -2
  251. data/lib/selenium/webdriver/safari/bridge.rb +1 -1
  252. data/lib/selenium/webdriver/safari/driver.rb +4 -17
  253. data/lib/selenium/webdriver/{common/driver_extensions/rotatable.rb → safari/features.rb} +26 -36
  254. data/lib/selenium/webdriver/safari/options.rb +1 -33
  255. data/lib/selenium/webdriver/safari/service.rb +0 -4
  256. data/lib/selenium/webdriver/support.rb +1 -0
  257. data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
  258. data/lib/selenium/webdriver/support/color.rb +2 -2
  259. data/lib/selenium/webdriver/support/event_firing_bridge.rb +2 -2
  260. data/lib/selenium/webdriver/support/relative_locator.rb +51 -0
  261. data/lib/selenium/webdriver/version.rb +1 -1
  262. data/selenium-webdriver.gemspec +10 -7
  263. data/selenium_server_deploy.jar +0 -0
  264. metadata +254 -26
  265. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -64
  266. data/lib/selenium/webdriver/edge_html/options.rb +0 -91
  267. data/lib/selenium/webdriver/edge_html/service.rb +0 -51
  268. data/lib/selenium/webdriver/firefox/binary.rb +0 -110
  269. data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- #
23
- # @api private
24
- #
25
-
26
- module DriverExtensions
27
- module TakesScreenshot
28
- #
29
- # Save a PNG screenshot to the given path
30
- #
31
- # @api public
32
- #
33
-
34
- def save_screenshot(png_path)
35
- extension = File.extname(png_path).downcase
36
- if extension != '.png'
37
- WebDriver.logger.warn "name used for saved screenshot does not match file type. "\
38
- "It should end with .png extension"
39
- end
40
- File.open(png_path, 'wb') { |f| f << screenshot_as(:png) }
41
- end
42
-
43
- #
44
- # Return a PNG screenshot in the given format as a string
45
- #
46
- # @param [:base64, :png] format
47
- # @return String screenshot
48
- #
49
- # @api public
50
-
51
- def screenshot_as(format)
52
- case format
53
- when :base64
54
- bridge.screenshot
55
- when :png
56
- bridge.screenshot.unpack1('m')
57
- else
58
- raise Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
59
- end
60
- end
61
- end # TakesScreenshot
62
- end # DriverExtensions
63
- end # WebDriver
64
- end # Selenium
@@ -1,91 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- module EdgeHtml
23
- class Options < WebDriver::Options
24
- # see https://docs.microsoft.com/en-us/microsoft-edge/webdriver#capabilities
25
- CAPABILITIES = {in_private: 'ms:inPrivate',
26
- extension_paths: 'ms:extensionPaths',
27
- start_page: 'ms:startPage'}.freeze
28
-
29
- CAPABILITIES.each_key do |key|
30
- define_method key do
31
- @options[key]
32
- end
33
-
34
- define_method "#{key}=" do |value|
35
- @options[key] = value
36
- end
37
- end
38
-
39
- #
40
- # Create a new Options instance for Edge.
41
- #
42
- # @example
43
- # options = Selenium::WebDriver::Edge::Options.new(in_private: true)
44
- # driver = Selenium::WebDriver.for :edge, options: options
45
- #
46
- # @param [Hash] opts the pre-defined options to create the Edge::Options with
47
- # @option opts [Boolean] :in_private Start in private mode. Default is false
48
- # @option opts [Array<String>] :extension_paths A list of full paths to extensions to install on startup
49
- # @option opts [String] :start_page Default page to start with
50
- #
51
- # @see https://docs.microsoft.com/en-us/microsoft-edge/webdriver
52
- #
53
-
54
- def initialize(**opts)
55
- super
56
- @options[:extensions]&.each(&method(:validate_extension))
57
- end
58
-
59
- #
60
- # Add an extension by local path.
61
- #
62
- # @example
63
- # options = Selenium::WebDriver::Edge::Options.new
64
- # options.add_extension_path('C:\path\to\extension')
65
- #
66
- # @param [String] path The local path to the extension folder
67
- #
68
-
69
- def add_extension_path(path)
70
- validate_extension(path)
71
- @options[:extension_paths] ||= []
72
- @options[:extension_paths] << path
73
- end
74
-
75
- #
76
- # @api private
77
- #
78
-
79
- def as_json(*)
80
- generate_as_json(super)
81
- end
82
-
83
- private
84
-
85
- def validate_extension(path)
86
- raise Error::WebDriverError, "could not find extension at #{path.inspect}" unless File.directory?(path)
87
- end
88
- end # Options
89
- end # Edge
90
- end # WebDriver
91
- end # Selenium
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- module EdgeHtml
23
- #
24
- # @api private
25
- #
26
-
27
- class Service < WebDriver::Service
28
- DEFAULT_PORT = 17556
29
- EXECUTABLE = 'MicrosoftWebDriver'
30
- MISSING_TEXT = <<~ERROR
31
- Unable to find MicrosoftWebDriver. Please install it following instructions
32
- at https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/.
33
- ERROR
34
- SHUTDOWN_SUPPORTED = false
35
-
36
- private
37
-
38
- # Note: This processing is deprecated
39
- def extract_service_args(driver_opts)
40
- driver_args = super
41
- driver_opts = driver_opts.dup
42
- driver_args << "--host=#{driver_opts[:host]}" if driver_opts.key? :host
43
- driver_args << "--package=#{driver_opts[:package]}" if driver_opts.key? :package
44
- driver_args << "--silent" if driver_opts[:silent] == true
45
- driver_args << "--verbose" if driver_opts[:verbose] == true
46
- driver_args
47
- end
48
- end # Service
49
- end # Edge
50
- end # WebDriver
51
- end # Service
@@ -1,110 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Licensed to the Software Freedom Conservancy (SFC) under one
4
- # or more contributor license agreements. See the NOTICE file
5
- # distributed with this work for additional information
6
- # regarding copyright ownership. The SFC licenses this file
7
- # to you under the Apache License, Version 2.0 (the
8
- # "License"); you may not use this file except in compliance
9
- # with the License. You may obtain a copy of the License at
10
- #
11
- # http://www.apache.org/licenses/LICENSE-2.0
12
- #
13
- # Unless required by applicable law or agreed to in writing,
14
- # software distributed under the License is distributed on an
15
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
- # KIND, either express or implied. See the License for the
17
- # specific language governing permissions and limitations
18
- # under the License.
19
-
20
- module Selenium
21
- module WebDriver
22
- module Firefox
23
- # @api private
24
- class Binary
25
- class << self
26
- #
27
- # @api private
28
- #
29
- # @see Firefox.path=
30
- #
31
-
32
- def path=(path)
33
- Platform.assert_executable(path)
34
- @path = path
35
- end
36
-
37
- def reset_path!
38
- @path = nil
39
- end
40
-
41
- def path
42
- @path ||= case Platform.os
43
- when :macosx
44
- macosx_path
45
- when :windows
46
- windows_path
47
- when :linux, :unix
48
- Platform.find_binary('firefox3', 'firefox2', 'firefox') || '/usr/bin/firefox'
49
- else
50
- raise Error::WebDriverError, "unknown platform: #{Platform.os}"
51
- end
52
-
53
- @path = Platform.cygwin_path(@path, windows: true) if Platform.cygwin?
54
-
55
- unless File.file?(@path.to_s)
56
- error = "Could not find Firefox binary (os=#{Platform.os}). " \
57
- "Make sure Firefox is installed or set the path manually with #{self}.path="
58
- raise Error::WebDriverError, error
59
- end
60
-
61
- @path
62
- end
63
-
64
- def version
65
- @version = case Platform.os
66
- when :macosx
67
- `#{path} -v`.strip[/[^\s]*$/][/^\d+/].to_i
68
- when :windows
69
- `\"#{path}\" -v | more`.strip[/[^\s]*$/][/^\d+/].to_i
70
- when :linux
71
- `#{path} -v`.strip[/[^\s]*$/][/^\d+/].to_i
72
- else
73
- 0
74
- end
75
- end
76
-
77
- private
78
-
79
- def windows_path
80
- windows_registry_path ||
81
- Platform.find_in_program_files('\\Mozilla Firefox\\firefox.exe') ||
82
- Platform.find_binary('firefox')
83
- end
84
-
85
- def macosx_path
86
- path = '/Applications/Firefox.app/Contents/MacOS/firefox-bin'
87
- path = File.expand_path('~/Applications/Firefox.app/Contents/MacOS/firefox-bin') unless File.exist?(path)
88
- path = Platform.find_binary('firefox-bin') unless File.exist?(path)
89
-
90
- path
91
- end
92
-
93
- def windows_registry_path
94
- require 'win32/registry'
95
-
96
- lm = Win32::Registry::HKEY_LOCAL_MACHINE
97
- lm.open('SOFTWARE\\Mozilla\\Mozilla Firefox') do |reg|
98
- main = lm.open("SOFTWARE\\Mozilla\\Mozilla Firefox\\#{reg.keys[0]}\\Main")
99
- entry = main.find { |key, _type, _data| /pathtoexe/i.match? key }
100
- return entry.last if entry
101
- end
102
- rescue LoadError
103
- # older JRuby or IronRuby does not have win32/registry
104
- rescue Win32::Registry::Error
105
- end
106
- end # class << self
107
- end # Binary
108
- end # Firefox
109
- end # WebDriver
110
- end # Selenium
@@ -1,69 +0,0 @@
1
- {
2
- "frozen": {
3
- "app.update.auto": false,
4
- "app.update.enabled": false,
5
- "browser.displayedE10SNotice": 4,
6
- "browser.download.manager.showWhenStarting": false,
7
- "browser.EULA.override": true,
8
- "browser.EULA.3.accepted": true,
9
- "browser.link.open_external": 2,
10
- "browser.link.open_newwindow": 2,
11
- "browser.offline": false,
12
- "browser.reader.detectedFirstArticle": true,
13
- "browser.safebrowsing.enabled": false,
14
- "browser.safebrowsing.malware.enabled": false,
15
- "browser.search.update": false,
16
- "browser.selfsupport.url" : "",
17
- "browser.sessionstore.resume_from_crash": false,
18
- "browser.shell.checkDefaultBrowser": false,
19
- "browser.tabs.warnOnClose": false,
20
- "browser.tabs.warnOnOpen": false,
21
- "datareporting.healthreport.service.enabled": false,
22
- "datareporting.healthreport.uploadEnabled": false,
23
- "datareporting.healthreport.service.firstRun": false,
24
- "datareporting.healthreport.logging.consoleEnabled": false,
25
- "datareporting.policy.dataSubmissionEnabled": false,
26
- "datareporting.policy.dataSubmissionPolicyAccepted": false,
27
- "devtools.errorconsole.enabled": true,
28
- "dom.disable_open_during_load": false,
29
- "extensions.autoDisableScopes": 10,
30
- "extensions.blocklist.enabled": false,
31
- "extensions.checkCompatibility.nightly": false,
32
- "extensions.update.enabled": false,
33
- "extensions.update.notifyUser": false,
34
- "javascript.enabled": true,
35
- "network.manage-offline-status": false,
36
- "network.http.phishy-userpass-length": 255,
37
- "offline-apps.allow_by_default": true,
38
- "prompts.tab_modal.enabled": false,
39
- "security.fileuri.origin_policy": 3,
40
- "security.fileuri.strict_origin_policy": false,
41
- "signon.rememberSignons": false,
42
- "toolkit.networkmanager.disable": true,
43
- "toolkit.telemetry.prompted": 2,
44
- "toolkit.telemetry.enabled": false,
45
- "toolkit.telemetry.rejected": true,
46
- "xpinstall.signatures.required": false,
47
- "xpinstall.whitelist.required": false
48
- },
49
- "mutable": {
50
- "browser.dom.window.dump.enabled": true,
51
- "browser.laterrun.enabled": false,
52
- "browser.newtab.url": "about:blank",
53
- "browser.newtabpage.enabled": false,
54
- "browser.startup.page": 0,
55
- "browser.startup.homepage": "about:blank",
56
- "browser.startup.homepage_override.mstone": "ignore",
57
- "browser.usedOnWindows10.introURL": "about:blank",
58
- "dom.max_chrome_script_run_time": 30,
59
- "dom.max_script_run_time": 30,
60
- "dom.report_all_js_exceptions": true,
61
- "javascript.options.showInConsole": true,
62
- "network.captive-portal-service.enabled": false,
63
- "security.csp.enable": false,
64
- "startup.homepage_welcome_url": "about:blank",
65
- "startup.homepage_welcome_url.additional": "about:blank",
66
- "webdriver_accept_untrusted_certs": true,
67
- "webdriver_assume_untrusted_issuer": true
68
- }
69
- }