selenium-webdriver 2.53.0 → 2.53.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +8 -8
- data/lib/selenium/webdriver/common/platform.rb +2 -1
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/firefox/service.rb +3 -3
- data/lib/selenium/webdriver/remote/w3c_bridge.rb +17 -3
- data/lib/selenium/webdriver/remote/w3c_capabilities.rb +0 -8
- data/selenium-webdriver.gemspec +1 -1
- metadata +2 -3
- data/Gemfile.lock +0 -53
data/CHANGES
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
2.53.
|
1
|
+
2.53.1 (2016-06-09)
|
2
|
+
===================
|
3
|
+
|
4
|
+
Firefox:
|
5
|
+
* Support for latest geckodriver (formerly wires)
|
6
|
+
* Escape selector when converting to CSS (issue 2235)
|
7
|
+
|
8
|
+
2.53.0 (2016-03-16)
|
2
9
|
===================
|
3
10
|
|
4
11
|
Ruby:
|
5
12
|
* Removed dependency on "multi_json" (issue 1632)
|
6
13
|
* Properly handle namespaces in install manifest of Firefox add-ons (issue 1143)
|
7
|
-
* Improve error handling when stopping browsers (thanks bsedat)
|
8
|
-
* Fix deselecting options in select lists (thanks glib-briia)
|
9
|
-
* Fix w3c error handling
|
10
|
-
* Update w3c Capabilities support
|
11
|
-
|
12
|
-
IE:
|
13
|
-
* support for alert credentials (issue #1698, thanks Alan Baird & trabulmonkee)
|
14
14
|
|
15
15
|
2.52.0 (2016-02-12)
|
16
16
|
===================
|
@@ -168,7 +168,8 @@ module Selenium
|
|
168
168
|
|
169
169
|
binary_names.each do |binary_name|
|
170
170
|
paths.each do |path|
|
171
|
-
exe = File.join(path, binary_name)
|
171
|
+
exe = Dir.glob(File.join(path, binary_name)).first
|
172
|
+
next unless exe
|
172
173
|
return exe if File.executable?(exe)
|
173
174
|
end
|
174
175
|
end
|
Binary file
|
@@ -29,11 +29,11 @@ module Selenium
|
|
29
29
|
SOCKET_LOCK_TIMEOUT = 45
|
30
30
|
STOP_TIMEOUT = 5
|
31
31
|
DEFAULT_PORT = 4444
|
32
|
-
MISSING_TEXT = "Unable to find
|
32
|
+
MISSING_TEXT = "Unable to find geckodriver. Please download the executable from https://github.com/mozilla/geckodriver/releases"
|
33
33
|
|
34
34
|
def self.executable_path
|
35
35
|
@executable_path ||= (
|
36
|
-
path = Platform.find_binary "wires"
|
36
|
+
path = Platform.find_binary("geckodriver*") || Platform.find_binary("wires*")
|
37
37
|
path or raise Error::WebDriverError, MISSING_TEXT
|
38
38
|
Platform.assert_executable path
|
39
39
|
|
@@ -109,7 +109,7 @@ module Selenium
|
|
109
109
|
@socket_poller = SocketPoller.new @host, @port, START_TIMEOUT
|
110
110
|
|
111
111
|
unless @socket_poller.connected?
|
112
|
-
raise Error::WebDriverError, "unable to connect to Mozilla
|
112
|
+
raise Error::WebDriverError, "unable to connect to Mozilla geckodriver #{@host}:#{@port}"
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
@@ -599,13 +599,13 @@ module Selenium
|
|
599
599
|
case how
|
600
600
|
when 'class name'
|
601
601
|
how = 'css selector'
|
602
|
-
what = ".#{what}"
|
602
|
+
what = ".#{escape_css(what)}"
|
603
603
|
when 'id'
|
604
604
|
how = 'css selector'
|
605
|
-
what = "##{what}"
|
605
|
+
what = "##{escape_css(what)}"
|
606
606
|
when 'name'
|
607
607
|
how = 'css selector'
|
608
|
-
what = "*[name='#{what}']"
|
608
|
+
what = "*[name='#{escape_css(what)}']"
|
609
609
|
when 'tag name'
|
610
610
|
how = 'css selector'
|
611
611
|
end
|
@@ -652,6 +652,20 @@ module Selenium
|
|
652
652
|
@escaper ||= defined?(URI::Parser) ? URI::Parser.new : URI
|
653
653
|
end
|
654
654
|
|
655
|
+
ESCAPE_CSS_REGEXP = /(['"\\#.:;,!?+<>=~*^$|%&@`{}\-\[\]\(\)])/
|
656
|
+
UNICODE_CODE_POINT = 30
|
657
|
+
|
658
|
+
# Escapes invalid characters in CSS selector.
|
659
|
+
# @see https://mathiasbynens.be/notes/css-escapes
|
660
|
+
def escape_css(string)
|
661
|
+
string = string.gsub(ESCAPE_CSS_REGEXP) { |match| "\\#{match}" }
|
662
|
+
if !string.empty? && string[0] =~ /[[:digit:]]/
|
663
|
+
string = "\\#{UNICODE_CODE_POINT + Integer(string[0])} #{string[1..-1]}"
|
664
|
+
end
|
665
|
+
|
666
|
+
string
|
667
|
+
end
|
668
|
+
|
655
669
|
end # W3CBridge
|
656
670
|
end # Remote
|
657
671
|
end # WebDriver
|
@@ -32,15 +32,12 @@ module Selenium
|
|
32
32
|
:platform_name => :any,
|
33
33
|
:platform_version => :any,
|
34
34
|
:accept_ssl_certs => false,
|
35
|
-
:takes_screenshot => false,
|
36
|
-
:takes_element_screenshot => false,
|
37
35
|
:page_load_strategy => 'normal',
|
38
36
|
:proxy => nil
|
39
37
|
}
|
40
38
|
|
41
39
|
KNOWN = [
|
42
40
|
:remote_session_id,
|
43
|
-
:specification_level,
|
44
41
|
:xul_app_id,
|
45
42
|
:raise_accessibility_exceptions,
|
46
43
|
:rotatable,
|
@@ -113,8 +110,6 @@ module Selenium
|
|
113
110
|
caps.platform_name = data.delete("platformName") if data.key? "platformName"
|
114
111
|
caps.platform_version = data.delete("platformVersion") if data.key? "platformVersion"
|
115
112
|
caps.accept_ssl_certs = data.delete("acceptSslCerts") if data.key? "acceptSslCerts"
|
116
|
-
caps.takes_screenshot = data.delete("takesScreenshot") if data.key? "takesScreenshot"
|
117
|
-
caps.takes_element_screenshot = data.delete("takesElementScreenshot") if data.key? "takesElementScreenshot"
|
118
113
|
caps.page_load_strategy = data.delete("pageLoadStrategy") if data.key? "pageloadStrategy"
|
119
114
|
proxy = data.delete('proxy')
|
120
115
|
caps.proxy = Proxy.json_create(proxy) unless proxy.nil? || proxy.empty?
|
@@ -127,7 +122,6 @@ module Selenium
|
|
127
122
|
data.delete('cssSelectorsEnabled')
|
128
123
|
|
129
124
|
# Marionette Specific
|
130
|
-
caps[:specification_level] = data.delete("specificationLevel")
|
131
125
|
caps[:xul_app_id] = data.delete("XULappId")
|
132
126
|
caps[:raise_accessibility_exceptions] = data.delete('raisesAccessibilityExceptions')
|
133
127
|
caps[:rotatable] = data.delete('rotatable')
|
@@ -146,8 +140,6 @@ module Selenium
|
|
146
140
|
# @option :platform_name [Symbol] one of :any, :win, :mac, or :x
|
147
141
|
# @option :platform_version [String] required platform version number
|
148
142
|
# @option :accept_ssl_certs [Boolean] does the driver accept SSL Cerfifications?
|
149
|
-
# @option :takes_screenshot [Boolean] can this driver take screenshots?
|
150
|
-
# @option :takes_element_screenshot [Boolean] can this driver take element screenshots?
|
151
143
|
# @option :proxy [Selenium::WebDriver::Proxy, Hash] proxy configuration
|
152
144
|
#
|
153
145
|
# @api public
|
data/selenium-webdriver.gemspec
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: selenium-webdriver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 2.53.
|
5
|
+
version: 2.53.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jari Bakken
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-06-09 00:00:00 -07:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -118,7 +118,6 @@ extra_rdoc_files: []
|
|
118
118
|
files:
|
119
119
|
- CHANGES
|
120
120
|
- Gemfile
|
121
|
-
- Gemfile.lock
|
122
121
|
- LICENSE
|
123
122
|
- README.md
|
124
123
|
- selenium-webdriver.gemspec
|
data/Gemfile.lock
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
selenium-webdriver (2.53.0dev)
|
5
|
-
childprocess (~> 0.5)
|
6
|
-
rubyzip (~> 1.0)
|
7
|
-
websocket (~> 1.0)
|
8
|
-
|
9
|
-
GEM
|
10
|
-
remote: https://rubygems.org/
|
11
|
-
specs:
|
12
|
-
addressable (2.4.0)
|
13
|
-
builder (3.2.2)
|
14
|
-
childprocess (0.5.9)
|
15
|
-
ffi (~> 1.0, >= 1.0.11)
|
16
|
-
ci_reporter (1.9.3)
|
17
|
-
builder (>= 2.1.2)
|
18
|
-
crack (0.4.2)
|
19
|
-
safe_yaml (~> 1.0.0)
|
20
|
-
diff-lcs (1.2.5)
|
21
|
-
ffi (1.9.10)
|
22
|
-
hashdiff (0.2.3)
|
23
|
-
rack (1.6.4)
|
24
|
-
rspec (2.99.0)
|
25
|
-
rspec-core (~> 2.99.0)
|
26
|
-
rspec-expectations (~> 2.99.0)
|
27
|
-
rspec-mocks (~> 2.99.0)
|
28
|
-
rspec-core (2.99.2)
|
29
|
-
rspec-expectations (2.99.2)
|
30
|
-
diff-lcs (>= 1.1.3, < 2.0)
|
31
|
-
rspec-mocks (2.99.4)
|
32
|
-
rubyzip (1.2.0)
|
33
|
-
safe_yaml (1.0.4)
|
34
|
-
webmock (1.22.3)
|
35
|
-
addressable (>= 2.3.6)
|
36
|
-
crack (>= 0.3.2)
|
37
|
-
hashdiff
|
38
|
-
websocket (1.2.2)
|
39
|
-
yard (0.8.7.6)
|
40
|
-
|
41
|
-
PLATFORMS
|
42
|
-
ruby
|
43
|
-
|
44
|
-
DEPENDENCIES
|
45
|
-
ci_reporter (~> 1.6, >= 1.6.2)
|
46
|
-
rack (~> 1.0)
|
47
|
-
rspec (~> 2.99.0)
|
48
|
-
selenium-webdriver!
|
49
|
-
webmock (~> 1.7, >= 1.7.5)
|
50
|
-
yard (~> 0.8.7)
|
51
|
-
|
52
|
-
BUNDLED WITH
|
53
|
-
1.11.2
|