selenium-webdriver 3.0.0.beta4.0 → 4.0.0.alpha5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (139) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +679 -0
  3. data/Gemfile +2 -0
  4. data/LICENSE +1 -1
  5. data/README.md +1 -1
  6. data/lib/selenium-webdriver.rb +2 -2
  7. data/lib/selenium/server.rb +23 -16
  8. data/lib/selenium/webdriver.rb +43 -25
  9. data/lib/selenium/webdriver/atoms.rb +20 -1
  10. data/lib/selenium/webdriver/atoms/findElements.js +122 -0
  11. data/lib/selenium/webdriver/atoms/getAttribute.js +84 -11
  12. data/lib/selenium/webdriver/atoms/isDisplayed.js +100 -0
  13. data/lib/selenium/webdriver/chrome.rb +15 -20
  14. data/lib/selenium/webdriver/chrome/bridge.rb +29 -66
  15. data/lib/selenium/webdriver/{edge/service.rb → chrome/driver.rb} +19 -22
  16. data/lib/selenium/webdriver/chrome/options.rb +221 -0
  17. data/lib/selenium/webdriver/chrome/profile.rb +6 -7
  18. data/lib/selenium/webdriver/chrome/service.rb +20 -20
  19. data/lib/selenium/webdriver/common.rb +19 -11
  20. data/lib/selenium/webdriver/common/action_builder.rb +98 -246
  21. data/lib/selenium/webdriver/common/alert.rb +2 -7
  22. data/lib/selenium/webdriver/common/driver.rb +89 -51
  23. data/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +45 -0
  24. data/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +50 -0
  25. data/lib/selenium/webdriver/common/driver_extensions/{has_input_devices.rb → has_debugger.rb} +12 -25
  26. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +38 -0
  27. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +3 -5
  28. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +51 -0
  29. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +3 -3
  30. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +51 -0
  31. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +2 -2
  32. data/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +2 -2
  33. data/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +2 -2
  34. data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +4 -4
  35. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +9 -3
  36. data/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +3 -5
  37. data/lib/selenium/webdriver/common/element.rb +32 -10
  38. data/lib/selenium/webdriver/common/error.rb +103 -121
  39. data/lib/selenium/webdriver/common/file_reaper.rb +3 -5
  40. data/lib/selenium/webdriver/common/html5/local_storage.rb +2 -2
  41. data/lib/selenium/webdriver/common/html5/session_storage.rb +2 -2
  42. data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +3 -2
  43. data/lib/selenium/webdriver/common/interactions/input_device.rb +54 -0
  44. data/lib/selenium/webdriver/common/interactions/interaction.rb +53 -0
  45. data/lib/selenium/webdriver/{phantomjs.rb → common/interactions/interactions.rb} +17 -20
  46. data/lib/selenium/webdriver/common/interactions/key_actions.rb +145 -0
  47. data/lib/selenium/webdriver/common/interactions/key_input.rb +66 -0
  48. data/lib/selenium/webdriver/common/interactions/none_input.rb +36 -0
  49. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +363 -0
  50. data/lib/selenium/webdriver/common/interactions/pointer_input.rb +139 -0
  51. data/lib/selenium/webdriver/common/keys.rb +37 -15
  52. data/lib/selenium/webdriver/common/log_entry.rb +4 -4
  53. data/lib/selenium/webdriver/common/logger.rb +147 -0
  54. data/lib/selenium/webdriver/common/logs.rb +2 -2
  55. data/lib/selenium/webdriver/common/manager.rb +177 -0
  56. data/lib/selenium/webdriver/common/navigation.rb +2 -2
  57. data/lib/selenium/webdriver/common/options.rb +47 -105
  58. data/lib/selenium/webdriver/common/platform.rb +44 -38
  59. data/lib/selenium/webdriver/common/port_prober.rb +8 -19
  60. data/lib/selenium/webdriver/common/profile_helper.rb +13 -5
  61. data/lib/selenium/webdriver/common/proxy.rb +14 -8
  62. data/lib/selenium/webdriver/common/search_context.rb +16 -20
  63. data/lib/selenium/webdriver/common/service.rb +115 -30
  64. data/lib/selenium/webdriver/common/socket_lock.rb +12 -7
  65. data/lib/selenium/webdriver/common/socket_poller.rb +29 -22
  66. data/lib/selenium/webdriver/common/target_locator.rb +6 -6
  67. data/lib/selenium/webdriver/common/timeouts.rb +2 -2
  68. data/lib/selenium/webdriver/common/wait.rb +14 -8
  69. data/lib/selenium/webdriver/common/window.rb +38 -2
  70. data/lib/selenium/webdriver/common/zipper.rb +3 -5
  71. data/lib/selenium/webdriver/edge.rb +33 -20
  72. data/lib/selenium/webdriver/edge_chrome/bridge.rb +30 -0
  73. data/lib/selenium/webdriver/edge_chrome/driver.rb +38 -0
  74. data/lib/selenium/webdriver/{common/driver_extensions/has_touch_screen.rb → edge_chrome/options.rb} +10 -12
  75. data/lib/selenium/webdriver/edge_chrome/profile.rb +33 -0
  76. data/lib/selenium/webdriver/edge_chrome/service.rb +36 -0
  77. data/lib/selenium/webdriver/edge_html/driver.rb +39 -0
  78. data/lib/selenium/webdriver/edge_html/options.rb +91 -0
  79. data/lib/selenium/webdriver/edge_html/service.rb +47 -0
  80. data/lib/selenium/webdriver/firefox.rb +24 -29
  81. data/lib/selenium/webdriver/firefox/bridge.rb +15 -39
  82. data/lib/selenium/webdriver/firefox/{util.rb → driver.rb} +13 -19
  83. data/lib/selenium/webdriver/firefox/extension.rb +28 -8
  84. data/lib/selenium/webdriver/firefox/options.rb +162 -0
  85. data/lib/selenium/webdriver/firefox/profile.rb +23 -82
  86. data/lib/selenium/webdriver/firefox/profiles_ini.rb +5 -5
  87. data/lib/selenium/webdriver/firefox/service.rb +18 -37
  88. data/lib/selenium/webdriver/ie.rb +13 -19
  89. data/lib/selenium/webdriver/ie/driver.rb +40 -0
  90. data/lib/selenium/webdriver/ie/options.rb +118 -0
  91. data/lib/selenium/webdriver/ie/service.rb +20 -20
  92. data/lib/selenium/webdriver/remote.rb +15 -17
  93. data/lib/selenium/webdriver/remote/bridge.rb +281 -300
  94. data/lib/selenium/webdriver/remote/capabilities.rb +102 -83
  95. data/lib/selenium/webdriver/remote/commands.rb +132 -192
  96. data/lib/selenium/webdriver/remote/driver.rb +52 -0
  97. data/lib/selenium/webdriver/remote/http/common.rb +23 -13
  98. data/lib/selenium/webdriver/remote/http/curb.rb +10 -7
  99. data/lib/selenium/webdriver/remote/http/default.rb +52 -32
  100. data/lib/selenium/webdriver/remote/http/persistent.rb +8 -4
  101. data/lib/selenium/webdriver/remote/response.rb +32 -35
  102. data/lib/selenium/webdriver/remote/server_error.rb +2 -2
  103. data/lib/selenium/webdriver/safari.rb +24 -22
  104. data/lib/selenium/webdriver/safari/bridge.rb +21 -21
  105. data/lib/selenium/webdriver/safari/driver.rb +41 -0
  106. data/lib/selenium/webdriver/safari/options.rb +66 -0
  107. data/lib/selenium/webdriver/safari/service.rb +8 -24
  108. data/lib/selenium/webdriver/support.rb +3 -2
  109. data/lib/selenium/webdriver/support/abstract_event_listener.rb +2 -2
  110. data/lib/selenium/webdriver/support/block_event_listener.rb +3 -3
  111. data/lib/selenium/webdriver/support/color.rb +13 -13
  112. data/lib/selenium/webdriver/support/escaper.rb +2 -2
  113. data/lib/selenium/webdriver/support/event_firing_bridge.rb +4 -4
  114. data/lib/selenium/webdriver/support/relative_locator.rb +51 -0
  115. data/lib/selenium/webdriver/support/select.rb +20 -21
  116. data/lib/selenium/webdriver/version.rb +24 -0
  117. data/selenium-webdriver.gemspec +31 -17
  118. metadata +331 -248
  119. data/lib/selenium/webdriver/common/bridge_helper.rb +0 -82
  120. data/lib/selenium/webdriver/common/keyboard.rb +0 -69
  121. data/lib/selenium/webdriver/common/mouse.rb +0 -88
  122. data/lib/selenium/webdriver/common/touch_action_builder.rb +0 -81
  123. data/lib/selenium/webdriver/common/touch_screen.rb +0 -121
  124. data/lib/selenium/webdriver/common/w3c_error.rb +0 -191
  125. data/lib/selenium/webdriver/edge/bridge.rb +0 -76
  126. data/lib/selenium/webdriver/edge/legacy_support.rb +0 -117
  127. data/lib/selenium/webdriver/firefox/binary.rb +0 -186
  128. data/lib/selenium/webdriver/firefox/extension/prefs.json +0 -69
  129. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  130. data/lib/selenium/webdriver/firefox/launcher.rb +0 -114
  131. data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  132. data/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
  133. data/lib/selenium/webdriver/firefox/w3c_bridge.rb +0 -79
  134. data/lib/selenium/webdriver/ie/bridge.rb +0 -76
  135. data/lib/selenium/webdriver/phantomjs/bridge.rb +0 -65
  136. data/lib/selenium/webdriver/phantomjs/service.rb +0 -66
  137. data/lib/selenium/webdriver/remote/w3c_bridge.rb +0 -682
  138. data/lib/selenium/webdriver/remote/w3c_capabilities.rb +0 -228
  139. data/lib/selenium/webdriver/remote/w3c_commands.rb +0 -135
@@ -1,82 +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
- #
23
- # Shared across bridges
24
- #
25
- # @api private
26
- #
27
-
28
- module BridgeHelper
29
- def unwrap_script_result(arg)
30
- case arg
31
- when Array
32
- arg.map { |e| unwrap_script_result(e) }
33
- when Hash
34
- element_id = element_id_from(arg)
35
- element_id = arg if self.is_a?(Remote::W3CBridge) && element_id
36
- return Element.new(self, element_id) if element_id
37
- arg.each { |k, v| arg[k] = unwrap_script_result(v) }
38
- else
39
- arg
40
- end
41
- end
42
-
43
- def element_id_from(id)
44
- id['ELEMENT'] || id['element-6066-11e4-a52e-4f735466cecf']
45
- end
46
-
47
- def parse_cookie_string(str)
48
- result = {
49
- 'name' => '',
50
- 'value' => '',
51
- 'domain' => '',
52
- 'path' => '',
53
- 'expires' => '',
54
- 'secure' => false
55
- }
56
-
57
- str.split(';').each do |attribute|
58
- if attribute.include? '='
59
- key, value = attribute.strip.split('=', 2)
60
- if result['name'].empty?
61
- result['name'] = key
62
- result['value'] = value
63
- elsif key == 'domain' && value.strip =~ /^\.(.+)/
64
- result['domain'] = Regexp.last_match(1)
65
- elsif key && value
66
- result[key] = value
67
- end
68
- elsif attribute == 'secure'
69
- result['secure'] = true
70
- end
71
-
72
- unless [nil, '', '0'].include?(result['expires'])
73
- # firefox stores expiry as number of seconds
74
- result['expires'] = Time.at(result['expires'].to_i)
75
- end
76
- end
77
-
78
- result
79
- end
80
- end # BridgeHelper
81
- end # WebDriver
82
- end # Selenium
@@ -1,69 +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
- #
23
- # @api private
24
- # @see ActionBuilder
25
-
26
- class Keyboard
27
- def initialize(bridge)
28
- @bridge = bridge
29
- end
30
-
31
- def send_keys(*keys)
32
- @bridge.send_keys_to_active_element Keys.encode(keys)
33
- end
34
-
35
- #
36
- # Press a modifier key
37
- #
38
- # @see Selenium::WebDriver::Keys
39
- #
40
-
41
- def press(key)
42
- assert_modifier key
43
-
44
- @bridge.send_keys_to_active_element Keys.encode([key])
45
- end
46
-
47
- #
48
- # Release a modifier key
49
- #
50
- # @see Selenium::WebDriver::Keys
51
- #
52
-
53
- def release(key)
54
- assert_modifier key
55
-
56
- @bridge.send_keys_to_active_element Keys.encode([key])
57
- end
58
-
59
- private
60
-
61
- MODIFIERS = [:control, :shift, :alt, :command, :meta].freeze
62
-
63
- def assert_modifier(key)
64
- return if MODIFIERS.include? key
65
- raise ArgumentError, "#{key.inspect} is not a modifier key, expected one of #{MODIFIERS.inspect}"
66
- end
67
- end # Keyboard
68
- end # WebDriver
69
- end # Selenium
@@ -1,88 +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
- #
23
- # @api private
24
- # @see ActionBuilder
25
- #
26
-
27
- class Mouse
28
- def initialize(bridge)
29
- @bridge = bridge
30
- end
31
-
32
- def click(element = nil)
33
- move_if_needed element
34
- @bridge.click
35
- end
36
-
37
- def double_click(element = nil)
38
- move_if_needed element
39
- @bridge.double_click
40
- end
41
-
42
- def context_click(element = nil)
43
- move_if_needed element
44
- @bridge.context_click
45
- end
46
-
47
- def down(element = nil)
48
- move_if_needed element
49
- @bridge.mouse_down
50
- end
51
-
52
- def up(element = nil)
53
- move_if_needed element
54
- @bridge.mouse_up
55
- end
56
-
57
- #
58
- # Move the mouse.
59
- #
60
- # Examples:
61
- #
62
- # driver.mouse.move_to(element)
63
- # driver.mouse.move_to(element, 5, 5)
64
- #
65
-
66
- def move_to(element, right_by = nil, down_by = nil)
67
- assert_element element
68
-
69
- @bridge.mouse_move_to element.ref, right_by, down_by
70
- end
71
-
72
- def move_by(right_by, down_by)
73
- @bridge.mouse_move_to nil, Integer(right_by), Integer(down_by)
74
- end
75
-
76
- private
77
-
78
- def move_if_needed(element)
79
- move_to element if element
80
- end
81
-
82
- def assert_element(element)
83
- return if element.is_a? Element
84
- raise TypeError, "expected #{Element}, got #{element.inspect}:#{element.class}"
85
- end
86
- end # Mouse
87
- end # WebDriver
88
- end # Selenium
@@ -1,81 +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
- class TouchActionBuilder < ActionBuilder
23
- #
24
- # @api private
25
- #
26
-
27
- def initialize(mouse, keyboard, touch_screen)
28
- super(mouse, keyboard)
29
- @devices[:touch_screen] = touch_screen
30
- end
31
-
32
- def scroll(*args)
33
- unless [2, 3].include? args.size
34
- raise ArgumentError, "wrong number of arguments, expected 2..3, got #{args.size}"
35
- end
36
-
37
- @actions << [:touch_screen, :scroll, args]
38
- self
39
- end
40
-
41
- def flick(*args)
42
- unless [2, 4].include? args.size
43
- raise ArgumentError, "wrong number of arguments, expected 2 or 4, got #{args.size}"
44
- end
45
-
46
- @actions << [:touch_screen, :flick, args]
47
- self
48
- end
49
-
50
- def single_tap(element)
51
- @actions << [:touch_screen, :single_tap, [element]]
52
- self
53
- end
54
-
55
- def double_tap(element)
56
- @actions << [:touch_screen, :double_tap, [element]]
57
- self
58
- end
59
-
60
- def long_press(element)
61
- @actions << [:touch_screen, :long_press, [element]]
62
- self
63
- end
64
-
65
- def down(x, y = nil)
66
- @actions << [:touch_screen, :down, [x, y]]
67
- self
68
- end
69
-
70
- def up(x, y = nil)
71
- @actions << [:touch_screen, :up, [x, y]]
72
- self
73
- end
74
-
75
- def move(x, y = nil)
76
- @actions << [:touch_screen, :move, [x, y]]
77
- self
78
- end
79
- end # TouchActionBuilder
80
- end # WebDriver
81
- end # Selenium
@@ -1,121 +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
- class TouchScreen
23
- FLICK_SPEED = {normal: 0, fast: 1}.freeze
24
-
25
- #
26
- # @api private
27
- #
28
-
29
- def initialize(bridge)
30
- @bridge = bridge
31
- end
32
-
33
- def single_tap(element)
34
- assert_element element
35
- @bridge.touch_single_tap element.ref
36
- end
37
-
38
- def double_tap(element)
39
- assert_element element
40
- @bridge.touch_double_tap element.ref
41
- end
42
-
43
- def long_press(element)
44
- assert_element element
45
- @bridge.touch_long_press element.ref
46
- end
47
-
48
- def down(x, y = nil)
49
- x, y = coords_from x, y
50
- @bridge.touch_down x, y
51
- end
52
-
53
- def up(x, y = nil)
54
- x, y = coords_from x, y
55
- @bridge.touch_up x, y
56
- end
57
-
58
- def move(x, y = nil)
59
- x, y = coords_from x, y
60
- @bridge.touch_move x, y
61
- end
62
-
63
- def scroll(*args)
64
- case args.size
65
- when 2
66
- x_offset, y_offset = args
67
- @bridge.touch_scroll nil, Integer(x_offset), Integer(y_offset)
68
- when 3
69
- element, x_offset, y_offset = args
70
- assert_element element
71
- @bridge.touch_scroll element.ref, Integer(x_offset), Integer(y_offset)
72
- else
73
- raise ArgumentError, "wrong number of arguments, expected 2..3, got #{args.size}"
74
- end
75
- end
76
-
77
- def flick(*args)
78
- case args.size
79
- when 2
80
- x_speed, y_speed = args
81
- @bridge.touch_flick Integer(x_speed), Integer(y_speed)
82
- when 4
83
- element, xoffset, yoffset, speed = args
84
-
85
- assert_element element
86
- flick_speed = FLICK_SPEED[speed.to_sym]
87
-
88
- unless flick_speed
89
- raise ArgumentError, "expected one of #{FLICK_SPEED.keys.inspect}, got #{speed.inspect}"
90
- end
91
-
92
- @bridge.touch_element_flick element.ref, Integer(xoffset), Integer(yoffset), flick_speed
93
- else
94
- raise ArgumentError, "wrong number of arguments, expected 2 or 4, got #{args.size}"
95
- end
96
- end
97
-
98
- private
99
-
100
- def coords_from(x, y)
101
- if y.nil?
102
- point = x
103
-
104
- unless point.respond_to?(:x) && point.respond_to?(:y)
105
- raise ArgumentError, "expected #{point.inspect} to respond to :x and :y"
106
- end
107
-
108
- x = point.x
109
- y = point.y
110
- end
111
-
112
- [Integer(x), Integer(y)]
113
- end
114
-
115
- def assert_element(element)
116
- return if element.is_a? Element
117
- raise TypeError, "expected #{Element}, got #{element.inspect}:#{element.class}"
118
- end
119
- end # TouchScreen
120
- end # WebDriver
121
- end # Selenium
@@ -1,191 +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 Error
23
- class WebDriverError < StandardError; end
24
-
25
- #
26
- # An attempt was made to select an element that cannot be selected.
27
- #
28
-
29
- class ElementNotSelectableError < WebDriverError; end
30
-
31
- #
32
- # An element command could not be completed because the element is
33
- # not visible on the page.
34
- #
35
-
36
- class ElementNotVisibleError < WebDriverError; end
37
-
38
- #
39
- # The arguments passed to a command are either invalid or malformed.
40
- #
41
-
42
- class InvalidArgumentError < WebDriverError; end
43
-
44
- #
45
- # An illegal attempt was made to set a cookie under a different
46
- # domain than the current page.
47
- #
48
-
49
- class InvalidCookieDomainError < WebDriverError; end
50
-
51
- #
52
- # The coordinates provided to an interactions operation are invalid.
53
- #
54
-
55
- class InvalidElementCoordinatesError < WebDriverError; end
56
-
57
- #
58
- # An element command could not be completed because the element is
59
- # in an invalid state, e.g. attempting to click an element that is no
60
- # longer attached to the document.
61
- #
62
-
63
- class InvalidElementStateError < WebDriverError; end
64
-
65
- #
66
- # Argument was an invalid selector.
67
- #
68
-
69
- class InvalidSelectorError < WebDriverError; end
70
-
71
- #
72
- # Occurs if the given session id is not in the list of active sessions,
73
- # meaning the session either does not exist or that it's not active.
74
- #
75
-
76
- class InvalidSessionIdError < WebDriverError; end
77
-
78
- #
79
- # An error occurred while executing JavaScript supplied by the user.
80
- #
81
-
82
- class JavascriptError < WebDriverError; end
83
-
84
- #
85
- # The target for mouse interaction is not in the browser's viewport and
86
- # cannot be brought into that viewport.
87
- #
88
-
89
- class MoveTargetOutOfBoundsError < WebDriverError; end
90
-
91
- #
92
- # An attempt was made to operate on a modal dialog when one was not open.
93
- #
94
-
95
- class NoSuchAlertError < WebDriverError; end
96
-
97
- #
98
- # An element could not be located on the page using the given
99
- # search parameters.
100
- #
101
-
102
- class NoSuchElementError < WebDriverError; end
103
-
104
- #
105
- # A request to switch to a frame could not be satisfied because the
106
- # frame could not be found.
107
- #
108
-
109
- class NoSuchFrameError < WebDriverError; end
110
-
111
- #
112
- # A request to switch to a window could not be satisfied because the
113
- # window could not be found.
114
- #
115
-
116
- class NoSuchWindowError < WebDriverError; end
117
-
118
- #
119
- # A script did not complete before its timeout expired.
120
- #
121
-
122
- class ScriptTimeoutError < WebDriverError; end
123
-
124
- #
125
- # A new session could not be created.
126
- #
127
-
128
- class SessionNotCreatedError < WebDriverError; end
129
-
130
- #
131
- # An element command failed because the referenced element is no longer
132
- # attached to the DOM.
133
- #
134
-
135
- class StaleElementReferenceError < WebDriverError; end
136
-
137
- #
138
- # An operation did not complete before its timeout expired.
139
- #
140
-
141
- class TimeoutError < WebDriverError; end
142
-
143
- #
144
- # A request to set a cookie's value could not be satisfied.
145
- #
146
-
147
- class UnableToSetCookieError < WebDriverError; end
148
-
149
- #
150
- # A screen capture was made impossible.
151
- #
152
-
153
- class UnableToCaptureScreenError < WebDriverError; end
154
-
155
- #
156
- # A modal dialog was open, blocking this operation.
157
- #
158
-
159
- class UnexpectedAlertOpenError < WebDriverError; end
160
-
161
- #
162
- # An unknown error occurred in the remote end while processing
163
- # the command.
164
- #
165
-
166
- class UnknownError < WebDriverError; end
167
-
168
- #
169
- # The requested command matched a known URL but did not match a
170
- # method for that URL.
171
- #
172
-
173
- class UnknownMethodError < WebDriverError; end
174
-
175
- #
176
- # Indicates that a command that should have executed properly cannot be supported for some reason.
177
- #
178
-
179
- class UnsupportedOperationError < WebDriverError; end
180
-
181
- # aliased for backwards compatibility
182
- NoAlertPresentError = NoSuchAlertError
183
- ScriptTimeOutError = ScriptTimeoutError
184
- ObsoleteElementError = StaleElementReferenceError
185
- UnhandledError = UnknownError
186
- UnexpectedJavascriptError = JavascriptError
187
- NoAlertOpenError = NoAlertPresentError
188
- ElementNotDisplayedError = ElementNotVisibleError
189
- end # Error
190
- end # WebDriver
191
- end # Selenium