selenium-webdriver 4.35.0 → 4.47.0

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 (114) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +111 -0
  3. data/Gemfile +1 -4
  4. data/LICENSE +1 -1
  5. data/NOTICE +1 -1
  6. data/README.md +43 -23
  7. data/bin/linux/selenium-manager +0 -0
  8. data/bin/macos/selenium-manager +0 -0
  9. data/bin/selenium-manager-THIRD-PARTY-NOTICES.txt +5971 -0
  10. data/bin/selenium-manager.cdx.json +11629 -0
  11. data/bin/windows/selenium-manager.exe +0 -0
  12. data/lib/selenium/server.rb +30 -5
  13. data/lib/selenium/webdriver/atoms/findElements.js +272 -54
  14. data/lib/selenium/webdriver/atoms/getAttribute.js +152 -6
  15. data/lib/selenium/webdriver/atoms/isDisplayed.js +385 -28
  16. data/lib/selenium/webdriver/bidi/browser.rb +71 -0
  17. data/lib/selenium/webdriver/bidi/browsing_context.rb +3 -2
  18. data/lib/selenium/webdriver/bidi/{log/filter_by.rb → error.rb} +20 -16
  19. data/lib/selenium/webdriver/bidi/log_handler.rb +5 -0
  20. data/lib/selenium/webdriver/bidi/network/cookies.rb +13 -9
  21. data/lib/selenium/webdriver/bidi/network/credentials.rb +4 -0
  22. data/lib/selenium/webdriver/bidi/network/headers.rb +4 -0
  23. data/lib/selenium/webdriver/bidi/network/intercepted_auth.rb +4 -0
  24. data/lib/selenium/webdriver/bidi/network/intercepted_item.rb +4 -0
  25. data/lib/selenium/webdriver/bidi/network/intercepted_request.rb +20 -4
  26. data/lib/selenium/webdriver/bidi/network/intercepted_response.rb +24 -6
  27. data/lib/selenium/webdriver/bidi/network/url_pattern.rb +4 -0
  28. data/lib/selenium/webdriver/bidi/network.rb +18 -9
  29. data/lib/selenium/webdriver/bidi/protocol/bluetooth.rb +495 -0
  30. data/lib/selenium/webdriver/bidi/protocol/browser.rb +250 -0
  31. data/lib/selenium/webdriver/bidi/protocol/browsing_context.rb +798 -0
  32. data/lib/selenium/webdriver/bidi/{log/base_log_entry.rb → protocol/domain.rb} +22 -11
  33. data/lib/selenium/webdriver/bidi/protocol/emulation.rb +448 -0
  34. data/lib/selenium/webdriver/bidi/protocol/error_code.rb +66 -0
  35. data/lib/selenium/webdriver/bidi/protocol/input.rb +354 -0
  36. data/lib/selenium/webdriver/bidi/protocol/log.rb +115 -0
  37. data/lib/selenium/webdriver/bidi/protocol/network.rb +720 -0
  38. data/lib/selenium/webdriver/bidi/protocol/permissions.rb +75 -0
  39. data/lib/selenium/webdriver/bidi/protocol/script.rb +1052 -0
  40. data/lib/selenium/webdriver/bidi/protocol/session.rb +286 -0
  41. data/lib/selenium/webdriver/bidi/protocol/speculation.rb +58 -0
  42. data/lib/selenium/webdriver/bidi/protocol/storage.rb +183 -0
  43. data/lib/selenium/webdriver/bidi/protocol/user_agent_client_hints.rb +88 -0
  44. data/lib/selenium/webdriver/bidi/protocol/web_extension.rb +132 -0
  45. data/lib/selenium/webdriver/bidi/protocol.rb +42 -0
  46. data/lib/selenium/webdriver/bidi/serialization/record.rb +402 -0
  47. data/lib/selenium/webdriver/bidi/serialization/union.rb +156 -0
  48. data/lib/selenium/webdriver/bidi/serialization.rb +90 -0
  49. data/lib/selenium/webdriver/bidi/session.rb +4 -0
  50. data/lib/selenium/webdriver/bidi/support/bidi_generate.rb +1420 -0
  51. data/lib/selenium/webdriver/bidi/support/check_generated.rb +63 -0
  52. data/lib/selenium/webdriver/bidi/transport.rb +57 -0
  53. data/lib/selenium/webdriver/bidi.rb +4 -1
  54. data/lib/selenium/webdriver/chrome/driver.rb +4 -3
  55. data/lib/selenium/webdriver/chrome/service.rb +13 -0
  56. data/lib/selenium/webdriver/chromium/driver.rb +0 -1
  57. data/lib/selenium/webdriver/chromium/options.rb +23 -1
  58. data/lib/selenium/webdriver/chromium/profile.rb +6 -0
  59. data/lib/selenium/webdriver/common/child_process.rb +2 -1
  60. data/lib/selenium/webdriver/common/client_config.rb +97 -0
  61. data/lib/selenium/webdriver/common/driver.rb +13 -7
  62. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +0 -7
  63. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +0 -7
  64. data/lib/selenium/webdriver/common/driver_extensions/{has_bidi.rb → has_session_events.rb} +19 -7
  65. data/lib/selenium/webdriver/common/driver_finder.rb +35 -25
  66. data/lib/selenium/webdriver/common/error.rb +10 -3
  67. data/lib/selenium/webdriver/common/local_driver.rb +29 -12
  68. data/lib/selenium/webdriver/common/logger.rb +28 -0
  69. data/lib/selenium/webdriver/common/manager.rb +2 -0
  70. data/lib/selenium/webdriver/common/options.rb +41 -2
  71. data/lib/selenium/webdriver/common/platform.rb +1 -3
  72. data/lib/selenium/webdriver/common/proxy.rb +1 -9
  73. data/lib/selenium/webdriver/common/selenium_manager.rb +2 -1
  74. data/lib/selenium/webdriver/common/service.rb +4 -8
  75. data/lib/selenium/webdriver/common/service_manager.rb +36 -4
  76. data/lib/selenium/webdriver/common/socket_poller.rb +1 -1
  77. data/lib/selenium/webdriver/common/takes_screenshot.rb +1 -1
  78. data/lib/selenium/webdriver/common/virtual_authenticator/credential.rb +1 -1
  79. data/lib/selenium/webdriver/common/wait.rb +4 -1
  80. data/lib/selenium/webdriver/common/websocket_connection.rb +73 -37
  81. data/lib/selenium/webdriver/common.rb +2 -1
  82. data/lib/selenium/webdriver/devtools/response.rb +3 -3
  83. data/lib/selenium/webdriver/devtools.rb +1 -1
  84. data/lib/selenium/webdriver/edge/driver.rb +4 -3
  85. data/lib/selenium/webdriver/edge/service.rb +14 -0
  86. data/lib/selenium/webdriver/firefox/driver.rb +4 -6
  87. data/lib/selenium/webdriver/firefox/options.rb +19 -0
  88. data/lib/selenium/webdriver/firefox/profile.rb +13 -6
  89. data/lib/selenium/webdriver/firefox/service.rb +31 -2
  90. data/lib/selenium/webdriver/ie/driver.rb +4 -3
  91. data/lib/selenium/webdriver/ie/service.rb +10 -0
  92. data/lib/selenium/webdriver/remote/bidi_bridge.rb +44 -10
  93. data/lib/selenium/webdriver/remote/bridge.rb +20 -14
  94. data/lib/selenium/webdriver/remote/driver.rb +15 -4
  95. data/lib/selenium/webdriver/remote/features.rb +26 -1
  96. data/lib/selenium/webdriver/remote/http/common.rb +57 -12
  97. data/lib/selenium/webdriver/remote/http/curb.rb +6 -8
  98. data/lib/selenium/webdriver/remote/http/default.rb +56 -39
  99. data/lib/selenium/webdriver/safari/driver.rb +4 -3
  100. data/lib/selenium/webdriver/safari/options.rb +23 -4
  101. data/lib/selenium/webdriver/safari.rb +1 -6
  102. data/lib/selenium/webdriver/support/block_event_listener.rb +5 -1
  103. data/lib/selenium/webdriver/support/color.rb +14 -14
  104. data/lib/selenium/webdriver/support/event_firing_bridge.rb +5 -1
  105. data/lib/selenium/webdriver/support/guards/guard.rb +30 -14
  106. data/lib/selenium/webdriver/support/guards.rb +11 -4
  107. data/lib/selenium/webdriver/version.rb +1 -1
  108. data/lib/selenium/webdriver.rb +7 -2
  109. data/selenium-webdriver.gemspec +1 -1
  110. metadata +33 -11
  111. data/lib/selenium/webdriver/bidi/log/console_log_entry.rb +0 -35
  112. data/lib/selenium/webdriver/bidi/log/generic_log_entry.rb +0 -33
  113. data/lib/selenium/webdriver/bidi/log/javascript_log_entry.rb +0 -33
  114. data/lib/selenium/webdriver/bidi/log_inspector.rb +0 -147
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec668a5c5955cd9e7cb5043758444d5327fed5d294e2b8d083b697d3c7b1d254
4
- data.tar.gz: 59d44985b7930295cfcc71cfa64bdcd3428f8580a0e3eb35a98b4ad69080c835
3
+ metadata.gz: a9c3908f34dabbaac8d9ef6e43e0d601aa0e995252f99562f1b560fe38fc6772
4
+ data.tar.gz: cff07935d0474b84cbdcedf7b639aada938f2d95fc080a9b8a6896f1cc02b4ef
5
5
  SHA512:
6
- metadata.gz: c1838ed8ff8ea7d33bc5ccc2db54715223f82bfdd9a7a427bae6062fc1a6976e78b721382f4b94a710d1a7814e35842c0bb74e17a7e89b7b14d4760d3488e539
7
- data.tar.gz: 2161b82493b1c1de27980ede799dec2de1a8ed6fb9ace4f9394004cddee4433a7da86714425cc097ba6c2a9a457369b49e35dccd205424027a9bc26821393893
6
+ metadata.gz: d0e2aea11b7104e92b6e56c12685db3147b2fc890b5e7ca9569e176df22fb9a02bf479b7217b10236f88ae324d1638eca2420c701b929366327cf27c8803ce30
7
+ data.tar.gz: 0e4ccc42814a6b975ee9b032ef6325df09afe80144a93614b199951cf9a7e72ffa5ef0c310f63fc367114be7edb2cf9085d7d4c02bbed36cf31d17edb4fed16d
data/CHANGES CHANGED
@@ -1,3 +1,114 @@
1
+ 4.47.0 (2026-08-10)
2
+ =========================
3
+ * Support CDP versions: v149, v150, v151
4
+ * support WebDriver BiDi on Safari Preview and move #bidi onto Driver (#17729)
5
+ * link generated BiDi elements to their spec definitions (#17781)
6
+ * add objectOnly/preserveExtras/scalar-primitive BiDi schema signals (#17784)
7
+ * construct the BiDi transport inside the domain from a connection (#17796)
8
+ * route BiDiBridge navigation through the generated Protocol::BrowsingContext (#17785)
9
+ * resolve spec runfiles via Bazel::Runfiles (#17810)
10
+ * [build] standardize generated-file license and not to edit markers across generators (#17816)
11
+ * validate nullable-constant BiDi params outbound (#17818)
12
+ * [build] upgrade rules_ruby to 0.28.0 and drop vendored Bazel::Runfiles workaround (#17824)
13
+ * [build] Merge vendor cddl files into shared BiDi schema and implement custom Firefox webExtension options (#17840)
14
+ * [grid] honor client-advertised se:remoteUrl for reachable BiDi/CDP/VNC URLs (#17790)
15
+ * tolerate and warn on missing required inbound BiDi fields, with SE_BIDI_STRICT to escalate (#17844)
16
+ * remove deprecated FTP proxy support (#17846)
17
+ * prevent CDP access with Firefox (#17849)
18
+ * test matchers assert log entries by id and optional messages and match severity (#17848)
19
+ * [bidi] Correct float/enum type fidelity in the shared schema and validate primitives outbound in Ruby (#17852)
20
+ * [bidi] mark BiDi types extensible per spec and update Ruby handling (#17853)
21
+ * raise typed WebDriver errors for BiDi from a generated error-code map (#17855)
22
+ * allow pending test guards to require matching provided exception (#17859)
23
+ * pass --enable-chrome-logs unless CHROME_LOG_FILE is set (#17858)
24
+ * support custom vendor specific capabilities in options classes (#17862)
25
+ * validate BiDi outbound ref fields against their declared type (#17861)
26
+ * generate BiDi domain type accessors and union variant factories (#17865)
27
+ * deprecate invalid Firefox profile code (#17871)
28
+ * [build] Automated Browser Version Update with CDP (#17873)
29
+
30
+ 4.46.0 (2026-07-10)
31
+ =========================
32
+ * Support CDP versions: v148, v149, v150
33
+ * trim whitespace around NO_PROXY entries (#17565)
34
+ * add ClientConfig for HTTP client customization (#17699)
35
+ * generate the BiDi protocol layer from the shared binding-neutral schema (#17731)
36
+
37
+ 4.45.0 (2026-06-15)
38
+ =========================
39
+ * Support CDP versions: v147, v148, v149
40
+ * deprecate curb http client support (#17443)
41
+ * move Ruby bindings to use typescript get attribute atom (#17524)
42
+ * Move atoms to use the typescript versions (#17532)
43
+ * deprecate Chromium Profile classes (#17557)
44
+ * update bazel test tags (#17558)
45
+ * separate concerns between Service, DriverFinder, and Options (#17564)
46
+ * fix using environment variables to set drivers (#17571)
47
+ * create more obvious test guard keywords as aliases (#17636)
48
+
49
+ 4.44.0 (2026-05-12)
50
+ =========================
51
+ * Support CDP versions: v146, v147, v148
52
+ * Modern Firefox does not like both the `-v` and `--log` flags at the same time (#17412)
53
+ * Fix credential issue with private key (#17188)
54
+
55
+ 4.43.0 (2026-04-09)
56
+ =========================
57
+ * Support CDP versions: v145, v146, v147
58
+
59
+ 4.42.0 (2026-04-08)
60
+ =========================
61
+ * Support CDP versions: v144, v145, v146
62
+
63
+ 4.41.0 (2026-02-19)
64
+ =========================
65
+ * Support CDP versions: v143, v144, v145
66
+ * remove stored atoms these get generated by build (#16971)
67
+ * output driver logs when SE_DEBUG is enabled (#16901)
68
+ * Update lint configuration and fix rubocop offenses (#17008)
69
+ * add missing unit tests (#17025)
70
+ * [grid] Add session event API for server-side event bus integration (#17015)
71
+ * Update dependencies (#17111)
72
+
73
+ 4.40.0 (2026-01-18)
74
+ =========================
75
+ * add synchronization and error handling for socket interactions (#16487)
76
+ * mark low level bidi implementation as private api (#16475)
77
+ * ensure driver process is always stopped (#15635)
78
+ * create user-friendly method for enabling bidi (#14284)
79
+ * Add force encoding to remove warnings caused by json 3.0 (#16728)
80
+ * use SE_DEBUG to enable debugging (#16816)
81
+ * ensure the grid is properly restarted in tests when there is a problem (#16842)
82
+ * wait for grid to be ready when starting server (#16896)
83
+ * check driver status endpoint rather than socket connection (#16877)
84
+ * [build] update ruby gems with bazel (#16924)
85
+
86
+ 4.39.0 (2025-12-06)
87
+ =========================
88
+ * Add CDP for Chrome 143 and remove 140
89
+
90
+ 4.38.0 (2025-10-24)
91
+ =========================
92
+ * Add CDP for Chrome 142 and remove 139
93
+ * Fix BiDi Network issue by removing nil values on network requests (#16442)
94
+ * Remove cruft from old CI environment (#16473)
95
+ * [bidi] remove deprecated classes for log inspector (#16474)
96
+
97
+ 4.37.0 (2025-10-16)
98
+ =========================
99
+ * Add CDP for Chrome 141 and remove 138
100
+ * Update Chrome/Edge args for test environment (#16376)
101
+ * Remove `prism` dependency (#16437)
102
+ * Remove `json` version constraint (#16436)
103
+
104
+ 4.36.0 (2025-09-18)
105
+ =========================
106
+ * Add CDP for Chrome 140 and remove 137
107
+ * [BiDi] Create browser module, added user context related methods (#15371)
108
+ * BiDi get client windows (#16211)
109
+ * Fix links to exception documentation on website (#16305)
110
+ * Update `unhandled_prompt_behavior` capability to support hash syntax (#16289)
111
+
1
112
  4.35.0 (2025-08-12)
2
113
  =========================
3
114
  * Add CDP for Chrome 139 and remove 136
data/Gemfile CHANGED
@@ -5,8 +5,5 @@ Dir["#{__dir__}/*.gemspec"].each do |spec|
5
5
  gemspec name: File.basename(spec, '.gemspec')
6
6
  end
7
7
 
8
- # ActiveSupport 8.x requires Ruby 3.2+ (dependency of Steep)
9
- gem 'activesupport', '~> 7.0', require: false, platforms: %i[mri mingw x64_mingw]
10
- gem 'curb', '~> 1.0.5', require: false, platforms: %i[mri mingw x64_mingw]
11
8
  gem 'debug', '~> 1.7', require: false, platforms: %i[mri mingw x64_mingw]
12
- gem 'steep', '~> 1.5.0', require: false, platforms: %i[mri mingw x64_mingw]
9
+ gem 'steep', '~> 2.0', require: false, platforms: %i[mri mingw x64_mingw]
data/LICENSE CHANGED
@@ -187,7 +187,7 @@
187
187
  same "printed page" as the copyright notice for easier
188
188
  identification within third-party archives.
189
189
 
190
- Copyright 2025 Software Freedom Conservancy (SFC)
190
+ Copyright 2026 Software Freedom Conservancy (SFC)
191
191
 
192
192
  Licensed under the Apache License, Version 2.0 (the "License");
193
193
  you may not use this file except in compliance with the License.
data/NOTICE CHANGED
@@ -1,2 +1,2 @@
1
- Copyright 2011-2025 Software Freedom Conservancy
1
+ Copyright 2011-2026 Software Freedom Conservancy
2
2
  Copyright 2004-2011 Selenium committers
data/README.md CHANGED
@@ -1,34 +1,54 @@
1
1
  # selenium-webdriver
2
2
 
3
- This gem provides Ruby bindings for Selenium and supports MRI >= 3.2.
3
+ Ruby language bindings for [Selenium WebDriver](https://www.selenium.dev).
4
+ Selenium automates browsers for testing and web-based task automation.
4
5
 
5
- ## Install
6
+ Supports MRI >= 3.3.
6
7
 
7
- gem install selenium-webdriver
8
+ ## Installation
8
9
 
9
- ## Links
10
+ ```bash
11
+ gem install selenium-webdriver
12
+ ```
10
13
 
11
- * https://rubygems.org/gems/selenium-webdriver
12
- * https://www.selenium.dev/selenium/docs/api/rb/index.html
13
- * https://www.selenium.dev/documentation/?tab=ruby
14
- * https://github.com/SeleniumHQ/selenium/issues
14
+ ## Quick Start
15
15
 
16
- ## License
16
+ ```ruby
17
+ require "selenium-webdriver"
18
+
19
+ driver = Selenium::WebDriver.for :chrome
20
+ begin
21
+ driver.get "https://www.selenium.dev"
22
+ puts driver.title
23
+ ensure
24
+ driver.quit
25
+ end
26
+ ```
27
+
28
+ Selenium Manager automatically handles browser driver installation — no manual driver setup required.
29
+
30
+ ## Documentation
31
+
32
+ - [Getting Started](https://www.selenium.dev/documentation/webdriver/getting_started/)
33
+ - [Ruby API Docs](https://www.selenium.dev/selenium/docs/api/rb/index.html)
34
+ - [Selenium Manager](https://www.selenium.dev/documentation/selenium_manager/)
35
+ - [Selenium Grid](https://www.selenium.dev/documentation/grid/)
17
36
 
18
- Copyright 2009-2024 Software Freedom Conservancy
37
+ ## Support
19
38
 
20
- Licensed to the Software Freedom Conservancy (SFC) under one
21
- or more contributor license agreements. See the NOTICE file
22
- distributed with this work for additional information
23
- regarding copyright ownership. The SFC licenses this file
24
- to you under the Apache License, Version 2.0 (the
25
- "License"); you may not use this file except in compliance
26
- with the License. You may obtain a copy of the License at
39
+ - [Selenium Chat](https://www.selenium.dev/support/#ChatRoom)
40
+ - [GitHub Issues](https://github.com/SeleniumHQ/selenium/issues)
27
41
 
28
- http://www.apache.org/licenses/LICENSE-2.0
42
+ ## Contributing
43
+
44
+ Contributions are welcome via [GitHub](https://github.com/SeleniumHQ/selenium/) pull requests.
45
+ See the [source code](https://github.com/SeleniumHQ/selenium/tree/trunk/rb) for this binding.
46
+
47
+ ## Links
48
+
49
+ - [RubyGems](https://rubygems.org/gems/selenium-webdriver)
50
+ - [Documentation](https://www.selenium.dev/documentation/?tab=ruby)
51
+
52
+ ## License
29
53
 
30
- Unless required by applicable law or agreed to in writing, software
31
- distributed under the License is distributed on an "AS IS" BASIS,
32
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
33
- See the License for the specific language governing permissions and
34
- limitations under the License.
54
+ Licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0).
Binary file
Binary file