selenium-webdriver 2.53.3 → 3.142.7
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 +665 -8
- data/Gemfile +2 -0
- data/LICENSE +1 -1
- data/README.md +2 -3
- data/lib/selenium/server.rb +76 -73
- data/lib/selenium/webdriver/atoms/getAttribute.js +7 -0
- data/lib/selenium/webdriver/atoms/isDisplayed.js +102 -0
- data/lib/selenium/webdriver/{phantomjs.rb → atoms.rb} +10 -14
- data/lib/selenium/webdriver/chrome/bridge.rb +30 -101
- data/lib/selenium/webdriver/chrome/driver.rb +127 -0
- data/lib/selenium/webdriver/chrome/options.rb +190 -0
- data/lib/selenium/webdriver/chrome/profile.rb +21 -20
- data/lib/selenium/webdriver/chrome/service.rb +26 -93
- data/lib/selenium/webdriver/chrome.rb +15 -6
- data/lib/selenium/webdriver/common/action_builder.rb +52 -58
- data/lib/selenium/webdriver/common/alert.rb +7 -15
- data/lib/selenium/webdriver/common/bridge_helper.rb +18 -22
- data/lib/selenium/webdriver/common/driver.rb +72 -72
- 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} +11 -27
- data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +6 -10
- data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +51 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +7 -8
- data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +51 -0
- data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +2 -4
- data/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +2 -4
- data/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +3 -5
- data/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +2 -5
- data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +6 -9
- data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +9 -7
- data/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +3 -8
- data/lib/selenium/webdriver/common/element.rb +59 -39
- data/lib/selenium/webdriver/common/error.rb +259 -104
- data/lib/selenium/webdriver/common/file_reaper.rb +6 -14
- data/lib/selenium/webdriver/common/html5/local_storage.rb +8 -10
- data/lib/selenium/webdriver/common/html5/session_storage.rb +8 -10
- data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +8 -16
- 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/{safari/browser.rb → common/interactions/interactions.rb} +17 -14
- 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/{android.rb → common/interactions/none_input.rb} +14 -6
- 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/keyboard.rb +10 -14
- data/lib/selenium/webdriver/common/keys.rb +102 -82
- data/lib/selenium/webdriver/common/log_entry.rb +7 -8
- data/lib/selenium/webdriver/common/logger.rb +115 -0
- data/lib/selenium/webdriver/common/logs.rb +4 -6
- data/lib/selenium/webdriver/common/manager.rb +177 -0
- data/lib/selenium/webdriver/common/mouse.rb +12 -14
- data/lib/selenium/webdriver/common/navigation.rb +4 -6
- data/lib/selenium/webdriver/common/options.rb +26 -127
- data/lib/selenium/webdriver/common/platform.rb +75 -101
- data/lib/selenium/webdriver/common/port_prober.rb +7 -19
- data/lib/selenium/webdriver/common/profile_helper.rb +8 -11
- data/lib/selenium/webdriver/common/proxy.rb +68 -74
- data/lib/selenium/webdriver/common/search_context.rb +28 -37
- data/lib/selenium/webdriver/common/service.rb +219 -0
- data/lib/selenium/webdriver/common/socket_lock.rb +15 -16
- data/lib/selenium/webdriver/common/socket_poller.rb +30 -28
- data/lib/selenium/webdriver/common/target_locator.rb +16 -18
- data/lib/selenium/webdriver/common/timeouts.rb +6 -8
- data/lib/selenium/webdriver/common/touch_action_builder.rb +5 -10
- data/lib/selenium/webdriver/common/touch_screen.rb +22 -23
- data/lib/selenium/webdriver/common/w3c_action_builder.rb +212 -0
- data/lib/selenium/webdriver/common/w3c_manager.rb +45 -0
- data/lib/selenium/webdriver/common/wait.rb +17 -16
- data/lib/selenium/webdriver/common/window.rb +50 -17
- data/lib/selenium/webdriver/common/zipper.rb +9 -13
- data/lib/selenium/webdriver/common.rb +21 -7
- data/lib/selenium/webdriver/edge/bridge.rb +34 -63
- data/lib/selenium/webdriver/edge/driver.rb +66 -0
- data/lib/selenium/webdriver/edge/options.rb +80 -0
- data/lib/selenium/webdriver/edge/service.rb +23 -95
- data/lib/selenium/webdriver/edge.rb +13 -13
- data/lib/selenium/webdriver/firefox/binary.rb +45 -60
- data/lib/selenium/webdriver/firefox/driver.rb +50 -0
- data/lib/selenium/webdriver/firefox/extension/prefs.json +3 -12
- data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
- data/lib/selenium/webdriver/firefox/extension.rb +20 -10
- data/lib/selenium/webdriver/firefox/launcher.rb +16 -22
- data/lib/selenium/webdriver/firefox/legacy/driver.rb +83 -0
- data/lib/selenium/webdriver/firefox/marionette/bridge.rb +49 -0
- data/lib/selenium/webdriver/firefox/marionette/driver.rb +90 -0
- data/lib/selenium/webdriver/firefox/options.rb +162 -0
- data/lib/selenium/webdriver/firefox/profile.rb +47 -48
- data/lib/selenium/webdriver/firefox/profiles_ini.rb +11 -18
- data/lib/selenium/webdriver/firefox/service.rb +24 -95
- data/lib/selenium/webdriver/firefox/util.rb +2 -4
- data/lib/selenium/webdriver/firefox.rb +27 -12
- data/lib/selenium/webdriver/ie/driver.rb +85 -0
- data/lib/selenium/webdriver/ie/options.rb +138 -0
- data/lib/selenium/webdriver/ie/service.rb +54 -0
- data/lib/selenium/webdriver/ie.rb +12 -10
- data/lib/selenium/webdriver/remote/bridge.rb +100 -564
- data/lib/selenium/webdriver/remote/capabilities.rb +98 -100
- data/lib/selenium/webdriver/remote/driver.rb +51 -0
- data/lib/selenium/webdriver/remote/http/common.rb +34 -22
- data/lib/selenium/webdriver/remote/http/curb.rb +13 -14
- data/lib/selenium/webdriver/remote/http/default.rb +62 -43
- data/lib/selenium/webdriver/remote/http/persistent.rb +12 -9
- data/lib/selenium/webdriver/remote/oss/bridge.rb +594 -0
- data/lib/selenium/webdriver/remote/oss/commands.rb +223 -0
- data/lib/selenium/webdriver/remote/response.rb +48 -28
- data/lib/selenium/webdriver/remote/server_error.rb +3 -5
- data/lib/selenium/webdriver/remote/w3c/bridge.rb +605 -0
- data/lib/selenium/webdriver/remote/w3c/capabilities.rb +310 -0
- data/lib/selenium/webdriver/remote/w3c/commands.rb +157 -0
- data/lib/selenium/webdriver/remote.rb +10 -16
- data/lib/selenium/webdriver/safari/bridge.rb +17 -101
- data/lib/selenium/webdriver/{firefox/w3c_bridge.rb → safari/driver.rb} +27 -25
- data/lib/selenium/webdriver/safari/options.rb +29 -31
- data/lib/selenium/webdriver/safari/service.rb +38 -0
- data/lib/selenium/webdriver/safari.rb +27 -27
- data/lib/selenium/webdriver/support/abstract_event_listener.rb +19 -4
- data/lib/selenium/webdriver/support/block_event_listener.rb +3 -5
- data/lib/selenium/webdriver/support/color.rb +60 -43
- data/lib/selenium/webdriver/support/escaper.rb +43 -0
- data/lib/selenium/webdriver/support/event_firing_bridge.rb +39 -41
- data/lib/selenium/webdriver/support/select.rb +45 -97
- data/lib/selenium/webdriver/support.rb +3 -2
- data/lib/selenium/webdriver/{iphone.rb → version.rb} +3 -7
- data/lib/selenium/webdriver.rb +36 -23
- data/lib/selenium-webdriver.rb +2 -2
- data/selenium-webdriver.gemspec +42 -29
- metadata +331 -262
- data/lib/selenium/client/base.rb +0 -151
- data/lib/selenium/client/driver.rb +0 -29
- data/lib/selenium/client/errors.rb +0 -28
- data/lib/selenium/client/extensions.rb +0 -132
- data/lib/selenium/client/idiomatic.rb +0 -507
- data/lib/selenium/client/javascript_expression_builder.rb +0 -135
- data/lib/selenium/client/javascript_frameworks/jquery.rb +0 -32
- data/lib/selenium/client/javascript_frameworks/prototype.rb +0 -32
- data/lib/selenium/client/legacy_driver.rb +0 -1722
- data/lib/selenium/client/protocol.rb +0 -123
- data/lib/selenium/client/selenium_helper.rb +0 -49
- data/lib/selenium/client.rb +0 -57
- data/lib/selenium/rake/server_task.rb +0 -176
- data/lib/selenium/webdriver/android/bridge.rb +0 -68
- data/lib/selenium/webdriver/common/core_ext/base64.rb +0 -28
- data/lib/selenium/webdriver/common/core_ext/dir.rb +0 -61
- data/lib/selenium/webdriver/common/html5/location.rb +0 -19
- data/lib/selenium/webdriver/common/w3c_error.rb +0 -194
- data/lib/selenium/webdriver/edge/legacy_support.rb +0 -117
- data/lib/selenium/webdriver/firefox/bridge.rb +0 -89
- data/lib/selenium/webdriver/ie/bridge.rb +0 -88
- data/lib/selenium/webdriver/ie/server.rb +0 -133
- data/lib/selenium/webdriver/iphone/bridge.rb +0 -64
- data/lib/selenium/webdriver/phantomjs/bridge.rb +0 -78
- data/lib/selenium/webdriver/phantomjs/service.rb +0 -130
- data/lib/selenium/webdriver/remote/commands.rb +0 -211
- data/lib/selenium/webdriver/remote/w3c_bridge.rb +0 -668
- data/lib/selenium/webdriver/remote/w3c_capabilities.rb +0 -236
- data/lib/selenium/webdriver/remote/w3c_commands.rb +0 -132
- data/lib/selenium/webdriver/safari/resources/client.js +0 -7255
- data/lib/selenium/webdriver/safari/server.rb +0 -187
- data/lib/selenium-client.rb +0 -21
|
@@ -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
|
|
@@ -19,14 +19,12 @@
|
|
|
19
19
|
|
|
20
20
|
module Selenium
|
|
21
21
|
module WebDriver
|
|
22
|
-
|
|
23
22
|
#
|
|
24
23
|
# @api private
|
|
25
24
|
#
|
|
26
25
|
|
|
27
26
|
module DriverExtensions
|
|
28
27
|
module HasWebStorage
|
|
29
|
-
|
|
30
28
|
def local_storage
|
|
31
29
|
HTML5::LocalStorage.new @bridge
|
|
32
30
|
end
|
|
@@ -34,7 +32,6 @@ module Selenium
|
|
|
34
32
|
def session_storage
|
|
35
33
|
HTML5::SessionStorage.new @bridge
|
|
36
34
|
end
|
|
37
|
-
|
|
38
35
|
end # HasWebStorage
|
|
39
36
|
end # DriverExtensions
|
|
40
37
|
end # WebDriver
|
|
@@ -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
|
|
@@ -19,20 +19,18 @@
|
|
|
19
19
|
|
|
20
20
|
module Selenium
|
|
21
21
|
module WebDriver
|
|
22
|
-
|
|
23
22
|
#
|
|
24
23
|
# @api private
|
|
25
24
|
#
|
|
26
25
|
|
|
27
26
|
module DriverExtensions
|
|
28
27
|
module Rotatable
|
|
29
|
-
|
|
30
|
-
ORIENTATIONS = [:landscape, :portrait]
|
|
28
|
+
ORIENTATIONS = %i[landscape portrait].freeze
|
|
31
29
|
|
|
32
30
|
#
|
|
33
31
|
# Change the screen orientation
|
|
34
32
|
#
|
|
35
|
-
# @param [:landscape, :portrait]
|
|
33
|
+
# @param [:landscape, :portrait] orientation
|
|
36
34
|
#
|
|
37
35
|
# @api public
|
|
38
36
|
#
|
|
@@ -42,7 +40,7 @@ module Selenium
|
|
|
42
40
|
raise ArgumentError, "expected #{ORIENTATIONS.inspect}, got #{orientation.inspect}"
|
|
43
41
|
end
|
|
44
42
|
|
|
45
|
-
bridge.
|
|
43
|
+
bridge.screen_orientation = orientation.to_s.upcase
|
|
46
44
|
end
|
|
47
45
|
alias_method :rotate, :rotation=
|
|
48
46
|
|
|
@@ -55,9 +53,8 @@ module Selenium
|
|
|
55
53
|
#
|
|
56
54
|
|
|
57
55
|
def orientation
|
|
58
|
-
bridge.
|
|
56
|
+
bridge.screen_orientation.to_sym.downcase
|
|
59
57
|
end
|
|
60
|
-
|
|
61
58
|
end # Rotatable
|
|
62
59
|
end # DriverExtensions
|
|
63
60
|
end # WebDriver
|
|
@@ -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
|
|
@@ -19,14 +19,12 @@
|
|
|
19
19
|
|
|
20
20
|
module Selenium
|
|
21
21
|
module WebDriver
|
|
22
|
-
|
|
23
22
|
#
|
|
24
23
|
# @api private
|
|
25
24
|
#
|
|
26
25
|
|
|
27
26
|
module DriverExtensions
|
|
28
27
|
module TakesScreenshot
|
|
29
|
-
|
|
30
28
|
#
|
|
31
29
|
# Save a PNG screenshot to the given path
|
|
32
30
|
#
|
|
@@ -34,6 +32,11 @@ module Selenium
|
|
|
34
32
|
#
|
|
35
33
|
|
|
36
34
|
def save_screenshot(png_path)
|
|
35
|
+
extension = File.extname(png_path).downcase
|
|
36
|
+
if extension != '.png'
|
|
37
|
+
WebDriver.logger.warn "name used for saved screenshot does not match file type. "\
|
|
38
|
+
"It should end with .png extension"
|
|
39
|
+
end
|
|
37
40
|
File.open(png_path, 'wb') { |f| f << screenshot_as(:png) }
|
|
38
41
|
end
|
|
39
42
|
|
|
@@ -48,14 +51,13 @@ module Selenium
|
|
|
48
51
|
def screenshot_as(format)
|
|
49
52
|
case format
|
|
50
53
|
when :base64
|
|
51
|
-
bridge.
|
|
54
|
+
bridge.screenshot
|
|
52
55
|
when :png
|
|
53
|
-
bridge.
|
|
56
|
+
bridge.screenshot.unpack('m')[0]
|
|
54
57
|
else
|
|
55
58
|
raise Error::UnsupportedOperationError, "unsupported format: #{format.inspect}"
|
|
56
59
|
end
|
|
57
60
|
end
|
|
58
|
-
|
|
59
61
|
end # TakesScreenshot
|
|
60
62
|
end # DriverExtensions
|
|
61
63
|
end # WebDriver
|
|
@@ -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
|
|
@@ -19,14 +19,12 @@
|
|
|
19
19
|
|
|
20
20
|
module Selenium
|
|
21
21
|
module WebDriver
|
|
22
|
-
|
|
23
22
|
#
|
|
24
23
|
# @api private
|
|
25
24
|
#
|
|
26
25
|
|
|
27
26
|
module DriverExtensions
|
|
28
27
|
module UploadsFiles
|
|
29
|
-
|
|
30
28
|
#
|
|
31
29
|
# Set the file detector to pass local files to a remote WebDriver.
|
|
32
30
|
#
|
|
@@ -52,13 +50,10 @@ module Selenium
|
|
|
52
50
|
#
|
|
53
51
|
|
|
54
52
|
def file_detector=(detector)
|
|
55
|
-
unless detector.nil?
|
|
56
|
-
raise ArgumentError, "detector must respond to #call"
|
|
57
|
-
end
|
|
53
|
+
raise ArgumentError, 'detector must respond to #call' unless detector.nil? || detector.respond_to?(:call)
|
|
58
54
|
|
|
59
55
|
bridge.file_detector = detector
|
|
60
56
|
end
|
|
61
|
-
|
|
62
57
|
end # UploadsFiles
|
|
63
58
|
end # DriverExtensions
|
|
64
59
|
end # WebDriver
|
|
@@ -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
|
|
@@ -29,15 +29,16 @@ module Selenium
|
|
|
29
29
|
#
|
|
30
30
|
|
|
31
31
|
def initialize(bridge, id)
|
|
32
|
-
@bridge
|
|
32
|
+
@bridge = bridge
|
|
33
|
+
@id = id
|
|
33
34
|
end
|
|
34
35
|
|
|
35
36
|
def inspect
|
|
36
|
-
'
|
|
37
|
+
format '#<%<class>s:0x%<hash>x id=%<id>s>', class: self.class, hash: hash * 2, id: @id.inspect
|
|
37
38
|
end
|
|
38
39
|
|
|
39
40
|
def ==(other)
|
|
40
|
-
other.
|
|
41
|
+
other.is_a?(self.class) && ref == other.ref
|
|
41
42
|
end
|
|
42
43
|
alias_method :eql?, :==
|
|
43
44
|
|
|
@@ -63,14 +64,14 @@ module Selenium
|
|
|
63
64
|
#
|
|
64
65
|
# @example Click on a button
|
|
65
66
|
#
|
|
66
|
-
# driver.find_element(:
|
|
67
|
+
# driver.find_element(tag_name: "button").click
|
|
67
68
|
#
|
|
68
69
|
# @raise [StaleElementReferenceError] if the element no longer exists as
|
|
69
70
|
# defined
|
|
70
71
|
#
|
|
71
72
|
|
|
72
73
|
def click
|
|
73
|
-
bridge.
|
|
74
|
+
bridge.click_element @id
|
|
74
75
|
end
|
|
75
76
|
|
|
76
77
|
#
|
|
@@ -78,13 +79,13 @@ module Selenium
|
|
|
78
79
|
#
|
|
79
80
|
# @example Get the tagname of an INPUT element(returns "input")
|
|
80
81
|
#
|
|
81
|
-
# driver.find_element(:
|
|
82
|
+
# driver.find_element(xpath: "//input").tag_name
|
|
82
83
|
#
|
|
83
84
|
# @return [String] The tag name of this element.
|
|
84
85
|
#
|
|
85
86
|
|
|
86
87
|
def tag_name
|
|
87
|
-
bridge.
|
|
88
|
+
bridge.element_tag_name @id
|
|
88
89
|
end
|
|
89
90
|
|
|
90
91
|
#
|
|
@@ -107,14 +108,24 @@ module Selenium
|
|
|
107
108
|
#
|
|
108
109
|
# class, readonly
|
|
109
110
|
#
|
|
110
|
-
# @param [String]
|
|
111
|
-
#
|
|
112
|
-
# @return [String,nil]
|
|
113
|
-
# attribute value
|
|
111
|
+
# @param [String] name attribute name
|
|
112
|
+
# @return [String, nil] attribute value
|
|
114
113
|
#
|
|
115
114
|
|
|
116
115
|
def attribute(name)
|
|
117
|
-
bridge.
|
|
116
|
+
bridge.element_attribute self, name
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
#
|
|
120
|
+
# Get the value of a the given property with the same name of the element. If the value is not
|
|
121
|
+
# set, nil is returned.
|
|
122
|
+
#
|
|
123
|
+
# @param [String] name property name
|
|
124
|
+
# @return [String, nil] property value
|
|
125
|
+
#
|
|
126
|
+
|
|
127
|
+
def property(name)
|
|
128
|
+
bridge.element_property self, name
|
|
118
129
|
end
|
|
119
130
|
|
|
120
131
|
#
|
|
@@ -124,13 +135,13 @@ module Selenium
|
|
|
124
135
|
#
|
|
125
136
|
|
|
126
137
|
def text
|
|
127
|
-
bridge.
|
|
138
|
+
bridge.element_text @id
|
|
128
139
|
end
|
|
129
140
|
|
|
130
141
|
#
|
|
131
142
|
# Send keystrokes to this element
|
|
132
143
|
#
|
|
133
|
-
# @param [String, Symbol, Array]
|
|
144
|
+
# @param [String, Symbol, Array] args keystrokes to send
|
|
134
145
|
#
|
|
135
146
|
# Examples:
|
|
136
147
|
#
|
|
@@ -142,7 +153,7 @@ module Selenium
|
|
|
142
153
|
#
|
|
143
154
|
|
|
144
155
|
def send_keys(*args)
|
|
145
|
-
bridge.
|
|
156
|
+
bridge.send_keys_to_element @id, Keys.encode(args)
|
|
146
157
|
end
|
|
147
158
|
alias_method :send_key, :send_keys
|
|
148
159
|
|
|
@@ -157,7 +168,7 @@ module Selenium
|
|
|
157
168
|
#
|
|
158
169
|
|
|
159
170
|
def clear
|
|
160
|
-
bridge.
|
|
171
|
+
bridge.clear_element @id
|
|
161
172
|
end
|
|
162
173
|
|
|
163
174
|
#
|
|
@@ -167,7 +178,7 @@ module Selenium
|
|
|
167
178
|
#
|
|
168
179
|
|
|
169
180
|
def enabled?
|
|
170
|
-
bridge.
|
|
181
|
+
bridge.element_enabled? @id
|
|
171
182
|
end
|
|
172
183
|
|
|
173
184
|
#
|
|
@@ -177,7 +188,7 @@ module Selenium
|
|
|
177
188
|
#
|
|
178
189
|
|
|
179
190
|
def selected?
|
|
180
|
-
bridge.
|
|
191
|
+
bridge.element_selected? @id
|
|
181
192
|
end
|
|
182
193
|
|
|
183
194
|
#
|
|
@@ -187,7 +198,7 @@ module Selenium
|
|
|
187
198
|
#
|
|
188
199
|
|
|
189
200
|
def displayed?
|
|
190
|
-
bridge.
|
|
201
|
+
bridge.element_displayed? self
|
|
191
202
|
end
|
|
192
203
|
|
|
193
204
|
#
|
|
@@ -195,7 +206,7 @@ module Selenium
|
|
|
195
206
|
#
|
|
196
207
|
|
|
197
208
|
def submit
|
|
198
|
-
bridge.
|
|
209
|
+
bridge.submit_element @id
|
|
199
210
|
end
|
|
200
211
|
|
|
201
212
|
#
|
|
@@ -210,7 +221,7 @@ module Selenium
|
|
|
210
221
|
#
|
|
211
222
|
|
|
212
223
|
def css_value(prop)
|
|
213
|
-
bridge.
|
|
224
|
+
bridge.element_value_of_css_property @id, prop
|
|
214
225
|
end
|
|
215
226
|
alias_method :style, :css_value
|
|
216
227
|
|
|
@@ -221,7 +232,17 @@ module Selenium
|
|
|
221
232
|
#
|
|
222
233
|
|
|
223
234
|
def location
|
|
224
|
-
bridge.
|
|
235
|
+
bridge.element_location @id
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
#
|
|
239
|
+
# Get the dimensions and coordinates of this element.
|
|
240
|
+
#
|
|
241
|
+
# @return [WebDriver::Rectangle]
|
|
242
|
+
#
|
|
243
|
+
|
|
244
|
+
def rect
|
|
245
|
+
bridge.element_rect @id
|
|
225
246
|
end
|
|
226
247
|
|
|
227
248
|
#
|
|
@@ -231,7 +252,7 @@ module Selenium
|
|
|
231
252
|
#
|
|
232
253
|
|
|
233
254
|
def location_once_scrolled_into_view
|
|
234
|
-
bridge.
|
|
255
|
+
bridge.element_location_once_scrolled_into_view @id
|
|
235
256
|
end
|
|
236
257
|
|
|
237
258
|
#
|
|
@@ -241,19 +262,19 @@ module Selenium
|
|
|
241
262
|
#
|
|
242
263
|
|
|
243
264
|
def size
|
|
244
|
-
bridge.
|
|
265
|
+
bridge.element_size @id
|
|
245
266
|
end
|
|
246
267
|
|
|
247
268
|
#-------------------------------- sugar --------------------------------
|
|
248
269
|
|
|
249
270
|
#
|
|
250
|
-
# element.first(:
|
|
271
|
+
# element.first(id: 'foo')
|
|
251
272
|
#
|
|
252
273
|
|
|
253
274
|
alias_method :first, :find_element
|
|
254
275
|
|
|
255
276
|
#
|
|
256
|
-
# element.all(:
|
|
277
|
+
# element.all(class: 'bar')
|
|
257
278
|
#
|
|
258
279
|
|
|
259
280
|
alias_method :all, :find_elements
|
|
@@ -280,7 +301,7 @@ module Selenium
|
|
|
280
301
|
# @api private
|
|
281
302
|
#
|
|
282
303
|
|
|
283
|
-
def to_json(*
|
|
304
|
+
def to_json(*)
|
|
284
305
|
JSON.generate as_json
|
|
285
306
|
end
|
|
286
307
|
|
|
@@ -290,26 +311,25 @@ module Selenium
|
|
|
290
311
|
# @api private
|
|
291
312
|
#
|
|
292
313
|
|
|
293
|
-
def as_json(
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
314
|
+
def as_json(*)
|
|
315
|
+
key = if bridge.dialect == :w3c
|
|
316
|
+
'element-6066-11e4-a52e-4f735466cecf'
|
|
317
|
+
else
|
|
318
|
+
'ELEMENT'
|
|
319
|
+
end
|
|
320
|
+
@id.is_a?(Hash) ? @id : {key => @id}
|
|
298
321
|
end
|
|
299
322
|
|
|
300
323
|
private
|
|
301
324
|
|
|
302
|
-
|
|
303
|
-
@bridge
|
|
304
|
-
end
|
|
325
|
+
attr_reader :bridge
|
|
305
326
|
|
|
306
327
|
def selectable?
|
|
307
328
|
tn = tag_name.downcase
|
|
308
329
|
type = attribute(:type).to_s.downcase
|
|
309
330
|
|
|
310
|
-
tn ==
|
|
331
|
+
tn == 'option' || (tn == 'input' && %w[radio checkbox].include?(type))
|
|
311
332
|
end
|
|
312
|
-
|
|
313
333
|
end # Element
|
|
314
334
|
end # WebDriver
|
|
315
335
|
end # Selenium
|