selenium-webdriver 4.0.0.alpha2 → 4.0.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 (113) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +338 -4
  3. data/Gemfile +3 -1
  4. data/LICENSE +1 -1
  5. data/NOTICE +2 -0
  6. data/README.md +4 -5
  7. data/lib/selenium/server.rb +21 -29
  8. data/lib/selenium/webdriver/atoms/findElements.js +122 -0
  9. data/lib/selenium/webdriver/atoms/getAttribute.js +100 -7
  10. data/lib/selenium/webdriver/atoms/isDisplayed.js +76 -78
  11. data/lib/selenium/webdriver/atoms/mutationListener.js +55 -0
  12. data/lib/selenium/webdriver/chrome/driver.rb +26 -56
  13. data/lib/selenium/webdriver/chrome/features.rb +106 -0
  14. data/lib/selenium/webdriver/chrome/options.rb +127 -52
  15. data/lib/selenium/webdriver/chrome/profile.rb +8 -5
  16. data/lib/selenium/webdriver/chrome/service.rb +4 -6
  17. data/lib/selenium/webdriver/chrome.rb +10 -9
  18. data/lib/selenium/webdriver/common/driver.rb +110 -19
  19. data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +43 -0
  20. data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +51 -0
  21. data/lib/selenium/webdriver/common/driver_extensions/has_authentication.rb +89 -0
  22. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +77 -0
  23. data/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +38 -0
  24. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +45 -0
  25. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +43 -0
  26. data/lib/selenium/webdriver/common/driver_extensions/has_launching.rb +38 -0
  27. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +5 -8
  28. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +144 -0
  29. data/lib/selenium/webdriver/common/driver_extensions/has_logs.rb +30 -0
  30. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +17 -0
  31. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +6 -27
  32. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +136 -0
  33. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +11 -11
  34. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +77 -0
  35. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +1 -0
  36. data/lib/selenium/webdriver/common/driver_extensions/{rotatable.rb → prints_page.rb} +18 -20
  37. data/lib/selenium/webdriver/common/element.rb +79 -16
  38. data/lib/selenium/webdriver/common/error.rb +12 -0
  39. data/lib/selenium/webdriver/common/interactions/interaction.rb +4 -1
  40. data/lib/selenium/webdriver/common/log_entry.rb +2 -2
  41. data/lib/selenium/webdriver/common/logger.rb +50 -15
  42. data/lib/selenium/webdriver/common/manager.rb +14 -14
  43. data/lib/selenium/webdriver/common/options.rb +186 -0
  44. data/lib/selenium/webdriver/common/platform.rb +6 -1
  45. data/lib/selenium/webdriver/common/port_prober.rb +4 -6
  46. data/lib/selenium/webdriver/common/profile_helper.rb +10 -2
  47. data/lib/selenium/webdriver/common/proxy.rb +6 -3
  48. data/lib/selenium/webdriver/common/search_context.rb +7 -3
  49. data/lib/selenium/webdriver/common/service.rb +23 -113
  50. data/lib/selenium/webdriver/common/service_manager.rb +151 -0
  51. data/lib/selenium/webdriver/common/shadow_root.rb +87 -0
  52. data/lib/selenium/webdriver/common/socket_lock.rb +2 -2
  53. data/lib/selenium/webdriver/common/takes_screenshot.rb +66 -0
  54. data/lib/selenium/webdriver/common/target_locator.rb +32 -4
  55. data/lib/selenium/webdriver/common/timeouts.rb +31 -4
  56. data/lib/selenium/webdriver/common/wait.rb +1 -1
  57. data/lib/selenium/webdriver/common/window.rb +0 -4
  58. data/lib/selenium/webdriver/common.rb +17 -2
  59. data/lib/selenium/webdriver/devtools/console_event.rb +38 -0
  60. data/lib/selenium/webdriver/devtools/exception_event.rb +36 -0
  61. data/lib/selenium/webdriver/devtools/mutation_event.rb +37 -0
  62. data/lib/selenium/webdriver/{chrome/bridge.rb → devtools/pinned_script.rb} +26 -17
  63. data/lib/selenium/webdriver/devtools/request.rb +67 -0
  64. data/lib/selenium/webdriver/devtools/response.rb +66 -0
  65. data/lib/selenium/webdriver/devtools.rb +182 -0
  66. data/lib/selenium/webdriver/edge/driver.rb +5 -31
  67. data/lib/selenium/webdriver/edge/features.rb +44 -0
  68. data/lib/selenium/webdriver/edge/options.rb +11 -48
  69. data/lib/selenium/webdriver/edge/profile.rb +33 -0
  70. data/lib/selenium/webdriver/edge/service.rb +9 -24
  71. data/lib/selenium/webdriver/edge.rb +11 -13
  72. data/lib/selenium/webdriver/firefox/driver.rb +20 -30
  73. data/lib/selenium/webdriver/firefox/extension.rb +8 -0
  74. data/lib/selenium/webdriver/firefox/{bridge.rb → features.rb} +23 -4
  75. data/lib/selenium/webdriver/firefox/options.rb +70 -49
  76. data/lib/selenium/webdriver/firefox/profile.rb +16 -77
  77. data/lib/selenium/webdriver/firefox/service.rb +1 -5
  78. data/lib/selenium/webdriver/firefox.rb +22 -16
  79. data/lib/selenium/webdriver/ie/driver.rb +1 -34
  80. data/lib/selenium/webdriver/ie/options.rb +13 -44
  81. data/lib/selenium/webdriver/ie/service.rb +9 -11
  82. data/lib/selenium/webdriver/ie.rb +8 -7
  83. data/lib/selenium/webdriver/remote/bridge.rb +112 -86
  84. data/lib/selenium/webdriver/remote/capabilities.rb +120 -62
  85. data/lib/selenium/webdriver/remote/commands.rb +7 -0
  86. data/lib/selenium/webdriver/remote/driver.rb +15 -12
  87. data/lib/selenium/webdriver/remote/http/common.rb +0 -5
  88. data/lib/selenium/webdriver/remote/http/default.rb +17 -11
  89. data/lib/selenium/webdriver/remote/http/persistent.rb +11 -6
  90. data/lib/selenium/webdriver/remote.rb +15 -9
  91. data/lib/selenium/webdriver/safari/driver.rb +3 -34
  92. data/lib/selenium/webdriver/safari/{bridge.rb → features.rb} +6 -6
  93. data/lib/selenium/webdriver/safari/options.rb +10 -29
  94. data/lib/selenium/webdriver/safari/service.rb +0 -4
  95. data/lib/selenium/webdriver/safari.rb +16 -8
  96. data/lib/selenium/webdriver/support/block_event_listener.rb +1 -1
  97. data/lib/selenium/webdriver/support/cdp/domain.rb.erb +63 -0
  98. data/lib/selenium/webdriver/support/cdp_client_generator.rb +108 -0
  99. data/lib/selenium/webdriver/support/color.rb +2 -2
  100. data/lib/selenium/webdriver/support/event_firing_bridge.rb +4 -4
  101. data/lib/selenium/webdriver/support/guards/guard.rb +89 -0
  102. data/lib/selenium/webdriver/support/guards/guard_condition.rb +52 -0
  103. data/lib/selenium/webdriver/support/guards.rb +95 -0
  104. data/lib/selenium/webdriver/support/relative_locator.rb +51 -0
  105. data/lib/selenium/webdriver/support/select.rb +2 -2
  106. data/lib/selenium/webdriver/support.rb +1 -0
  107. data/lib/selenium/webdriver/version.rb +1 -1
  108. data/lib/selenium/webdriver.rb +10 -8
  109. data/selenium-webdriver.gemspec +29 -13
  110. metadata +125 -51
  111. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +0 -64
  112. data/lib/selenium/webdriver/firefox/binary.rb +0 -110
  113. data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
@@ -11,37 +11,53 @@ Gem::Specification.new do |s|
11
11
  s.version = Selenium::WebDriver::VERSION
12
12
 
13
13
  s.authors = ['Alex Rodionov', 'Titus Fortner', 'Thomas Walpole']
14
- s.email = ['p0deje@gmail.com', 'titusfortner@gmail.com', 'twalpole@gmail.com']
14
+ s.email = %w[p0deje@gmail.com titusfortner@gmail.com twalpole@gmail.com]
15
15
 
16
- s.summary = 'The next generation developer focused tool for automated testing of webapps'
17
- s.description = 'WebDriver is a tool for writing automated tests of websites. ' \
18
- 'It aims to mimic the behaviour of a real user, ' \
19
- 'and as such interacts with the HTML of the application.'
16
+ s.summary = 'Selenium is a browser automation tool for automated testing of webapps and more'
17
+ s.description = <<-DESCRIPTION
18
+ Selenium implements the W3C WebDriver protocol to automate popular browsers.
19
+ It aims to mimic the behaviour of a real user as it interacts with the application's HTML.
20
+ It's primarily intended for web application testing, but any web-based task can automated.
21
+ DESCRIPTION
20
22
 
21
23
  s.license = 'Apache-2.0'
22
- s.homepage = 'https://github.com/SeleniumHQ/selenium'
24
+ s.homepage = 'https://selenium.dev'
23
25
  s.metadata = {
24
- 'changelog_uri' => 'https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES',
25
- 'source_code_uri' => 'https://github.com/SeleniumHQ/selenium/tree/master/rb'
26
+ 'changelog_uri' => 'https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES',
27
+ 'source_code_uri' => 'https://github.com/SeleniumHQ/selenium/tree/trunk/rb'
26
28
  }
27
29
 
28
30
  s.required_rubygems_version = Gem::Requirement.new('> 1.3.1') if s.respond_to? :required_rubygems_version=
29
- s.required_ruby_version = Gem::Requirement.new('>= 2.4')
31
+ s.required_ruby_version = Gem::Requirement.new('>= 2.6')
32
+
33
+ s.files = [
34
+ 'CHANGES',
35
+ 'LICENSE',
36
+ 'NOTICE',
37
+ 'Gemfile',
38
+ 'README.md',
39
+ 'selenium-webdriver.gemspec',
40
+ 'lib/selenium-webdriver.rb',
41
+ 'lib/selenium/server.rb',
42
+ 'lib/selenium/webdriver.rb'
43
+ ] + Dir['lib/selenium/webdriver/**/*']
30
44
 
31
- s.files = Dir[root + '/**/*'].reject { |e| e =~ /ruby\.iml|build\.desc/ }.map { |e| e.sub(root + '/', '') }
32
45
  s.require_paths = ['lib']
33
46
 
34
- s.add_runtime_dependency 'childprocess', ['>= 0.5', '< 2.0']
35
- s.add_runtime_dependency 'rubyzip', ['~> 1.2', '>= 1.2.2']
47
+ s.add_runtime_dependency 'childprocess', ['>= 0.5', '< 5.0']
48
+ s.add_runtime_dependency 'rexml', ['~> 3.2', '>= 3.2.5']
49
+ s.add_runtime_dependency 'rubyzip', ['>= 1.2.2']
36
50
 
37
51
  # childprocess requires ffi on windows but doesn't declare it in its dependencies
38
52
  s.add_development_dependency 'ffi'
53
+ s.add_development_dependency 'pry', ['~> 0.14']
39
54
  s.add_development_dependency 'rack', ['~> 2.0']
40
55
  s.add_development_dependency 'rake'
41
56
  s.add_development_dependency 'rspec', ['~> 3.0']
42
- s.add_development_dependency 'rubocop', ['~> 0.67.0']
57
+ s.add_development_dependency 'rubocop', ['~> 1.8.0']
43
58
  s.add_development_dependency 'rubocop-performance'
44
59
  s.add_development_dependency 'rubocop-rspec'
45
60
  s.add_development_dependency 'webmock', ['~> 3.5']
61
+ s.add_development_dependency 'webrick', ['~> 1.7']
46
62
  s.add_development_dependency 'yard', ['~> 0.9.11']
47
63
  end
metadata CHANGED
@@ -1,18 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-webdriver
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.alpha2
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Rodionov
8
8
  - Titus Fortner
9
9
  - Thomas Walpole
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2019-05-02 00:00:00.000000000 Z
13
+ date: 2021-10-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
+ name: childprocess
16
17
  requirement: !ruby/object:Gem::Requirement
17
18
  requirements:
18
19
  - - ">="
@@ -20,10 +21,9 @@ dependencies:
20
21
  version: '0.5'
21
22
  - - "<"
22
23
  - !ruby/object:Gem::Version
23
- version: '2.0'
24
- name: childprocess
25
- prerelease: false
24
+ version: '5.0'
26
25
  type: :runtime
26
+ prerelease: false
27
27
  version_requirements: !ruby/object:Gem::Requirement
28
28
  requirements:
29
29
  - - ">="
@@ -31,156 +31,199 @@ dependencies:
31
31
  version: '0.5'
32
32
  - - "<"
33
33
  - !ruby/object:Gem::Version
34
- version: '2.0'
34
+ version: '5.0'
35
35
  - !ruby/object:Gem::Dependency
36
+ name: rexml
36
37
  requirement: !ruby/object:Gem::Requirement
37
38
  requirements:
38
39
  - - "~>"
39
40
  - !ruby/object:Gem::Version
40
- version: '1.2'
41
+ version: '3.2'
41
42
  - - ">="
42
43
  - !ruby/object:Gem::Version
43
- version: 1.2.2
44
- name: rubyzip
45
- prerelease: false
44
+ version: 3.2.5
46
45
  type: :runtime
46
+ prerelease: false
47
47
  version_requirements: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - - "~>"
50
50
  - !ruby/object:Gem::Version
51
- version: '1.2'
51
+ version: '3.2'
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 3.2.5
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubyzip
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: 1.2.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
52
66
  - - ">="
53
67
  - !ruby/object:Gem::Version
54
68
  version: 1.2.2
55
69
  - !ruby/object:Gem::Dependency
70
+ name: ffi
56
71
  requirement: !ruby/object:Gem::Requirement
57
72
  requirements:
58
73
  - - ">="
59
74
  - !ruby/object:Gem::Version
60
75
  version: '0'
61
- name: ffi
62
- prerelease: false
63
76
  type: :development
77
+ prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
84
+ name: pry
70
85
  requirement: !ruby/object:Gem::Requirement
71
86
  requirements:
72
87
  - - "~>"
73
88
  - !ruby/object:Gem::Version
74
- version: '2.0'
75
- name: rack
89
+ version: '0.14'
90
+ type: :development
76
91
  prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.14'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rack
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
77
104
  type: :development
105
+ prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
110
  version: '2.0'
83
111
  - !ruby/object:Gem::Dependency
112
+ name: rake
84
113
  requirement: !ruby/object:Gem::Requirement
85
114
  requirements:
86
115
  - - ">="
87
116
  - !ruby/object:Gem::Version
88
117
  version: '0'
89
- name: rake
90
- prerelease: false
91
118
  type: :development
119
+ prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - ">="
95
123
  - !ruby/object:Gem::Version
96
124
  version: '0'
97
125
  - !ruby/object:Gem::Dependency
126
+ name: rspec
98
127
  requirement: !ruby/object:Gem::Requirement
99
128
  requirements:
100
129
  - - "~>"
101
130
  - !ruby/object:Gem::Version
102
131
  version: '3.0'
103
- name: rspec
104
- prerelease: false
105
132
  type: :development
133
+ prerelease: false
106
134
  version_requirements: !ruby/object:Gem::Requirement
107
135
  requirements:
108
136
  - - "~>"
109
137
  - !ruby/object:Gem::Version
110
138
  version: '3.0'
111
139
  - !ruby/object:Gem::Dependency
140
+ name: rubocop
112
141
  requirement: !ruby/object:Gem::Requirement
113
142
  requirements:
114
143
  - - "~>"
115
144
  - !ruby/object:Gem::Version
116
- version: 0.67.0
117
- name: rubocop
118
- prerelease: false
145
+ version: 1.8.0
119
146
  type: :development
147
+ prerelease: false
120
148
  version_requirements: !ruby/object:Gem::Requirement
121
149
  requirements:
122
150
  - - "~>"
123
151
  - !ruby/object:Gem::Version
124
- version: 0.67.0
152
+ version: 1.8.0
125
153
  - !ruby/object:Gem::Dependency
154
+ name: rubocop-performance
126
155
  requirement: !ruby/object:Gem::Requirement
127
156
  requirements:
128
157
  - - ">="
129
158
  - !ruby/object:Gem::Version
130
159
  version: '0'
131
- name: rubocop-performance
132
- prerelease: false
133
160
  type: :development
161
+ prerelease: false
134
162
  version_requirements: !ruby/object:Gem::Requirement
135
163
  requirements:
136
164
  - - ">="
137
165
  - !ruby/object:Gem::Version
138
166
  version: '0'
139
167
  - !ruby/object:Gem::Dependency
168
+ name: rubocop-rspec
140
169
  requirement: !ruby/object:Gem::Requirement
141
170
  requirements:
142
171
  - - ">="
143
172
  - !ruby/object:Gem::Version
144
173
  version: '0'
145
- name: rubocop-rspec
146
- prerelease: false
147
174
  type: :development
175
+ prerelease: false
148
176
  version_requirements: !ruby/object:Gem::Requirement
149
177
  requirements:
150
178
  - - ">="
151
179
  - !ruby/object:Gem::Version
152
180
  version: '0'
153
181
  - !ruby/object:Gem::Dependency
182
+ name: webmock
154
183
  requirement: !ruby/object:Gem::Requirement
155
184
  requirements:
156
185
  - - "~>"
157
186
  - !ruby/object:Gem::Version
158
187
  version: '3.5'
159
- name: webmock
160
- prerelease: false
161
188
  type: :development
189
+ prerelease: false
162
190
  version_requirements: !ruby/object:Gem::Requirement
163
191
  requirements:
164
192
  - - "~>"
165
193
  - !ruby/object:Gem::Version
166
194
  version: '3.5'
167
195
  - !ruby/object:Gem::Dependency
196
+ name: webrick
168
197
  requirement: !ruby/object:Gem::Requirement
169
198
  requirements:
170
199
  - - "~>"
171
200
  - !ruby/object:Gem::Version
172
- version: 0.9.11
173
- name: yard
201
+ version: '1.7'
202
+ type: :development
174
203
  prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '1.7'
209
+ - !ruby/object:Gem::Dependency
210
+ name: yard
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: 0.9.11
175
216
  type: :development
217
+ prerelease: false
176
218
  version_requirements: !ruby/object:Gem::Requirement
177
219
  requirements:
178
220
  - - "~>"
179
221
  - !ruby/object:Gem::Version
180
222
  version: 0.9.11
181
- description: WebDriver is a tool for writing automated tests of websites. It aims
182
- to mimic the behaviour of a real user, and as such interacts with the HTML of the
183
- application.
223
+ description: |2
224
+ Selenium implements the W3C WebDriver protocol to automate popular browsers.
225
+ It aims to mimic the behaviour of a real user as it interacts with the application's HTML.
226
+ It's primarily intended for web application testing, but any web-based task can automated.
184
227
  email:
185
228
  - p0deje@gmail.com
186
229
  - titusfortner@gmail.com
@@ -192,16 +235,19 @@ files:
192
235
  - CHANGES
193
236
  - Gemfile
194
237
  - LICENSE
238
+ - NOTICE
195
239
  - README.md
196
240
  - lib/selenium-webdriver.rb
197
241
  - lib/selenium/server.rb
198
242
  - lib/selenium/webdriver.rb
199
243
  - lib/selenium/webdriver/atoms.rb
244
+ - lib/selenium/webdriver/atoms/findElements.js
200
245
  - lib/selenium/webdriver/atoms/getAttribute.js
201
246
  - lib/selenium/webdriver/atoms/isDisplayed.js
247
+ - lib/selenium/webdriver/atoms/mutationListener.js
202
248
  - lib/selenium/webdriver/chrome.rb
203
- - lib/selenium/webdriver/chrome/bridge.rb
204
249
  - lib/selenium/webdriver/chrome/driver.rb
250
+ - lib/selenium/webdriver/chrome/features.rb
205
251
  - lib/selenium/webdriver/chrome/options.rb
206
252
  - lib/selenium/webdriver/chrome/profile.rb
207
253
  - lib/selenium/webdriver/chrome/service.rb
@@ -210,17 +256,28 @@ files:
210
256
  - lib/selenium/webdriver/common/alert.rb
211
257
  - lib/selenium/webdriver/common/driver.rb
212
258
  - lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
259
+ - lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb
213
260
  - lib/selenium/webdriver/common/driver_extensions/has_addons.rb
261
+ - lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb
262
+ - lib/selenium/webdriver/common/driver_extensions/has_authentication.rb
263
+ - lib/selenium/webdriver/common/driver_extensions/has_casting.rb
264
+ - lib/selenium/webdriver/common/driver_extensions/has_cdp.rb
265
+ - lib/selenium/webdriver/common/driver_extensions/has_context.rb
214
266
  - lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
267
+ - lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
268
+ - lib/selenium/webdriver/common/driver_extensions/has_launching.rb
215
269
  - lib/selenium/webdriver/common/driver_extensions/has_location.rb
270
+ - lib/selenium/webdriver/common/driver_extensions/has_log_events.rb
271
+ - lib/selenium/webdriver/common/driver_extensions/has_logs.rb
216
272
  - lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
217
273
  - lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
274
+ - lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb
218
275
  - lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
276
+ - lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb
219
277
  - lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
220
278
  - lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
221
279
  - lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
222
- - lib/selenium/webdriver/common/driver_extensions/rotatable.rb
223
- - lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
280
+ - lib/selenium/webdriver/common/driver_extensions/prints_page.rb
224
281
  - lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
225
282
  - lib/selenium/webdriver/common/element.rb
226
283
  - lib/selenium/webdriver/common/error.rb
@@ -242,29 +299,40 @@ files:
242
299
  - lib/selenium/webdriver/common/logs.rb
243
300
  - lib/selenium/webdriver/common/manager.rb
244
301
  - lib/selenium/webdriver/common/navigation.rb
302
+ - lib/selenium/webdriver/common/options.rb
245
303
  - lib/selenium/webdriver/common/platform.rb
246
304
  - lib/selenium/webdriver/common/port_prober.rb
247
305
  - lib/selenium/webdriver/common/profile_helper.rb
248
306
  - lib/selenium/webdriver/common/proxy.rb
249
307
  - lib/selenium/webdriver/common/search_context.rb
250
308
  - lib/selenium/webdriver/common/service.rb
309
+ - lib/selenium/webdriver/common/service_manager.rb
310
+ - lib/selenium/webdriver/common/shadow_root.rb
251
311
  - lib/selenium/webdriver/common/socket_lock.rb
252
312
  - lib/selenium/webdriver/common/socket_poller.rb
313
+ - lib/selenium/webdriver/common/takes_screenshot.rb
253
314
  - lib/selenium/webdriver/common/target_locator.rb
254
315
  - lib/selenium/webdriver/common/timeouts.rb
255
316
  - lib/selenium/webdriver/common/wait.rb
256
317
  - lib/selenium/webdriver/common/window.rb
257
318
  - lib/selenium/webdriver/common/zipper.rb
319
+ - lib/selenium/webdriver/devtools.rb
320
+ - lib/selenium/webdriver/devtools/console_event.rb
321
+ - lib/selenium/webdriver/devtools/exception_event.rb
322
+ - lib/selenium/webdriver/devtools/mutation_event.rb
323
+ - lib/selenium/webdriver/devtools/pinned_script.rb
324
+ - lib/selenium/webdriver/devtools/request.rb
325
+ - lib/selenium/webdriver/devtools/response.rb
258
326
  - lib/selenium/webdriver/edge.rb
259
327
  - lib/selenium/webdriver/edge/driver.rb
328
+ - lib/selenium/webdriver/edge/features.rb
260
329
  - lib/selenium/webdriver/edge/options.rb
330
+ - lib/selenium/webdriver/edge/profile.rb
261
331
  - lib/selenium/webdriver/edge/service.rb
262
332
  - lib/selenium/webdriver/firefox.rb
263
- - lib/selenium/webdriver/firefox/binary.rb
264
- - lib/selenium/webdriver/firefox/bridge.rb
265
333
  - lib/selenium/webdriver/firefox/driver.rb
266
334
  - lib/selenium/webdriver/firefox/extension.rb
267
- - lib/selenium/webdriver/firefox/extension/prefs.json
335
+ - lib/selenium/webdriver/firefox/features.rb
268
336
  - lib/selenium/webdriver/firefox/options.rb
269
337
  - lib/selenium/webdriver/firefox/profile.rb
270
338
  - lib/selenium/webdriver/firefox/profiles_ini.rb
@@ -285,26 +353,32 @@ files:
285
353
  - lib/selenium/webdriver/remote/response.rb
286
354
  - lib/selenium/webdriver/remote/server_error.rb
287
355
  - lib/selenium/webdriver/safari.rb
288
- - lib/selenium/webdriver/safari/bridge.rb
289
356
  - lib/selenium/webdriver/safari/driver.rb
357
+ - lib/selenium/webdriver/safari/features.rb
290
358
  - lib/selenium/webdriver/safari/options.rb
291
359
  - lib/selenium/webdriver/safari/service.rb
292
360
  - lib/selenium/webdriver/support.rb
293
361
  - lib/selenium/webdriver/support/abstract_event_listener.rb
294
362
  - lib/selenium/webdriver/support/block_event_listener.rb
363
+ - lib/selenium/webdriver/support/cdp/domain.rb.erb
364
+ - lib/selenium/webdriver/support/cdp_client_generator.rb
295
365
  - lib/selenium/webdriver/support/color.rb
296
366
  - lib/selenium/webdriver/support/escaper.rb
297
367
  - lib/selenium/webdriver/support/event_firing_bridge.rb
368
+ - lib/selenium/webdriver/support/guards.rb
369
+ - lib/selenium/webdriver/support/guards/guard.rb
370
+ - lib/selenium/webdriver/support/guards/guard_condition.rb
371
+ - lib/selenium/webdriver/support/relative_locator.rb
298
372
  - lib/selenium/webdriver/support/select.rb
299
373
  - lib/selenium/webdriver/version.rb
300
374
  - selenium-webdriver.gemspec
301
- homepage: https://github.com/SeleniumHQ/selenium
375
+ homepage: https://selenium.dev
302
376
  licenses:
303
377
  - Apache-2.0
304
378
  metadata:
305
- changelog_uri: https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES
306
- source_code_uri: https://github.com/SeleniumHQ/selenium/tree/master/rb
307
- post_install_message:
379
+ changelog_uri: https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES
380
+ source_code_uri: https://github.com/SeleniumHQ/selenium/tree/trunk/rb
381
+ post_install_message:
308
382
  rdoc_options: []
309
383
  require_paths:
310
384
  - lib
@@ -312,16 +386,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
312
386
  requirements:
313
387
  - - ">="
314
388
  - !ruby/object:Gem::Version
315
- version: '2.4'
389
+ version: '2.6'
316
390
  required_rubygems_version: !ruby/object:Gem::Requirement
317
391
  requirements:
318
392
  - - ">"
319
393
  - !ruby/object:Gem::Version
320
394
  version: 1.3.1
321
395
  requirements: []
322
- rubyforge_project:
323
- rubygems_version: 2.6.14
324
- signing_key:
396
+ rubygems_version: 3.0.3
397
+ signing_key:
325
398
  specification_version: 4
326
- summary: The next generation developer focused tool for automated testing of webapps
399
+ summary: Selenium is a browser automation tool for automated testing of webapps and
400
+ more
327
401
  test_files: []
@@ -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,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
- error << "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