selenium-webdriver 2.53.0 → 2.53.1
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 +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
|