selenium-webdriver 3.0.0.beta4.0 → 4.0.0.alpha5
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.
- checksums.yaml +7 -0
- data/CHANGES +679 -0
- data/Gemfile +2 -0
- data/LICENSE +1 -1
- data/README.md +1 -1
- data/lib/selenium-webdriver.rb +2 -2
- data/lib/selenium/server.rb +23 -16
- data/lib/selenium/webdriver.rb +43 -25
- data/lib/selenium/webdriver/atoms.rb +20 -1
- data/lib/selenium/webdriver/atoms/findElements.js +122 -0
- data/lib/selenium/webdriver/atoms/getAttribute.js +84 -11
- data/lib/selenium/webdriver/atoms/isDisplayed.js +100 -0
- data/lib/selenium/webdriver/chrome.rb +15 -20
- data/lib/selenium/webdriver/chrome/bridge.rb +29 -66
- data/lib/selenium/webdriver/{edge/service.rb → chrome/driver.rb} +19 -22
- data/lib/selenium/webdriver/chrome/options.rb +221 -0
- data/lib/selenium/webdriver/chrome/profile.rb +6 -7
- data/lib/selenium/webdriver/chrome/service.rb +20 -20
- data/lib/selenium/webdriver/common.rb +19 -11
- data/lib/selenium/webdriver/common/action_builder.rb +98 -246
- data/lib/selenium/webdriver/common/alert.rb +2 -7
- data/lib/selenium/webdriver/common/driver.rb +89 -51
- data/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +45 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +50 -0
- data/lib/selenium/webdriver/common/driver_extensions/{has_input_devices.rb → has_debugger.rb} +12 -25
- data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +38 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +3 -5
- data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +51 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +3 -3
- data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +51 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +2 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +2 -2
- data/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +2 -2
- data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +4 -4
- data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +9 -3
- data/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +3 -5
- data/lib/selenium/webdriver/common/element.rb +32 -10
- data/lib/selenium/webdriver/common/error.rb +103 -121
- data/lib/selenium/webdriver/common/file_reaper.rb +3 -5
- data/lib/selenium/webdriver/common/html5/local_storage.rb +2 -2
- data/lib/selenium/webdriver/common/html5/session_storage.rb +2 -2
- data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +3 -2
- data/lib/selenium/webdriver/common/interactions/input_device.rb +54 -0
- data/lib/selenium/webdriver/common/interactions/interaction.rb +53 -0
- data/lib/selenium/webdriver/{phantomjs.rb → common/interactions/interactions.rb} +17 -20
- data/lib/selenium/webdriver/common/interactions/key_actions.rb +145 -0
- data/lib/selenium/webdriver/common/interactions/key_input.rb +66 -0
- data/lib/selenium/webdriver/common/interactions/none_input.rb +36 -0
- data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +363 -0
- data/lib/selenium/webdriver/common/interactions/pointer_input.rb +139 -0
- data/lib/selenium/webdriver/common/keys.rb +37 -15
- data/lib/selenium/webdriver/common/log_entry.rb +4 -4
- data/lib/selenium/webdriver/common/logger.rb +147 -0
- data/lib/selenium/webdriver/common/logs.rb +2 -2
- data/lib/selenium/webdriver/common/manager.rb +177 -0
- data/lib/selenium/webdriver/common/navigation.rb +2 -2
- data/lib/selenium/webdriver/common/options.rb +47 -105
- data/lib/selenium/webdriver/common/platform.rb +44 -38
- data/lib/selenium/webdriver/common/port_prober.rb +8 -19
- data/lib/selenium/webdriver/common/profile_helper.rb +13 -5
- data/lib/selenium/webdriver/common/proxy.rb +14 -8
- data/lib/selenium/webdriver/common/search_context.rb +16 -20
- data/lib/selenium/webdriver/common/service.rb +115 -30
- data/lib/selenium/webdriver/common/socket_lock.rb +12 -7
- data/lib/selenium/webdriver/common/socket_poller.rb +29 -22
- data/lib/selenium/webdriver/common/target_locator.rb +6 -6
- data/lib/selenium/webdriver/common/timeouts.rb +2 -2
- data/lib/selenium/webdriver/common/wait.rb +14 -8
- data/lib/selenium/webdriver/common/window.rb +38 -2
- data/lib/selenium/webdriver/common/zipper.rb +3 -5
- data/lib/selenium/webdriver/edge.rb +33 -20
- data/lib/selenium/webdriver/edge_chrome/bridge.rb +30 -0
- data/lib/selenium/webdriver/edge_chrome/driver.rb +38 -0
- data/lib/selenium/webdriver/{common/driver_extensions/has_touch_screen.rb → edge_chrome/options.rb} +10 -12
- data/lib/selenium/webdriver/edge_chrome/profile.rb +33 -0
- data/lib/selenium/webdriver/edge_chrome/service.rb +36 -0
- data/lib/selenium/webdriver/edge_html/driver.rb +39 -0
- data/lib/selenium/webdriver/edge_html/options.rb +91 -0
- data/lib/selenium/webdriver/edge_html/service.rb +47 -0
- data/lib/selenium/webdriver/firefox.rb +24 -29
- data/lib/selenium/webdriver/firefox/bridge.rb +15 -39
- data/lib/selenium/webdriver/firefox/{util.rb → driver.rb} +13 -19
- data/lib/selenium/webdriver/firefox/extension.rb +28 -8
- data/lib/selenium/webdriver/firefox/options.rb +162 -0
- data/lib/selenium/webdriver/firefox/profile.rb +23 -82
- data/lib/selenium/webdriver/firefox/profiles_ini.rb +5 -5
- data/lib/selenium/webdriver/firefox/service.rb +18 -37
- data/lib/selenium/webdriver/ie.rb +13 -19
- data/lib/selenium/webdriver/ie/driver.rb +40 -0
- data/lib/selenium/webdriver/ie/options.rb +118 -0
- data/lib/selenium/webdriver/ie/service.rb +20 -20
- data/lib/selenium/webdriver/remote.rb +15 -17
- data/lib/selenium/webdriver/remote/bridge.rb +281 -300
- data/lib/selenium/webdriver/remote/capabilities.rb +102 -83
- data/lib/selenium/webdriver/remote/commands.rb +132 -192
- data/lib/selenium/webdriver/remote/driver.rb +52 -0
- data/lib/selenium/webdriver/remote/http/common.rb +23 -13
- data/lib/selenium/webdriver/remote/http/curb.rb +10 -7
- data/lib/selenium/webdriver/remote/http/default.rb +52 -32
- data/lib/selenium/webdriver/remote/http/persistent.rb +8 -4
- data/lib/selenium/webdriver/remote/response.rb +32 -35
- data/lib/selenium/webdriver/remote/server_error.rb +2 -2
- data/lib/selenium/webdriver/safari.rb +24 -22
- data/lib/selenium/webdriver/safari/bridge.rb +21 -21
- data/lib/selenium/webdriver/safari/driver.rb +41 -0
- data/lib/selenium/webdriver/safari/options.rb +66 -0
- data/lib/selenium/webdriver/safari/service.rb +8 -24
- data/lib/selenium/webdriver/support.rb +3 -2
- data/lib/selenium/webdriver/support/abstract_event_listener.rb +2 -2
- data/lib/selenium/webdriver/support/block_event_listener.rb +3 -3
- data/lib/selenium/webdriver/support/color.rb +13 -13
- data/lib/selenium/webdriver/support/escaper.rb +2 -2
- data/lib/selenium/webdriver/support/event_firing_bridge.rb +4 -4
- data/lib/selenium/webdriver/support/relative_locator.rb +51 -0
- data/lib/selenium/webdriver/support/select.rb +20 -21
- data/lib/selenium/webdriver/version.rb +24 -0
- data/selenium-webdriver.gemspec +31 -17
- metadata +331 -248
- data/lib/selenium/webdriver/common/bridge_helper.rb +0 -82
- data/lib/selenium/webdriver/common/keyboard.rb +0 -69
- data/lib/selenium/webdriver/common/mouse.rb +0 -88
- data/lib/selenium/webdriver/common/touch_action_builder.rb +0 -81
- data/lib/selenium/webdriver/common/touch_screen.rb +0 -121
- data/lib/selenium/webdriver/common/w3c_error.rb +0 -191
- data/lib/selenium/webdriver/edge/bridge.rb +0 -76
- data/lib/selenium/webdriver/edge/legacy_support.rb +0 -117
- data/lib/selenium/webdriver/firefox/binary.rb +0 -186
- data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/firefox/launcher.rb +0 -114
- data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
- data/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
- data/lib/selenium/webdriver/firefox/w3c_bridge.rb +0 -79
- data/lib/selenium/webdriver/ie/bridge.rb +0 -76
- data/lib/selenium/webdriver/phantomjs/bridge.rb +0 -65
- data/lib/selenium/webdriver/phantomjs/service.rb +0 -66
- data/lib/selenium/webdriver/remote/w3c_bridge.rb +0 -682
- data/lib/selenium/webdriver/remote/w3c_capabilities.rb +0 -228
- data/lib/selenium/webdriver/remote/w3c_commands.rb +0 -135
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
3
|
# Licensed to the Software Freedom Conservancy (SFC) under one
|
|
4
4
|
# or more contributor license agreements. See the NOTICE file
|
|
5
5
|
# distributed with this work for additional information
|
|
@@ -28,9 +28,7 @@ module Selenium
|
|
|
28
28
|
def initialize(element)
|
|
29
29
|
tag_name = element.tag_name
|
|
30
30
|
|
|
31
|
-
unless tag_name.casecmp('select').zero?
|
|
32
|
-
raise ArgumentError, "unexpected tag name #{tag_name.inspect}"
|
|
33
|
-
end
|
|
31
|
+
raise ArgumentError, "unexpected tag name #{tag_name.inspect}" unless tag_name.casecmp('select').zero?
|
|
34
32
|
|
|
35
33
|
@element = element
|
|
36
34
|
@multi = ![nil, 'false'].include?(element.attribute(:multiple))
|
|
@@ -76,6 +74,7 @@ module Selenium
|
|
|
76
74
|
def first_selected_option
|
|
77
75
|
option = options.find(&:selected?)
|
|
78
76
|
return option if option
|
|
77
|
+
|
|
79
78
|
raise Error::NoSuchElementError, 'no options are selected'
|
|
80
79
|
end
|
|
81
80
|
|
|
@@ -142,9 +141,7 @@ module Selenium
|
|
|
142
141
|
#
|
|
143
142
|
|
|
144
143
|
def select_all
|
|
145
|
-
unless multiple?
|
|
146
|
-
raise Error::UnsupportedOperationError, 'you may only select all options of a multi-select'
|
|
147
|
-
end
|
|
144
|
+
raise Error::UnsupportedOperationError, 'you may only select all options of a multi-select' unless multiple?
|
|
148
145
|
|
|
149
146
|
options.each { |e| select_option e }
|
|
150
147
|
end
|
|
@@ -156,9 +153,7 @@ module Selenium
|
|
|
156
153
|
#
|
|
157
154
|
|
|
158
155
|
def deselect_all
|
|
159
|
-
unless multiple?
|
|
160
|
-
raise Error::UnsupportedOperationError, 'you may only deselect all options of a multi-select'
|
|
161
|
-
end
|
|
156
|
+
raise Error::UnsupportedOperationError, 'you may only deselect all options of a multi-select' unless multiple?
|
|
162
157
|
|
|
163
158
|
options.each { |e| deselect_option e }
|
|
164
159
|
end
|
|
@@ -169,6 +164,7 @@ module Selenium
|
|
|
169
164
|
opts = find_by_text text
|
|
170
165
|
|
|
171
166
|
return select_options(opts) unless opts.empty?
|
|
167
|
+
|
|
172
168
|
raise Error::NoSuchElementError, "cannot locate element with text: #{text.inspect}"
|
|
173
169
|
end
|
|
174
170
|
|
|
@@ -176,6 +172,7 @@ module Selenium
|
|
|
176
172
|
opts = find_by_index index
|
|
177
173
|
|
|
178
174
|
return select_option(opts.first) unless opts.empty?
|
|
175
|
+
|
|
179
176
|
raise Error::NoSuchElementError, "cannot locate element with index: #{index.inspect}"
|
|
180
177
|
end
|
|
181
178
|
|
|
@@ -183,36 +180,37 @@ module Selenium
|
|
|
183
180
|
opts = find_by_value value
|
|
184
181
|
|
|
185
182
|
return select_options(opts) unless opts.empty?
|
|
183
|
+
|
|
186
184
|
raise Error::NoSuchElementError, "cannot locate option with value: #{value.inspect}"
|
|
187
185
|
end
|
|
188
186
|
|
|
189
187
|
def deselect_by_text(text)
|
|
190
|
-
unless multiple?
|
|
191
|
-
|
|
192
|
-
end
|
|
188
|
+
raise Error::UnsupportedOperationError, 'you may only deselect option of a multi-select' unless multiple?
|
|
189
|
+
|
|
193
190
|
opts = find_by_text text
|
|
194
191
|
|
|
195
192
|
return deselect_options(opts) unless opts.empty?
|
|
193
|
+
|
|
196
194
|
raise Error::NoSuchElementError, "cannot locate element with text: #{text.inspect}"
|
|
197
195
|
end
|
|
198
196
|
|
|
199
197
|
def deselect_by_value(value)
|
|
200
|
-
unless multiple?
|
|
201
|
-
|
|
202
|
-
end
|
|
198
|
+
raise Error::UnsupportedOperationError, 'you may only deselect option of a multi-select' unless multiple?
|
|
199
|
+
|
|
203
200
|
opts = find_by_value value
|
|
204
201
|
|
|
205
202
|
return deselect_options(opts) unless opts.empty?
|
|
203
|
+
|
|
206
204
|
raise Error::NoSuchElementError, "cannot locate option with value: #{value.inspect}"
|
|
207
205
|
end
|
|
208
206
|
|
|
209
207
|
def deselect_by_index(index)
|
|
210
|
-
unless multiple?
|
|
211
|
-
|
|
212
|
-
end
|
|
208
|
+
raise Error::UnsupportedOperationError, 'you may only deselect option of a multi-select' unless multiple?
|
|
209
|
+
|
|
213
210
|
opts = find_by_index index
|
|
214
211
|
|
|
215
212
|
return deselect_option(opts.first) unless opts.empty?
|
|
213
|
+
|
|
216
214
|
raise Error::NoSuchElementError, "cannot locate option with index: #{index}"
|
|
217
215
|
end
|
|
218
216
|
|
|
@@ -244,7 +242,7 @@ module Selenium
|
|
|
244
242
|
xpath = ".//option[normalize-space(.) = #{Escaper.escape text}]"
|
|
245
243
|
opts = @element.find_elements(xpath: xpath)
|
|
246
244
|
|
|
247
|
-
return opts unless opts.empty? &&
|
|
245
|
+
return opts unless opts.empty? && /\s+/.match?(text)
|
|
248
246
|
|
|
249
247
|
longest_word = text.split(/\s+/).max_by(&:length)
|
|
250
248
|
if longest_word.empty?
|
|
@@ -255,6 +253,7 @@ module Selenium
|
|
|
255
253
|
end
|
|
256
254
|
|
|
257
255
|
return Array(candidates.find { |option| text == option.text }) unless multiple?
|
|
256
|
+
|
|
258
257
|
candidates.select { |option| text == option.text }
|
|
259
258
|
end
|
|
260
259
|
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
+
VERSION = '4.0.0.alpha5'
|
|
23
|
+
end # WebDriver
|
|
24
|
+
end # Selenium
|
data/selenium-webdriver.gemspec
CHANGED
|
@@ -1,34 +1,48 @@
|
|
|
1
|
-
#
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
root = File.expand_path(File.dirname(__FILE__))
|
|
4
4
|
raise "cwd must be #{root} when reading gemspec" if root != Dir.pwd
|
|
5
5
|
|
|
6
|
+
$LOAD_PATH.push(File.expand_path('lib', root))
|
|
7
|
+
require 'selenium/webdriver/version'
|
|
8
|
+
|
|
6
9
|
Gem::Specification.new do |s|
|
|
7
10
|
s.name = 'selenium-webdriver'
|
|
8
|
-
s.version =
|
|
11
|
+
s.version = Selenium::WebDriver::VERSION
|
|
12
|
+
|
|
13
|
+
s.authors = ['Alex Rodionov', 'Titus Fortner', 'Thomas Walpole']
|
|
14
|
+
s.email = ['p0deje@gmail.com', 'titusfortner@gmail.com', 'twalpole@gmail.com']
|
|
9
15
|
|
|
10
|
-
s.authors = ['Alex Rodionov', 'Titus Fortner']
|
|
11
|
-
s.email = ['p0deje@gmail.com', 'titusfortner@gmail.com']
|
|
12
|
-
s.description = 'WebDriver is a tool for writing automated tests of websites.
|
|
13
|
-
It aims to mimic the behaviour of a real user, and as such interacts with the
|
|
14
|
-
HTML of the application.'
|
|
15
16
|
s.summary = 'The next generation developer focused tool for automated testing of webapps'
|
|
16
|
-
s.
|
|
17
|
-
|
|
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.'
|
|
20
|
+
|
|
21
|
+
s.license = 'Apache-2.0'
|
|
22
|
+
s.homepage = 'https://github.com/SeleniumHQ/selenium'
|
|
23
|
+
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
|
+
}
|
|
18
27
|
|
|
19
28
|
s.required_rubygems_version = Gem::Requirement.new('> 1.3.1') if s.respond_to? :required_rubygems_version=
|
|
20
|
-
s.required_ruby_version = Gem::Requirement.new('>= 2.
|
|
29
|
+
s.required_ruby_version = Gem::Requirement.new('>= 2.4')
|
|
21
30
|
|
|
22
31
|
s.files = Dir[root + '/**/*'].reject { |e| e =~ /ruby\.iml|build\.desc/ }.map { |e| e.sub(root + '/', '') }
|
|
23
32
|
s.require_paths = ['lib']
|
|
24
33
|
|
|
25
|
-
s.add_runtime_dependency '
|
|
26
|
-
s.add_runtime_dependency '
|
|
34
|
+
s.add_runtime_dependency 'childprocess', ['>= 0.5', '< 4.0']
|
|
35
|
+
s.add_runtime_dependency 'rubyzip', ['>= 1.2.2']
|
|
27
36
|
s.add_runtime_dependency 'websocket', ['~> 1.0']
|
|
28
37
|
|
|
29
|
-
|
|
30
|
-
s.add_development_dependency '
|
|
31
|
-
s.add_development_dependency '
|
|
32
|
-
s.add_development_dependency '
|
|
33
|
-
s.add_development_dependency '
|
|
38
|
+
# childprocess requires ffi on windows but doesn't declare it in its dependencies
|
|
39
|
+
s.add_development_dependency 'ffi'
|
|
40
|
+
s.add_development_dependency 'rack', ['~> 2.0']
|
|
41
|
+
s.add_development_dependency 'rake'
|
|
42
|
+
s.add_development_dependency 'rspec', ['~> 3.0']
|
|
43
|
+
s.add_development_dependency 'rubocop', ['~> 0.73.0']
|
|
44
|
+
s.add_development_dependency 'rubocop-performance'
|
|
45
|
+
s.add_development_dependency 'rubocop-rspec'
|
|
46
|
+
s.add_development_dependency 'webmock', ['~> 3.5']
|
|
47
|
+
s.add_development_dependency 'yard', ['~> 0.9.11']
|
|
34
48
|
end
|
metadata
CHANGED
|
@@ -1,259 +1,342 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: selenium-webdriver
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
version: 3.0.0.beta4.0
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 4.0.0.alpha5
|
|
6
5
|
platform: ruby
|
|
7
|
-
authors:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
authors:
|
|
7
|
+
- Alex Rodionov
|
|
8
|
+
- Titus Fortner
|
|
9
|
+
- Thomas Walpole
|
|
10
|
+
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
13
|
+
date: 2020-03-18 00:00:00.000000000 Z
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
|
+
requirements:
|
|
18
|
+
- - ">="
|
|
19
|
+
- !ruby/object:Gem::Version
|
|
20
|
+
version: '0.5'
|
|
21
|
+
- - "<"
|
|
22
|
+
- !ruby/object:Gem::Version
|
|
23
|
+
version: '4.0'
|
|
24
|
+
name: childprocess
|
|
25
|
+
prerelease: false
|
|
26
|
+
type: :runtime
|
|
27
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
28
|
+
requirements:
|
|
29
|
+
- - ">="
|
|
30
|
+
- !ruby/object:Gem::Version
|
|
31
|
+
version: '0.5'
|
|
32
|
+
- - "<"
|
|
33
|
+
- !ruby/object:Gem::Version
|
|
34
|
+
version: '4.0'
|
|
35
|
+
- !ruby/object:Gem::Dependency
|
|
36
|
+
requirement: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ">="
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 1.2.2
|
|
41
|
+
name: rubyzip
|
|
42
|
+
prerelease: false
|
|
43
|
+
type: :runtime
|
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
45
|
+
requirements:
|
|
46
|
+
- - ">="
|
|
47
|
+
- !ruby/object:Gem::Version
|
|
48
|
+
version: 1.2.2
|
|
49
|
+
- !ruby/object:Gem::Dependency
|
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '1.0'
|
|
55
|
+
name: websocket
|
|
56
|
+
prerelease: false
|
|
57
|
+
type: :runtime
|
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
59
|
+
requirements:
|
|
60
|
+
- - "~>"
|
|
61
|
+
- !ruby/object:Gem::Version
|
|
62
|
+
version: '1.0'
|
|
63
|
+
- !ruby/object:Gem::Dependency
|
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
name: ffi
|
|
70
|
+
prerelease: false
|
|
71
|
+
type: :development
|
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
+
requirements:
|
|
74
|
+
- - ">="
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: '0'
|
|
77
|
+
- !ruby/object:Gem::Dependency
|
|
78
|
+
requirement: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '2.0'
|
|
83
|
+
name: rack
|
|
84
|
+
prerelease: false
|
|
85
|
+
type: :development
|
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
87
|
+
requirements:
|
|
88
|
+
- - "~>"
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '2.0'
|
|
91
|
+
- !ruby/object:Gem::Dependency
|
|
92
|
+
requirement: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - ">="
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: '0'
|
|
97
|
+
name: rake
|
|
98
|
+
prerelease: false
|
|
99
|
+
type: :development
|
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
101
|
+
requirements:
|
|
102
|
+
- - ">="
|
|
103
|
+
- !ruby/object:Gem::Version
|
|
104
|
+
version: '0'
|
|
105
|
+
- !ruby/object:Gem::Dependency
|
|
106
|
+
requirement: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '3.0'
|
|
111
|
+
name: rspec
|
|
112
|
+
prerelease: false
|
|
113
|
+
type: :development
|
|
114
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
115
|
+
requirements:
|
|
116
|
+
- - "~>"
|
|
117
|
+
- !ruby/object:Gem::Version
|
|
118
|
+
version: '3.0'
|
|
119
|
+
- !ruby/object:Gem::Dependency
|
|
120
|
+
requirement: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: 0.73.0
|
|
125
|
+
name: rubocop
|
|
126
|
+
prerelease: false
|
|
127
|
+
type: :development
|
|
128
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
129
|
+
requirements:
|
|
130
|
+
- - "~>"
|
|
131
|
+
- !ruby/object:Gem::Version
|
|
132
|
+
version: 0.73.0
|
|
133
|
+
- !ruby/object:Gem::Dependency
|
|
134
|
+
requirement: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
139
|
+
name: rubocop-performance
|
|
140
|
+
prerelease: false
|
|
141
|
+
type: :development
|
|
142
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
143
|
+
requirements:
|
|
144
|
+
- - ">="
|
|
145
|
+
- !ruby/object:Gem::Version
|
|
146
|
+
version: '0'
|
|
147
|
+
- !ruby/object:Gem::Dependency
|
|
148
|
+
requirement: !ruby/object:Gem::Requirement
|
|
149
|
+
requirements:
|
|
150
|
+
- - ">="
|
|
151
|
+
- !ruby/object:Gem::Version
|
|
152
|
+
version: '0'
|
|
153
|
+
name: rubocop-rspec
|
|
154
|
+
prerelease: false
|
|
155
|
+
type: :development
|
|
156
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
157
|
+
requirements:
|
|
158
|
+
- - ">="
|
|
159
|
+
- !ruby/object:Gem::Version
|
|
160
|
+
version: '0'
|
|
161
|
+
- !ruby/object:Gem::Dependency
|
|
162
|
+
requirement: !ruby/object:Gem::Requirement
|
|
163
|
+
requirements:
|
|
164
|
+
- - "~>"
|
|
165
|
+
- !ruby/object:Gem::Version
|
|
166
|
+
version: '3.5'
|
|
167
|
+
name: webmock
|
|
168
|
+
prerelease: false
|
|
169
|
+
type: :development
|
|
170
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
171
|
+
requirements:
|
|
172
|
+
- - "~>"
|
|
173
|
+
- !ruby/object:Gem::Version
|
|
174
|
+
version: '3.5'
|
|
175
|
+
- !ruby/object:Gem::Dependency
|
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - "~>"
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: 0.9.11
|
|
181
|
+
name: yard
|
|
182
|
+
prerelease: false
|
|
183
|
+
type: :development
|
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
185
|
+
requirements:
|
|
186
|
+
- - "~>"
|
|
187
|
+
- !ruby/object:Gem::Version
|
|
188
|
+
version: 0.9.11
|
|
189
|
+
description: WebDriver is a tool for writing automated tests of websites. It aims
|
|
190
|
+
to mimic the behaviour of a real user, and as such interacts with the HTML of the
|
|
191
|
+
application.
|
|
192
|
+
email:
|
|
193
|
+
- p0deje@gmail.com
|
|
194
|
+
- titusfortner@gmail.com
|
|
195
|
+
- twalpole@gmail.com
|
|
118
196
|
executables: []
|
|
119
|
-
|
|
120
197
|
extensions: []
|
|
121
|
-
|
|
122
198
|
extra_rdoc_files: []
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
199
|
+
files:
|
|
200
|
+
- CHANGES
|
|
201
|
+
- Gemfile
|
|
202
|
+
- LICENSE
|
|
203
|
+
- README.md
|
|
204
|
+
- lib/selenium-webdriver.rb
|
|
205
|
+
- lib/selenium/server.rb
|
|
206
|
+
- lib/selenium/webdriver.rb
|
|
207
|
+
- lib/selenium/webdriver/atoms.rb
|
|
208
|
+
- lib/selenium/webdriver/atoms/findElements.js
|
|
209
|
+
- lib/selenium/webdriver/atoms/getAttribute.js
|
|
210
|
+
- lib/selenium/webdriver/atoms/isDisplayed.js
|
|
211
|
+
- lib/selenium/webdriver/chrome.rb
|
|
212
|
+
- lib/selenium/webdriver/chrome/bridge.rb
|
|
213
|
+
- lib/selenium/webdriver/chrome/driver.rb
|
|
214
|
+
- lib/selenium/webdriver/chrome/options.rb
|
|
215
|
+
- lib/selenium/webdriver/chrome/profile.rb
|
|
216
|
+
- lib/selenium/webdriver/chrome/service.rb
|
|
217
|
+
- lib/selenium/webdriver/common.rb
|
|
218
|
+
- lib/selenium/webdriver/common/action_builder.rb
|
|
219
|
+
- lib/selenium/webdriver/common/alert.rb
|
|
220
|
+
- lib/selenium/webdriver/common/driver.rb
|
|
221
|
+
- lib/selenium/webdriver/common/driver_extensions/downloads_files.rb
|
|
222
|
+
- lib/selenium/webdriver/common/driver_extensions/has_addons.rb
|
|
223
|
+
- lib/selenium/webdriver/common/driver_extensions/has_debugger.rb
|
|
224
|
+
- lib/selenium/webdriver/common/driver_extensions/has_devtools.rb
|
|
225
|
+
- lib/selenium/webdriver/common/driver_extensions/has_location.rb
|
|
226
|
+
- lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb
|
|
227
|
+
- lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb
|
|
228
|
+
- lib/selenium/webdriver/common/driver_extensions/has_permissions.rb
|
|
229
|
+
- lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb
|
|
230
|
+
- lib/selenium/webdriver/common/driver_extensions/has_session_id.rb
|
|
231
|
+
- lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb
|
|
232
|
+
- lib/selenium/webdriver/common/driver_extensions/rotatable.rb
|
|
233
|
+
- lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
|
|
234
|
+
- lib/selenium/webdriver/common/driver_extensions/uploads_files.rb
|
|
235
|
+
- lib/selenium/webdriver/common/element.rb
|
|
236
|
+
- lib/selenium/webdriver/common/error.rb
|
|
237
|
+
- lib/selenium/webdriver/common/file_reaper.rb
|
|
238
|
+
- lib/selenium/webdriver/common/html5/local_storage.rb
|
|
239
|
+
- lib/selenium/webdriver/common/html5/session_storage.rb
|
|
240
|
+
- lib/selenium/webdriver/common/html5/shared_web_storage.rb
|
|
241
|
+
- lib/selenium/webdriver/common/interactions/input_device.rb
|
|
242
|
+
- lib/selenium/webdriver/common/interactions/interaction.rb
|
|
243
|
+
- lib/selenium/webdriver/common/interactions/interactions.rb
|
|
244
|
+
- lib/selenium/webdriver/common/interactions/key_actions.rb
|
|
245
|
+
- lib/selenium/webdriver/common/interactions/key_input.rb
|
|
246
|
+
- lib/selenium/webdriver/common/interactions/none_input.rb
|
|
247
|
+
- lib/selenium/webdriver/common/interactions/pointer_actions.rb
|
|
248
|
+
- lib/selenium/webdriver/common/interactions/pointer_input.rb
|
|
249
|
+
- lib/selenium/webdriver/common/keys.rb
|
|
250
|
+
- lib/selenium/webdriver/common/log_entry.rb
|
|
251
|
+
- lib/selenium/webdriver/common/logger.rb
|
|
252
|
+
- lib/selenium/webdriver/common/logs.rb
|
|
253
|
+
- lib/selenium/webdriver/common/manager.rb
|
|
254
|
+
- lib/selenium/webdriver/common/navigation.rb
|
|
255
|
+
- lib/selenium/webdriver/common/options.rb
|
|
256
|
+
- lib/selenium/webdriver/common/platform.rb
|
|
257
|
+
- lib/selenium/webdriver/common/port_prober.rb
|
|
258
|
+
- lib/selenium/webdriver/common/profile_helper.rb
|
|
259
|
+
- lib/selenium/webdriver/common/proxy.rb
|
|
260
|
+
- lib/selenium/webdriver/common/search_context.rb
|
|
261
|
+
- lib/selenium/webdriver/common/service.rb
|
|
262
|
+
- lib/selenium/webdriver/common/socket_lock.rb
|
|
263
|
+
- lib/selenium/webdriver/common/socket_poller.rb
|
|
264
|
+
- lib/selenium/webdriver/common/target_locator.rb
|
|
265
|
+
- lib/selenium/webdriver/common/timeouts.rb
|
|
266
|
+
- lib/selenium/webdriver/common/wait.rb
|
|
267
|
+
- lib/selenium/webdriver/common/window.rb
|
|
268
|
+
- lib/selenium/webdriver/common/zipper.rb
|
|
269
|
+
- lib/selenium/webdriver/edge.rb
|
|
270
|
+
- lib/selenium/webdriver/edge_chrome/bridge.rb
|
|
271
|
+
- lib/selenium/webdriver/edge_chrome/driver.rb
|
|
272
|
+
- lib/selenium/webdriver/edge_chrome/options.rb
|
|
273
|
+
- lib/selenium/webdriver/edge_chrome/profile.rb
|
|
274
|
+
- lib/selenium/webdriver/edge_chrome/service.rb
|
|
275
|
+
- lib/selenium/webdriver/edge_html/driver.rb
|
|
276
|
+
- lib/selenium/webdriver/edge_html/options.rb
|
|
277
|
+
- lib/selenium/webdriver/edge_html/service.rb
|
|
278
|
+
- lib/selenium/webdriver/firefox.rb
|
|
279
|
+
- lib/selenium/webdriver/firefox/bridge.rb
|
|
280
|
+
- lib/selenium/webdriver/firefox/driver.rb
|
|
281
|
+
- lib/selenium/webdriver/firefox/extension.rb
|
|
282
|
+
- lib/selenium/webdriver/firefox/options.rb
|
|
283
|
+
- lib/selenium/webdriver/firefox/profile.rb
|
|
284
|
+
- lib/selenium/webdriver/firefox/profiles_ini.rb
|
|
285
|
+
- lib/selenium/webdriver/firefox/service.rb
|
|
286
|
+
- lib/selenium/webdriver/ie.rb
|
|
287
|
+
- lib/selenium/webdriver/ie/driver.rb
|
|
288
|
+
- lib/selenium/webdriver/ie/options.rb
|
|
289
|
+
- lib/selenium/webdriver/ie/service.rb
|
|
290
|
+
- lib/selenium/webdriver/remote.rb
|
|
291
|
+
- lib/selenium/webdriver/remote/bridge.rb
|
|
292
|
+
- lib/selenium/webdriver/remote/capabilities.rb
|
|
293
|
+
- lib/selenium/webdriver/remote/commands.rb
|
|
294
|
+
- lib/selenium/webdriver/remote/driver.rb
|
|
295
|
+
- lib/selenium/webdriver/remote/http/common.rb
|
|
296
|
+
- lib/selenium/webdriver/remote/http/curb.rb
|
|
297
|
+
- lib/selenium/webdriver/remote/http/default.rb
|
|
298
|
+
- lib/selenium/webdriver/remote/http/persistent.rb
|
|
299
|
+
- lib/selenium/webdriver/remote/response.rb
|
|
300
|
+
- lib/selenium/webdriver/remote/server_error.rb
|
|
301
|
+
- lib/selenium/webdriver/safari.rb
|
|
302
|
+
- lib/selenium/webdriver/safari/bridge.rb
|
|
303
|
+
- lib/selenium/webdriver/safari/driver.rb
|
|
304
|
+
- lib/selenium/webdriver/safari/options.rb
|
|
305
|
+
- lib/selenium/webdriver/safari/service.rb
|
|
306
|
+
- lib/selenium/webdriver/support.rb
|
|
307
|
+
- lib/selenium/webdriver/support/abstract_event_listener.rb
|
|
308
|
+
- lib/selenium/webdriver/support/block_event_listener.rb
|
|
309
|
+
- lib/selenium/webdriver/support/color.rb
|
|
310
|
+
- lib/selenium/webdriver/support/escaper.rb
|
|
311
|
+
- lib/selenium/webdriver/support/event_firing_bridge.rb
|
|
312
|
+
- lib/selenium/webdriver/support/relative_locator.rb
|
|
313
|
+
- lib/selenium/webdriver/support/select.rb
|
|
314
|
+
- lib/selenium/webdriver/version.rb
|
|
315
|
+
- selenium-webdriver.gemspec
|
|
316
|
+
homepage: https://github.com/SeleniumHQ/selenium
|
|
317
|
+
licenses:
|
|
318
|
+
- Apache-2.0
|
|
319
|
+
metadata:
|
|
320
|
+
changelog_uri: https://github.com/SeleniumHQ/selenium/blob/master/rb/CHANGES
|
|
321
|
+
source_code_uri: https://github.com/SeleniumHQ/selenium/tree/master/rb
|
|
322
|
+
post_install_message:
|
|
235
323
|
rdoc_options: []
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
- - ">"
|
|
249
|
-
- !ruby/object:Gem::Version
|
|
250
|
-
version: 1.3.1
|
|
324
|
+
require_paths:
|
|
325
|
+
- lib
|
|
326
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
327
|
+
requirements:
|
|
328
|
+
- - ">="
|
|
329
|
+
- !ruby/object:Gem::Version
|
|
330
|
+
version: '2.4'
|
|
331
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
332
|
+
requirements:
|
|
333
|
+
- - ">"
|
|
334
|
+
- !ruby/object:Gem::Version
|
|
335
|
+
version: 1.3.1
|
|
251
336
|
requirements: []
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
specification_version: 3
|
|
337
|
+
rubyforge_project:
|
|
338
|
+
rubygems_version: 2.7.9
|
|
339
|
+
signing_key:
|
|
340
|
+
specification_version: 4
|
|
257
341
|
summary: The next generation developer focused tool for automated testing of webapps
|
|
258
342
|
test_files: []
|
|
259
|
-
|