selenium-webdriver 2.52.0 → 2.53.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.
- data/CHANGES +14 -0
- data/Gemfile.lock +53 -0
- data/lib/selenium/webdriver.rb +1 -3
- data/lib/selenium/webdriver/chrome/profile.rb +2 -2
- data/lib/selenium/webdriver/chrome/service.rb +8 -5
- data/lib/selenium/webdriver/common.rb +0 -1
- data/lib/selenium/webdriver/common/alert.rb +7 -1
- data/lib/selenium/webdriver/common/element.rb +1 -1
- data/lib/selenium/webdriver/common/error.rb +1 -1
- data/lib/selenium/webdriver/common/platform.rb +8 -0
- data/lib/selenium/webdriver/common/profile_helper.rb +2 -2
- data/lib/selenium/webdriver/common/proxy.rb +1 -1
- data/lib/selenium/webdriver/edge/legacy_support.rb +5 -5
- data/lib/selenium/webdriver/edge/service.rb +8 -5
- data/lib/selenium/webdriver/firefox/binary.rb +4 -0
- data/lib/selenium/webdriver/firefox/extension.rb +13 -11
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/firefox/profile.rb +3 -3
- data/lib/selenium/webdriver/firefox/service.rb +8 -5
- data/lib/selenium/webdriver/phantomjs/service.rb +8 -6
- data/lib/selenium/webdriver/remote/bridge.rb +4 -0
- data/lib/selenium/webdriver/remote/capabilities.rb +1 -1
- data/lib/selenium/webdriver/remote/commands.rb +2 -1
- data/lib/selenium/webdriver/remote/http/common.rb +2 -2
- data/lib/selenium/webdriver/remote/w3c_bridge.rb +8 -8
- data/lib/selenium/webdriver/remote/w3c_capabilities.rb +31 -14
- data/lib/selenium/webdriver/remote/w3c_commands.rb +1 -1
- data/lib/selenium/webdriver/safari/resources/client.js +266 -214
- data/lib/selenium/webdriver/safari/server.rb +6 -4
- data/lib/selenium/webdriver/support/select.rb +12 -2
- data/selenium-webdriver.gemspec +1 -2
- metadata +18 -29
- data/lib/selenium/webdriver/common/json_helper.rb +0 -53
@@ -44,7 +44,7 @@ module Selenium
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def send(command)
|
47
|
-
json =
|
47
|
+
json = JSON.generate(command)
|
48
48
|
puts ">>> #{json}" if $DEBUG
|
49
49
|
|
50
50
|
frame = WebSocket::Frame::Outgoing::Server.new(:version => @version, :data => json, :type => :text)
|
@@ -76,7 +76,7 @@ module Selenium
|
|
76
76
|
|
77
77
|
puts "<<< #{msg}" if $DEBUG
|
78
78
|
|
79
|
-
|
79
|
+
JSON.parse msg.to_s
|
80
80
|
end
|
81
81
|
|
82
82
|
def ws_uri
|
@@ -101,7 +101,9 @@ Server: safaridriver-ruby
|
|
101
101
|
|
102
102
|
HEADERS.gsub!("\n", "\r\n")
|
103
103
|
|
104
|
-
|
104
|
+
def html
|
105
|
+
"<!DOCTYPE html><script>#{Safari.resource_path.join('client.js').read}</script>"
|
106
|
+
end
|
105
107
|
|
106
108
|
def process_initial_http_request
|
107
109
|
http = @server.accept
|
@@ -121,7 +123,7 @@ Server: safaridriver-ruby
|
|
121
123
|
else
|
122
124
|
http << HEADERS % [200, 'OK']
|
123
125
|
http << "\r\n\r\n"
|
124
|
-
http <<
|
126
|
+
http << html
|
125
127
|
http.close
|
126
128
|
end
|
127
129
|
end
|
@@ -117,6 +117,7 @@ module Selenium
|
|
117
117
|
#
|
118
118
|
# @param [:text, :index, :value] how How to find the option
|
119
119
|
# @param [String] what What value to find the option by.
|
120
|
+
# @raise [Error::UnsupportedOperationError] if the element does not support multiple selections.
|
120
121
|
#
|
121
122
|
# @see Select#select_by
|
122
123
|
#
|
@@ -181,7 +182,7 @@ module Selenium
|
|
181
182
|
raise Error::NoSuchElementError, "cannot locate element with index: #{index.inspect}"
|
182
183
|
end
|
183
184
|
|
184
|
-
|
185
|
+
select_option opts.first
|
185
186
|
end
|
186
187
|
|
187
188
|
def select_by_value(value)
|
@@ -195,6 +196,9 @@ module Selenium
|
|
195
196
|
end
|
196
197
|
|
197
198
|
def deselect_by_text(text)
|
199
|
+
unless multiple?
|
200
|
+
raise Error::UnsupportedOperationError, 'you may only deselect option of a multi-select'
|
201
|
+
end
|
198
202
|
opts = find_by_text text
|
199
203
|
|
200
204
|
if opts.empty?
|
@@ -205,6 +209,9 @@ module Selenium
|
|
205
209
|
end
|
206
210
|
|
207
211
|
def deselect_by_value(value)
|
212
|
+
unless multiple?
|
213
|
+
raise Error::UnsupportedOperationError, 'you may only deselect option of a multi-select'
|
214
|
+
end
|
208
215
|
opts = find_by_value value
|
209
216
|
|
210
217
|
if opts.empty?
|
@@ -215,13 +222,16 @@ module Selenium
|
|
215
222
|
end
|
216
223
|
|
217
224
|
def deselect_by_index(index)
|
225
|
+
unless multiple?
|
226
|
+
raise Error::UnsupportedOperationError, 'you may only deselect option of a multi-select'
|
227
|
+
end
|
218
228
|
opts = find_by_index index
|
219
229
|
|
220
230
|
if opts.empty?
|
221
231
|
raise Error::NoSuchElementError, "cannot locate option with index: #{index}"
|
222
232
|
end
|
223
233
|
|
224
|
-
|
234
|
+
deselect_option opts.first
|
225
235
|
end
|
226
236
|
|
227
237
|
private
|
data/selenium-webdriver.gemspec
CHANGED
@@ -7,7 +7,7 @@ end
|
|
7
7
|
|
8
8
|
Gem::Specification.new do |s|
|
9
9
|
s.name = "selenium-webdriver"
|
10
|
-
s.version = "2.
|
10
|
+
s.version = "2.53.0"
|
11
11
|
|
12
12
|
s.authors = ["Jari Bakken"]
|
13
13
|
s.email = "jari.bakken@gmail.com"
|
@@ -22,7 +22,6 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.files = Dir[root + '/**/*'].reject { |e| e =~ /ruby\.iml|build\.desc/ }.map { |e| e.sub(root + '/', '') }
|
23
23
|
s.require_paths = ["lib"]
|
24
24
|
|
25
|
-
s.add_runtime_dependency "multi_json", ["~> 1.0"]
|
26
25
|
s.add_runtime_dependency "rubyzip", ["~> 1.0"]
|
27
26
|
s.add_runtime_dependency "childprocess", ["~> 0.5"]
|
28
27
|
s.add_runtime_dependency "websocket", ["~> 1.0"]
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: selenium-webdriver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 2.
|
5
|
+
version: 2.53.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jari Bakken
|
@@ -10,11 +10,11 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-03-15 00:00:00 -05:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
17
|
+
name: rubyzip
|
18
18
|
prerelease: false
|
19
19
|
requirement: &id001 !ruby/object:Gem::Requirement
|
20
20
|
none: false
|
@@ -24,65 +24,54 @@ dependencies:
|
|
24
24
|
version: "1.0"
|
25
25
|
type: :runtime
|
26
26
|
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rubyzip
|
29
|
-
prerelease: false
|
30
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
-
none: false
|
32
|
-
requirements:
|
33
|
-
- - ~>
|
34
|
-
- !ruby/object:Gem::Version
|
35
|
-
version: "1.0"
|
36
|
-
type: :runtime
|
37
|
-
version_requirements: *id002
|
38
27
|
- !ruby/object:Gem::Dependency
|
39
28
|
name: childprocess
|
40
29
|
prerelease: false
|
41
|
-
requirement: &
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
31
|
none: false
|
43
32
|
requirements:
|
44
33
|
- - ~>
|
45
34
|
- !ruby/object:Gem::Version
|
46
35
|
version: "0.5"
|
47
36
|
type: :runtime
|
48
|
-
version_requirements: *
|
37
|
+
version_requirements: *id002
|
49
38
|
- !ruby/object:Gem::Dependency
|
50
39
|
name: websocket
|
51
40
|
prerelease: false
|
52
|
-
requirement: &
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
42
|
none: false
|
54
43
|
requirements:
|
55
44
|
- - ~>
|
56
45
|
- !ruby/object:Gem::Version
|
57
46
|
version: "1.0"
|
58
47
|
type: :runtime
|
59
|
-
version_requirements: *
|
48
|
+
version_requirements: *id003
|
60
49
|
- !ruby/object:Gem::Dependency
|
61
50
|
name: rspec
|
62
51
|
prerelease: false
|
63
|
-
requirement: &
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
64
53
|
none: false
|
65
54
|
requirements:
|
66
55
|
- - ~>
|
67
56
|
- !ruby/object:Gem::Version
|
68
57
|
version: 2.99.0
|
69
58
|
type: :development
|
70
|
-
version_requirements: *
|
59
|
+
version_requirements: *id004
|
71
60
|
- !ruby/object:Gem::Dependency
|
72
61
|
name: rack
|
73
62
|
prerelease: false
|
74
|
-
requirement: &
|
63
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
75
64
|
none: false
|
76
65
|
requirements:
|
77
66
|
- - ~>
|
78
67
|
- !ruby/object:Gem::Version
|
79
68
|
version: "1.0"
|
80
69
|
type: :development
|
81
|
-
version_requirements: *
|
70
|
+
version_requirements: *id005
|
82
71
|
- !ruby/object:Gem::Dependency
|
83
72
|
name: ci_reporter
|
84
73
|
prerelease: false
|
85
|
-
requirement: &
|
74
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
86
75
|
none: false
|
87
76
|
requirements:
|
88
77
|
- - ~>
|
@@ -92,11 +81,11 @@ dependencies:
|
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: 1.6.2
|
94
83
|
type: :development
|
95
|
-
version_requirements: *
|
84
|
+
version_requirements: *id006
|
96
85
|
- !ruby/object:Gem::Dependency
|
97
86
|
name: webmock
|
98
87
|
prerelease: false
|
99
|
-
requirement: &
|
88
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
100
89
|
none: false
|
101
90
|
requirements:
|
102
91
|
- - ~>
|
@@ -106,18 +95,18 @@ dependencies:
|
|
106
95
|
- !ruby/object:Gem::Version
|
107
96
|
version: 1.7.5
|
108
97
|
type: :development
|
109
|
-
version_requirements: *
|
98
|
+
version_requirements: *id007
|
110
99
|
- !ruby/object:Gem::Dependency
|
111
100
|
name: yard
|
112
101
|
prerelease: false
|
113
|
-
requirement: &
|
102
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
114
103
|
none: false
|
115
104
|
requirements:
|
116
105
|
- - ~>
|
117
106
|
- !ruby/object:Gem::Version
|
118
107
|
version: 0.8.7
|
119
108
|
type: :development
|
120
|
-
version_requirements: *
|
109
|
+
version_requirements: *id008
|
121
110
|
description: WebDriver is a tool for writing automated tests of websites. It aims to mimic the behaviour of a real user, and as such interacts with the HTML of the application.
|
122
111
|
email: jari.bakken@gmail.com
|
123
112
|
executables: []
|
@@ -129,6 +118,7 @@ extra_rdoc_files: []
|
|
129
118
|
files:
|
130
119
|
- CHANGES
|
131
120
|
- Gemfile
|
121
|
+
- Gemfile.lock
|
132
122
|
- LICENSE
|
133
123
|
- README.md
|
134
124
|
- selenium-webdriver.gemspec
|
@@ -171,7 +161,6 @@ files:
|
|
171
161
|
- lib/selenium/webdriver/common/element.rb
|
172
162
|
- lib/selenium/webdriver/common/error.rb
|
173
163
|
- lib/selenium/webdriver/common/file_reaper.rb
|
174
|
-
- lib/selenium/webdriver/common/json_helper.rb
|
175
164
|
- lib/selenium/webdriver/common/keyboard.rb
|
176
165
|
- lib/selenium/webdriver/common/keys.rb
|
177
166
|
- lib/selenium/webdriver/common/log_entry.rb
|
@@ -1,53 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
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 JsonHelper
|
23
|
-
|
24
|
-
# ActiveSupport may define Object#load, so we can't use MultiJson.respond_to? here
|
25
|
-
sm = MultiJson.singleton_methods.map { |e| e.to_sym }
|
26
|
-
|
27
|
-
if sm.include? :load
|
28
|
-
# @api private
|
29
|
-
def json_load(obj)
|
30
|
-
MultiJson.load(obj)
|
31
|
-
end
|
32
|
-
else
|
33
|
-
# @api private
|
34
|
-
def json_load(obj)
|
35
|
-
MultiJson.decode(obj)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
if sm.include? :dump
|
40
|
-
# @api private
|
41
|
-
def json_dump(obj)
|
42
|
-
MultiJson.dump(obj)
|
43
|
-
end
|
44
|
-
else
|
45
|
-
# @api private
|
46
|
-
def json_dump(obj)
|
47
|
-
MultiJson.encode(obj)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
end # JsonHelper
|
52
|
-
end # WebDriver
|
53
|
-
end # Selenium
|