capybara-webkit 1.14.0 → 1.15.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.
- checksums.yaml +5 -5
- data/.travis.yml +8 -9
- data/Appraisals +3 -9
- data/Gemfile +0 -1
- data/Gemfile.lock +41 -41
- data/NEWS.md +14 -0
- data/README.md +2 -2
- data/capybara-webkit.gemspec +2 -2
- data/gemfiles/2.15.gemfile +10 -0
- data/gemfiles/master.gemfile +3 -4
- data/lib/capybara/webkit/browser.rb +14 -5
- data/lib/capybara/webkit/driver.rb +14 -1
- data/lib/capybara/webkit/node.rb +39 -24
- data/lib/capybara/webkit/server.rb +38 -5
- data/lib/capybara/webkit/version.rb +1 -1
- data/lib/capybara_webkit_builder.rb +3 -1
- data/spec/driver_spec.rb +110 -21
- data/spec/fixtures/exit_text.rb +9 -0
- data/spec/integration/session_spec.rb +69 -0
- data/spec/node_spec.rb +90 -0
- data/spec/server_spec.rb +9 -2
- data/spec/spec_helper.rb +4 -1
- data/spec/support/matchers/include_response.rb +5 -1
- data/src/CommandFactory.cpp +2 -0
- data/src/Connection.cpp +2 -2
- data/src/Evaluate.cpp +2 -2
- data/src/EvaluateAsync.cpp +54 -0
- data/src/EvaluateAsync.h +14 -0
- data/src/JavascriptInvocation.cpp +37 -13
- data/src/JavascriptInvocation.h +6 -3
- data/src/Node.cpp +9 -1
- data/src/PageLoadingCommand.cpp +4 -4
- data/src/Refresh.cpp +12 -0
- data/src/Refresh.h +10 -0
- data/src/TimeoutCommand.cpp +1 -1
- data/src/WebPage.cpp +8 -7
- data/src/WebPage.h +1 -1
- data/src/WebPageManager.cpp +8 -8
- data/src/WebPageManager.h +1 -1
- data/src/capybara.js +71 -44
- data/src/find_command.h +2 -0
- data/src/webkit_server.pro +4 -0
- metadata +39 -14
- data/gemfiles/2.13.gemfile +0 -11
- data/gemfiles/2.7.gemfile +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f98f26d98fee3ba5650659c14fee6a562e6229a3bc67eb031b1854c3a846e115
|
4
|
+
data.tar.gz: e5ff61d1a3c60ac7d95a5ede81da61ba9cfd5a322993297875fb3b7bec832bcf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fcdf7fc7c653219f05a956f3c4d273d48f20fce6a59b5938c7333f5fc78b31ea13a531617d80928576847c7c99916fea09708d9dca087d4737090d47a28cb311
|
7
|
+
data.tar.gz: 211921dbfcde185453e09ea907c9c435ece722a50169b92a73b471a74bf0e33148113a9508b8324a3bcd8ac4c02d302e88d93819fd2d5e4c0ba7c6d04e46b7c3
|
data/.travis.yml
CHANGED
@@ -2,10 +2,9 @@ sudo: required
|
|
2
2
|
dist: trusty
|
3
3
|
language: ruby
|
4
4
|
rvm:
|
5
|
-
- 1.9.3
|
6
|
-
- 2.1
|
7
5
|
- 2.2
|
8
|
-
-
|
6
|
+
- 2.4
|
7
|
+
- 2.5
|
9
8
|
notifications:
|
10
9
|
email: false
|
11
10
|
script: xvfb-run bundle exec rake
|
@@ -25,18 +24,18 @@ addons:
|
|
25
24
|
matrix:
|
26
25
|
include:
|
27
26
|
- rvm: 1.9.3
|
28
|
-
gemfile: gemfiles/2.
|
29
|
-
env: QMAKE=/usr/lib/x86_64-linux-gnu/qt4/bin/qmake
|
30
|
-
- rvm: 1.9.3
|
31
|
-
gemfile: gemfiles/2.13.gemfile
|
27
|
+
gemfile: gemfiles/2.15.gemfile
|
32
28
|
env: QMAKE=/usr/lib/x86_64-linux-gnu/qt4/bin/qmake
|
29
|
+
- rvm: jruby-19mode
|
30
|
+
gemfile: gemfiles/2.15.gemfile
|
33
31
|
- rvm: 2.3.3
|
34
32
|
gemfile: gemfiles/master.gemfile
|
33
|
+
- rvm: jruby-9.1.13.0
|
34
|
+
gemfile: Gemfile
|
35
35
|
allow_failures:
|
36
36
|
- gemfile: gemfiles/master.gemfile
|
37
37
|
gemfile:
|
38
|
-
-
|
39
|
-
- gemfiles/2.13.gemfile
|
38
|
+
- Gemfile
|
40
39
|
before_install:
|
41
40
|
- gem install bundler
|
42
41
|
install: bundle
|
data/Appraisals
CHANGED
@@ -1,16 +1,10 @@
|
|
1
|
-
appraise "2.
|
2
|
-
gem "capybara", "~> 2.
|
3
|
-
gem "rspec", "~> 2.14.0"
|
4
|
-
gem 'addressable', '< 2.5.0', :platforms=>[:ruby_19, :jruby_19] # 2.5 requires public_suffix which requires ruby 2.0
|
5
|
-
gem 'nokogiri', '< 1.7.0', :platforms=>[:ruby_19, :jruby_19] # 1.7.0 requires ruby 2.1+
|
6
|
-
end
|
7
|
-
|
8
|
-
appraise "2.13" do
|
9
|
-
gem "capybara", "~> 2.13.0"
|
1
|
+
appraise "2.15" do
|
2
|
+
gem "capybara", "~> 2.15.0"
|
10
3
|
gem 'addressable', '< 2.5.0', :platforms=>[:ruby_19, :jruby_19] # 2.5 requires public_suffix which requires ruby 2.0
|
11
4
|
gem 'nokogiri', '< 1.7.0', :platforms=>[:ruby_19, :jruby_19] # 1.7.0 requires ruby 2.1+
|
12
5
|
end
|
13
6
|
|
14
7
|
appraise "master" do
|
15
8
|
gem "capybara", github: "jnicklas/capybara"
|
9
|
+
gem "puma"
|
16
10
|
end
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -2,24 +2,25 @@ PATH
|
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
4
|
capybara-webkit (1.14.0)
|
5
|
-
capybara (>= 2.3
|
5
|
+
capybara (>= 2.3, < 4.0)
|
6
6
|
json
|
7
7
|
|
8
8
|
GEM
|
9
9
|
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
addressable (2.5.
|
12
|
-
public_suffix (
|
13
|
-
appraisal (
|
11
|
+
addressable (2.5.2)
|
12
|
+
public_suffix (>= 2.0.2, < 4.0)
|
13
|
+
appraisal (2.2.0)
|
14
14
|
bundler
|
15
15
|
rake
|
16
|
-
|
16
|
+
thor (>= 0.14.0)
|
17
|
+
capybara (2.17.0)
|
17
18
|
addressable
|
18
|
-
|
19
|
+
mini_mime (>= 0.1.3)
|
19
20
|
nokogiri (>= 1.3.3)
|
20
21
|
rack (>= 1.0.0)
|
21
22
|
rack-test (>= 0.5.4)
|
22
|
-
xpath (
|
23
|
+
xpath (>= 2.0, < 4.0)
|
23
24
|
diff-lcs (1.3)
|
24
25
|
ffi (1.9.18-java)
|
25
26
|
json (1.8.6)
|
@@ -29,43 +30,43 @@ GEM
|
|
29
30
|
launchy (2.4.3-java)
|
30
31
|
addressable (~> 2.3)
|
31
32
|
spoon (~> 0.0.1)
|
32
|
-
|
33
|
-
|
34
|
-
mini_portile2 (2.
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
rack (1.6.5)
|
42
|
-
rack-protection (1.5.3)
|
33
|
+
mini_magick (4.8.0)
|
34
|
+
mini_mime (1.0.0)
|
35
|
+
mini_portile2 (2.3.0)
|
36
|
+
mustermann (1.0.1)
|
37
|
+
nokogiri (1.8.1)
|
38
|
+
mini_portile2 (~> 2.3.0)
|
39
|
+
public_suffix (3.0.0)
|
40
|
+
rack (2.0.3)
|
41
|
+
rack-protection (2.0.0)
|
43
42
|
rack
|
44
|
-
rack-test (0.
|
45
|
-
rack (>= 1.0)
|
43
|
+
rack-test (0.8.2)
|
44
|
+
rack (>= 1.0, < 3)
|
46
45
|
rake (11.3.0)
|
47
|
-
rspec (3.
|
48
|
-
rspec-core (~> 3.
|
49
|
-
rspec-expectations (~> 3.
|
50
|
-
rspec-mocks (~> 3.
|
51
|
-
rspec-core (3.
|
52
|
-
rspec-support (~> 3.
|
53
|
-
rspec-expectations (3.
|
46
|
+
rspec (3.7.0)
|
47
|
+
rspec-core (~> 3.7.0)
|
48
|
+
rspec-expectations (~> 3.7.0)
|
49
|
+
rspec-mocks (~> 3.7.0)
|
50
|
+
rspec-core (3.7.0)
|
51
|
+
rspec-support (~> 3.7.0)
|
52
|
+
rspec-expectations (3.7.0)
|
54
53
|
diff-lcs (>= 1.2.0, < 2.0)
|
55
|
-
rspec-support (~> 3.
|
56
|
-
rspec-mocks (3.
|
54
|
+
rspec-support (~> 3.7.0)
|
55
|
+
rspec-mocks (3.7.0)
|
57
56
|
diff-lcs (>= 1.2.0, < 2.0)
|
58
|
-
rspec-support (~> 3.
|
59
|
-
rspec-support (3.
|
60
|
-
sinatra (
|
61
|
-
|
62
|
-
rack
|
63
|
-
|
57
|
+
rspec-support (~> 3.7.0)
|
58
|
+
rspec-support (3.7.0)
|
59
|
+
sinatra (2.0.0)
|
60
|
+
mustermann (~> 1.0)
|
61
|
+
rack (~> 2.0)
|
62
|
+
rack-protection (= 2.0.0)
|
63
|
+
tilt (~> 2.0)
|
64
64
|
spoon (0.0.6)
|
65
65
|
ffi
|
66
|
-
|
67
|
-
|
68
|
-
|
66
|
+
thor (0.20.0)
|
67
|
+
tilt (2.0.8)
|
68
|
+
xpath (3.0.0)
|
69
|
+
nokogiri (~> 1.8)
|
69
70
|
|
70
71
|
PLATFORMS
|
71
72
|
java
|
@@ -73,15 +74,14 @@ PLATFORMS
|
|
73
74
|
x86-mingw32
|
74
75
|
|
75
76
|
DEPENDENCIES
|
76
|
-
appraisal
|
77
|
+
appraisal
|
77
78
|
capybara-webkit!
|
78
79
|
json (< 2.0)
|
79
80
|
launchy
|
80
|
-
mime-types (< 3.0)
|
81
81
|
mini_magick
|
82
82
|
rake (< 12.0.0)
|
83
83
|
rspec (~> 3.5)
|
84
84
|
sinatra
|
85
85
|
|
86
86
|
BUNDLED WITH
|
87
|
-
1.
|
87
|
+
1.16.0
|
data/NEWS.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
New for 1.15.0:
|
2
|
+
|
3
|
+
* Fire events on select when options is within an optgroup
|
4
|
+
* Support threadsafe/per session config mode
|
5
|
+
* Support for Capybara 2.15
|
6
|
+
* Support #refresh
|
7
|
+
* Work around form fields overriding form element methods
|
8
|
+
* Explicitly shutdown webkit_server when shutting down
|
9
|
+
* Only override font in Qt versions where it's needed
|
10
|
+
* Make select elements generate the events specified by WebDriver spec
|
11
|
+
* Node#[] prefers properties over attributes
|
12
|
+
* Add time to logging
|
13
|
+
* Don't check node ancestors for CSS visibility setting
|
14
|
+
|
1
15
|
New for 1.14.0:
|
2
16
|
|
3
17
|
* Fix the 'Reset' command in debug builds (on Windows)
|
data/README.md
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
capybara-webkit
|
2
2
|
===============
|
3
3
|
|
4
|
-
[](https://travis-ci.org/thoughtbot/capybara-webkit)
|
5
|
+
[](https://codeclimate.com/github/thoughtbot/capybara-webkit)
|
6
6
|
|
7
7
|
A [capybara](https://github.com/jnicklas/capybara) driver that uses [WebKit](http://webkit.org) via [QtWebKit](http://trac.webkit.org/wiki/QtWebKit).
|
8
8
|
|
data/capybara-webkit.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
s.requirements << "Qt >= 4.8"
|
23
23
|
|
24
|
-
s.add_runtime_dependency("capybara", ">= 2.3
|
24
|
+
s.add_runtime_dependency("capybara", ">= 2.3", "< 4.0")
|
25
25
|
s.add_runtime_dependency("json")
|
26
26
|
|
27
27
|
s.add_development_dependency("rspec", "~> 3.5")
|
@@ -29,7 +29,7 @@ Gem::Specification.new do |s|
|
|
29
29
|
s.add_development_dependency("sinatra")
|
30
30
|
s.add_development_dependency("mini_magick")
|
31
31
|
s.add_development_dependency("rake", "< 12.0.0")
|
32
|
-
s.add_development_dependency("appraisal"
|
32
|
+
s.add_development_dependency("appraisal")
|
33
33
|
s.add_development_dependency("launchy")
|
34
34
|
end
|
35
35
|
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "json", "< 2.0", platforms: [:ruby_19, :jruby_19]
|
6
|
+
gem "capybara", "~> 2.15.0"
|
7
|
+
gem "addressable", "< 2.5.0", platforms: [:ruby_19, :jruby_19]
|
8
|
+
gem "nokogiri", "< 1.7.0", platforms: [:ruby_19, :jruby_19]
|
9
|
+
|
10
|
+
gemspec path: "../"
|
data/gemfiles/master.gemfile
CHANGED
@@ -2,8 +2,7 @@
|
|
2
2
|
|
3
3
|
source "https://rubygems.org"
|
4
4
|
|
5
|
-
gem "
|
6
|
-
gem "
|
7
|
-
gem "capybara", :github=>"jnicklas/capybara"
|
5
|
+
gem "capybara", github: "jnicklas/capybara"
|
6
|
+
gem "puma"
|
8
7
|
|
9
|
-
gemspec :
|
8
|
+
gemspec path: "../"
|
@@ -84,7 +84,7 @@ module Capybara::Webkit
|
|
84
84
|
def frame_focus(selector=nil)
|
85
85
|
if selector.respond_to?(:base)
|
86
86
|
selector.base.invoke("focus_frame")
|
87
|
-
elsif selector.is_a?
|
87
|
+
elsif selector.is_a? Integer
|
88
88
|
command("FrameFocus", "", selector.to_s)
|
89
89
|
elsif selector
|
90
90
|
command("FrameFocus", selector)
|
@@ -134,7 +134,7 @@ module Capybara::Webkit
|
|
134
134
|
end
|
135
135
|
|
136
136
|
def get_window_handles
|
137
|
-
JSON.parse(command(
|
137
|
+
JSON.parse(command("GetWindowHandles"))
|
138
138
|
end
|
139
139
|
|
140
140
|
def window_handles
|
@@ -144,7 +144,7 @@ module Capybara::Webkit
|
|
144
144
|
end
|
145
145
|
|
146
146
|
def get_window_handle
|
147
|
-
command(
|
147
|
+
command("GetWindowHandle")
|
148
148
|
end
|
149
149
|
|
150
150
|
def window_handle
|
@@ -236,12 +236,17 @@ https://github.com/thoughtbot/capybara-webkit/wiki/Reporting-Crashes
|
|
236
236
|
end
|
237
237
|
|
238
238
|
def evaluate_script(script, *args)
|
239
|
-
json = command(
|
239
|
+
json = command("Evaluate", script, args.to_json)
|
240
|
+
JSON.parse("[#{json}]").first
|
241
|
+
end
|
242
|
+
|
243
|
+
def evaluate_async_script(script, *args)
|
244
|
+
json = command("EvaluateAsync", script, args.to_json)
|
240
245
|
JSON.parse("[#{json}]").first
|
241
246
|
end
|
242
247
|
|
243
248
|
def execute_script(script, *args)
|
244
|
-
command(
|
249
|
+
command("Execute", script, args.to_json)
|
245
250
|
end
|
246
251
|
|
247
252
|
def render(path, width, height)
|
@@ -289,6 +294,10 @@ https://github.com/thoughtbot/capybara-webkit/wiki/Reporting-Crashes
|
|
289
294
|
command("GoForward")
|
290
295
|
end
|
291
296
|
|
297
|
+
def refresh
|
298
|
+
command("Refresh")
|
299
|
+
end
|
300
|
+
|
292
301
|
def allow_url(url)
|
293
302
|
command("AllowUrl", url)
|
294
303
|
end
|
@@ -91,6 +91,11 @@ module Capybara::Webkit
|
|
91
91
|
decode_result(result)
|
92
92
|
end
|
93
93
|
|
94
|
+
def evaluate_async_script(script, *args)
|
95
|
+
result = @browser.evaluate_async_script(script, *encode_args(args))
|
96
|
+
decode_result(result)
|
97
|
+
end
|
98
|
+
|
94
99
|
def console_messages
|
95
100
|
@browser.console_messages
|
96
101
|
end
|
@@ -241,6 +246,10 @@ module Capybara::Webkit
|
|
241
246
|
@browser.go_forward
|
242
247
|
end
|
243
248
|
|
249
|
+
def refresh
|
250
|
+
@browser.refresh
|
251
|
+
end
|
252
|
+
|
244
253
|
def accept_modal(type, options={})
|
245
254
|
options = modal_action_options_for_browser(options)
|
246
255
|
|
@@ -359,7 +368,11 @@ module Capybara::Webkit
|
|
359
368
|
end
|
360
369
|
|
361
370
|
def default_wait_time
|
362
|
-
|
371
|
+
if respond_to?(:session_options) && session_options
|
372
|
+
session_options.default_max_wait_time
|
373
|
+
else
|
374
|
+
Capybara.respond_to?(:default_max_wait_time) ? Capybara.default_max_wait_time : Capybara.default_wait_time
|
375
|
+
end
|
363
376
|
end
|
364
377
|
|
365
378
|
def find_modal(type, id, options)
|
data/lib/capybara/webkit/node.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Capybara::Webkit
|
2
2
|
class Node < Capybara::Driver::Node
|
3
|
-
def initialize(
|
4
|
-
super(
|
3
|
+
def initialize(driver, base, browser)
|
4
|
+
super(driver, base)
|
5
5
|
@browser = browser
|
6
6
|
end
|
7
7
|
|
@@ -15,16 +15,18 @@ module Capybara::Webkit
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def [](name)
|
18
|
-
|
19
|
-
|
20
|
-
|
18
|
+
name = name.to_s
|
19
|
+
tn = tag_name
|
20
|
+
if (tn == "img" && name == "src") || (tn == "a" && name == "href")
|
21
|
+
# Although the attribute matters, the property is consistent. Return that in
|
22
|
+
# preference to the attribute for links and images.
|
23
|
+
# if attribute exists get the property
|
24
|
+
val = invoke(:attribute, name) && invoke(:property, name)
|
21
25
|
else
|
22
|
-
|
23
|
-
|
24
|
-
else
|
25
|
-
nil
|
26
|
-
end
|
26
|
+
val = invoke(:property, name)
|
27
|
+
val = invoke(:attribute, name) if val.nil? || val.is_a?(Hash)
|
27
28
|
end
|
29
|
+
val
|
28
30
|
end
|
29
31
|
|
30
32
|
def value
|
@@ -43,7 +45,8 @@ module Capybara::Webkit
|
|
43
45
|
invoke 'setInnerHTML', value
|
44
46
|
end
|
45
47
|
|
46
|
-
def set(value)
|
48
|
+
def set(value, options = {})
|
49
|
+
warn "Options passed to Node#set but capybara-webkit doesn't currently support any - ignoring" unless options.empty?
|
47
50
|
invoke "set", *[value].flatten
|
48
51
|
end
|
49
52
|
|
@@ -66,16 +69,16 @@ module Capybara::Webkit
|
|
66
69
|
end
|
67
70
|
end
|
68
71
|
|
69
|
-
def click
|
70
|
-
invoke("leftClick")
|
72
|
+
def click(keys = [], offset = {})
|
73
|
+
invoke("leftClick", keys.to_json, offset.to_json)
|
71
74
|
end
|
72
75
|
|
73
|
-
def double_click
|
74
|
-
invoke("doubleClick")
|
76
|
+
def double_click(keys = [], offset = {})
|
77
|
+
invoke("doubleClick", keys.to_json, offset.to_json)
|
75
78
|
end
|
76
79
|
|
77
|
-
def right_click
|
78
|
-
invoke("rightClick")
|
80
|
+
def right_click(keys = [], offset = {})
|
81
|
+
invoke("rightClick", keys.to_json, offset.to_json)
|
79
82
|
end
|
80
83
|
|
81
84
|
def hover
|
@@ -91,15 +94,15 @@ module Capybara::Webkit
|
|
91
94
|
end
|
92
95
|
|
93
96
|
def visible?
|
94
|
-
invoke("visible") ==
|
97
|
+
invoke("visible") == true
|
95
98
|
end
|
96
99
|
|
97
100
|
def selected?
|
98
|
-
invoke("selected") ==
|
101
|
+
invoke("selected") == true
|
99
102
|
end
|
100
103
|
|
101
104
|
def checked?
|
102
|
-
self[
|
105
|
+
!!self["checked"]
|
103
106
|
end
|
104
107
|
|
105
108
|
def disabled?
|
@@ -139,7 +142,8 @@ module Capybara::Webkit
|
|
139
142
|
end
|
140
143
|
|
141
144
|
def invoke(name, *args)
|
142
|
-
@browser.command "Node", name, allow_unattached_nodes?, native, *args
|
145
|
+
result = @browser.command "Node", name, allow_unattached_nodes?, native, *args
|
146
|
+
JSON.parse(result, quirks_mode: true)
|
143
147
|
end
|
144
148
|
|
145
149
|
def allow_unattached_nodes?
|
@@ -147,11 +151,14 @@ module Capybara::Webkit
|
|
147
151
|
end
|
148
152
|
|
149
153
|
def automatic_reload?
|
150
|
-
|
154
|
+
session_option(:automatic_reload)
|
151
155
|
end
|
152
156
|
|
153
157
|
def attached?
|
154
|
-
|
158
|
+
warn "[DEPRECATION] The Capybara::Webkit::Node#attached? " \
|
159
|
+
"method is deprecated without replacement."
|
160
|
+
result = @browser.command("Node", "isAttached", native)
|
161
|
+
JSON.parse(result, quirks_mode: true)
|
155
162
|
end
|
156
163
|
|
157
164
|
def multiple_select?
|
@@ -159,11 +166,19 @@ module Capybara::Webkit
|
|
159
166
|
end
|
160
167
|
|
161
168
|
def ==(other)
|
162
|
-
invoke("equals", other.native)
|
169
|
+
invoke("equals", other.native)
|
163
170
|
end
|
164
171
|
|
165
172
|
private
|
166
173
|
|
174
|
+
def session_option(name)
|
175
|
+
if driver.respond_to?(:session_options)
|
176
|
+
driver.session_options.public_send(name)
|
177
|
+
else
|
178
|
+
Capybara.respond_to?(name) && Capybara.public_send(name)
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
167
182
|
def convert_to_named_keys(key)
|
168
183
|
if key.is_a? Array
|
169
184
|
key.map { |k| convert_to_named_keys(k)}
|