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.
Files changed (162) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +665 -8
  3. data/Gemfile +2 -0
  4. data/LICENSE +1 -1
  5. data/README.md +2 -3
  6. data/lib/selenium/server.rb +76 -73
  7. data/lib/selenium/webdriver/atoms/getAttribute.js +7 -0
  8. data/lib/selenium/webdriver/atoms/isDisplayed.js +102 -0
  9. data/lib/selenium/webdriver/{phantomjs.rb → atoms.rb} +10 -14
  10. data/lib/selenium/webdriver/chrome/bridge.rb +30 -101
  11. data/lib/selenium/webdriver/chrome/driver.rb +127 -0
  12. data/lib/selenium/webdriver/chrome/options.rb +190 -0
  13. data/lib/selenium/webdriver/chrome/profile.rb +21 -20
  14. data/lib/selenium/webdriver/chrome/service.rb +26 -93
  15. data/lib/selenium/webdriver/chrome.rb +15 -6
  16. data/lib/selenium/webdriver/common/action_builder.rb +52 -58
  17. data/lib/selenium/webdriver/common/alert.rb +7 -15
  18. data/lib/selenium/webdriver/common/bridge_helper.rb +18 -22
  19. data/lib/selenium/webdriver/common/driver.rb +72 -72
  20. data/lib/selenium/webdriver/common/driver_extensions/downloads_files.rb +45 -0
  21. data/lib/selenium/webdriver/common/driver_extensions/has_addons.rb +50 -0
  22. data/lib/selenium/webdriver/common/driver_extensions/{has_input_devices.rb → has_debugger.rb} +11 -27
  23. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +6 -10
  24. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +51 -0
  25. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +7 -8
  26. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +51 -0
  27. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +2 -4
  28. data/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +2 -4
  29. data/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +3 -5
  30. data/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +2 -5
  31. data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +6 -9
  32. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +9 -7
  33. data/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +3 -8
  34. data/lib/selenium/webdriver/common/element.rb +59 -39
  35. data/lib/selenium/webdriver/common/error.rb +259 -104
  36. data/lib/selenium/webdriver/common/file_reaper.rb +6 -14
  37. data/lib/selenium/webdriver/common/html5/local_storage.rb +8 -10
  38. data/lib/selenium/webdriver/common/html5/session_storage.rb +8 -10
  39. data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +8 -16
  40. data/lib/selenium/webdriver/common/interactions/input_device.rb +54 -0
  41. data/lib/selenium/webdriver/common/interactions/interaction.rb +53 -0
  42. data/lib/selenium/webdriver/{safari/browser.rb → common/interactions/interactions.rb} +17 -14
  43. data/lib/selenium/webdriver/common/interactions/key_actions.rb +145 -0
  44. data/lib/selenium/webdriver/common/interactions/key_input.rb +66 -0
  45. data/lib/selenium/webdriver/{android.rb → common/interactions/none_input.rb} +14 -6
  46. data/lib/selenium/webdriver/common/interactions/pointer_actions.rb +363 -0
  47. data/lib/selenium/webdriver/common/interactions/pointer_input.rb +139 -0
  48. data/lib/selenium/webdriver/common/keyboard.rb +10 -14
  49. data/lib/selenium/webdriver/common/keys.rb +102 -82
  50. data/lib/selenium/webdriver/common/log_entry.rb +7 -8
  51. data/lib/selenium/webdriver/common/logger.rb +115 -0
  52. data/lib/selenium/webdriver/common/logs.rb +4 -6
  53. data/lib/selenium/webdriver/common/manager.rb +177 -0
  54. data/lib/selenium/webdriver/common/mouse.rb +12 -14
  55. data/lib/selenium/webdriver/common/navigation.rb +4 -6
  56. data/lib/selenium/webdriver/common/options.rb +26 -127
  57. data/lib/selenium/webdriver/common/platform.rb +75 -101
  58. data/lib/selenium/webdriver/common/port_prober.rb +7 -19
  59. data/lib/selenium/webdriver/common/profile_helper.rb +8 -11
  60. data/lib/selenium/webdriver/common/proxy.rb +68 -74
  61. data/lib/selenium/webdriver/common/search_context.rb +28 -37
  62. data/lib/selenium/webdriver/common/service.rb +219 -0
  63. data/lib/selenium/webdriver/common/socket_lock.rb +15 -16
  64. data/lib/selenium/webdriver/common/socket_poller.rb +30 -28
  65. data/lib/selenium/webdriver/common/target_locator.rb +16 -18
  66. data/lib/selenium/webdriver/common/timeouts.rb +6 -8
  67. data/lib/selenium/webdriver/common/touch_action_builder.rb +5 -10
  68. data/lib/selenium/webdriver/common/touch_screen.rb +22 -23
  69. data/lib/selenium/webdriver/common/w3c_action_builder.rb +212 -0
  70. data/lib/selenium/webdriver/common/w3c_manager.rb +45 -0
  71. data/lib/selenium/webdriver/common/wait.rb +17 -16
  72. data/lib/selenium/webdriver/common/window.rb +50 -17
  73. data/lib/selenium/webdriver/common/zipper.rb +9 -13
  74. data/lib/selenium/webdriver/common.rb +21 -7
  75. data/lib/selenium/webdriver/edge/bridge.rb +34 -63
  76. data/lib/selenium/webdriver/edge/driver.rb +66 -0
  77. data/lib/selenium/webdriver/edge/options.rb +80 -0
  78. data/lib/selenium/webdriver/edge/service.rb +23 -95
  79. data/lib/selenium/webdriver/edge.rb +13 -13
  80. data/lib/selenium/webdriver/firefox/binary.rb +45 -60
  81. data/lib/selenium/webdriver/firefox/driver.rb +50 -0
  82. data/lib/selenium/webdriver/firefox/extension/prefs.json +3 -12
  83. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  84. data/lib/selenium/webdriver/firefox/extension.rb +20 -10
  85. data/lib/selenium/webdriver/firefox/launcher.rb +16 -22
  86. data/lib/selenium/webdriver/firefox/legacy/driver.rb +83 -0
  87. data/lib/selenium/webdriver/firefox/marionette/bridge.rb +49 -0
  88. data/lib/selenium/webdriver/firefox/marionette/driver.rb +90 -0
  89. data/lib/selenium/webdriver/firefox/options.rb +162 -0
  90. data/lib/selenium/webdriver/firefox/profile.rb +47 -48
  91. data/lib/selenium/webdriver/firefox/profiles_ini.rb +11 -18
  92. data/lib/selenium/webdriver/firefox/service.rb +24 -95
  93. data/lib/selenium/webdriver/firefox/util.rb +2 -4
  94. data/lib/selenium/webdriver/firefox.rb +27 -12
  95. data/lib/selenium/webdriver/ie/driver.rb +85 -0
  96. data/lib/selenium/webdriver/ie/options.rb +138 -0
  97. data/lib/selenium/webdriver/ie/service.rb +54 -0
  98. data/lib/selenium/webdriver/ie.rb +12 -10
  99. data/lib/selenium/webdriver/remote/bridge.rb +100 -564
  100. data/lib/selenium/webdriver/remote/capabilities.rb +98 -100
  101. data/lib/selenium/webdriver/remote/driver.rb +51 -0
  102. data/lib/selenium/webdriver/remote/http/common.rb +34 -22
  103. data/lib/selenium/webdriver/remote/http/curb.rb +13 -14
  104. data/lib/selenium/webdriver/remote/http/default.rb +62 -43
  105. data/lib/selenium/webdriver/remote/http/persistent.rb +12 -9
  106. data/lib/selenium/webdriver/remote/oss/bridge.rb +594 -0
  107. data/lib/selenium/webdriver/remote/oss/commands.rb +223 -0
  108. data/lib/selenium/webdriver/remote/response.rb +48 -28
  109. data/lib/selenium/webdriver/remote/server_error.rb +3 -5
  110. data/lib/selenium/webdriver/remote/w3c/bridge.rb +605 -0
  111. data/lib/selenium/webdriver/remote/w3c/capabilities.rb +310 -0
  112. data/lib/selenium/webdriver/remote/w3c/commands.rb +157 -0
  113. data/lib/selenium/webdriver/remote.rb +10 -16
  114. data/lib/selenium/webdriver/safari/bridge.rb +17 -101
  115. data/lib/selenium/webdriver/{firefox/w3c_bridge.rb → safari/driver.rb} +27 -25
  116. data/lib/selenium/webdriver/safari/options.rb +29 -31
  117. data/lib/selenium/webdriver/safari/service.rb +38 -0
  118. data/lib/selenium/webdriver/safari.rb +27 -27
  119. data/lib/selenium/webdriver/support/abstract_event_listener.rb +19 -4
  120. data/lib/selenium/webdriver/support/block_event_listener.rb +3 -5
  121. data/lib/selenium/webdriver/support/color.rb +60 -43
  122. data/lib/selenium/webdriver/support/escaper.rb +43 -0
  123. data/lib/selenium/webdriver/support/event_firing_bridge.rb +39 -41
  124. data/lib/selenium/webdriver/support/select.rb +45 -97
  125. data/lib/selenium/webdriver/support.rb +3 -2
  126. data/lib/selenium/webdriver/{iphone.rb → version.rb} +3 -7
  127. data/lib/selenium/webdriver.rb +36 -23
  128. data/lib/selenium-webdriver.rb +2 -2
  129. data/selenium-webdriver.gemspec +42 -29
  130. metadata +331 -262
  131. data/lib/selenium/client/base.rb +0 -151
  132. data/lib/selenium/client/driver.rb +0 -29
  133. data/lib/selenium/client/errors.rb +0 -28
  134. data/lib/selenium/client/extensions.rb +0 -132
  135. data/lib/selenium/client/idiomatic.rb +0 -507
  136. data/lib/selenium/client/javascript_expression_builder.rb +0 -135
  137. data/lib/selenium/client/javascript_frameworks/jquery.rb +0 -32
  138. data/lib/selenium/client/javascript_frameworks/prototype.rb +0 -32
  139. data/lib/selenium/client/legacy_driver.rb +0 -1722
  140. data/lib/selenium/client/protocol.rb +0 -123
  141. data/lib/selenium/client/selenium_helper.rb +0 -49
  142. data/lib/selenium/client.rb +0 -57
  143. data/lib/selenium/rake/server_task.rb +0 -176
  144. data/lib/selenium/webdriver/android/bridge.rb +0 -68
  145. data/lib/selenium/webdriver/common/core_ext/base64.rb +0 -28
  146. data/lib/selenium/webdriver/common/core_ext/dir.rb +0 -61
  147. data/lib/selenium/webdriver/common/html5/location.rb +0 -19
  148. data/lib/selenium/webdriver/common/w3c_error.rb +0 -194
  149. data/lib/selenium/webdriver/edge/legacy_support.rb +0 -117
  150. data/lib/selenium/webdriver/firefox/bridge.rb +0 -89
  151. data/lib/selenium/webdriver/ie/bridge.rb +0 -88
  152. data/lib/selenium/webdriver/ie/server.rb +0 -133
  153. data/lib/selenium/webdriver/iphone/bridge.rb +0 -64
  154. data/lib/selenium/webdriver/phantomjs/bridge.rb +0 -78
  155. data/lib/selenium/webdriver/phantomjs/service.rb +0 -130
  156. data/lib/selenium/webdriver/remote/commands.rb +0 -211
  157. data/lib/selenium/webdriver/remote/w3c_bridge.rb +0 -668
  158. data/lib/selenium/webdriver/remote/w3c_capabilities.rb +0 -236
  159. data/lib/selenium/webdriver/remote/w3c_commands.rb +0 -132
  160. data/lib/selenium/webdriver/safari/resources/client.js +0 -7255
  161. data/lib/selenium/webdriver/safari/server.rb +0 -187
  162. data/lib/selenium-client.rb +0 -21
@@ -1,123 +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 Client
22
-
23
- HTTP_HEADERS = { 'Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8' }
24
-
25
- # Module in charge of handling Selenium over-the-wire HTTP protocol
26
- module Protocol
27
- attr_reader :session_id
28
-
29
- def remote_control_command(verb, args=[])
30
- timeout(@default_timeout_in_seconds) do
31
- status, response = http_post(http_request_for(verb, args))
32
- raise CommandError, response unless status == "OK"
33
- response[3..-1] # strip "OK," from response
34
- end
35
- end
36
-
37
- def string_command(verb, args=[])
38
- remote_control_command(verb, args)
39
- end
40
-
41
- def string_array_command(verb, args=[])
42
- csv = string_command(verb, args)
43
- token = ""
44
- tokens = []
45
- escape = false
46
- csv.split(//).each do |letter|
47
- if escape
48
- token += letter
49
- escape = false
50
- next
51
- end
52
- case letter
53
- when '\\'
54
- escape = true
55
- when ','
56
- tokens << token
57
- token = ""
58
- else
59
- token += letter
60
- end
61
- end
62
- tokens << token
63
- return tokens
64
- end
65
-
66
- def number_command(verb, args)
67
- string_command verb, args
68
- end
69
-
70
- def number_array_command(verb, args)
71
- string_array_command verb, args
72
- end
73
-
74
- def boolean_command(verb, args=[])
75
- parse_boolean_value string_command(verb, args)
76
- end
77
-
78
- def boolean_array_command(verb, args)
79
- string_array_command(verb, args).collect {|value| parse_boolean_value(value)}
80
- end
81
-
82
- protected
83
-
84
- def parse_boolean_value(value)
85
- if ("true" == value)
86
- return true
87
- elsif ("false" == value)
88
- return false
89
- end
90
- raise ProtocolError, "Invalid Selenese boolean value that is neither 'true' nor 'false': got '#{value}'"
91
- end
92
-
93
- def http_request_for(verb, args)
94
- data = "cmd=#{CGI::escape(verb)}"
95
- args.each_with_index do |arg, index|
96
- data << "&#{index.succ}=#{CGI::escape(arg.to_s)}"
97
- end
98
- data << "&sessionId=#{session_id}" unless session_id.nil?
99
- data
100
- end
101
-
102
- def http_post(data)
103
- start = Time.now
104
- called_from = caller.detect{|line| line !~ /(selenium-client|vendor|usr\/lib\/ruby|\(eval\))/i}
105
- http = Net::HTTP.new(@host, @port)
106
- http.open_timeout = default_timeout_in_seconds
107
- http.read_timeout = default_timeout_in_seconds
108
- response = http.post('/selenium-server/driver/', data, HTTP_HEADERS)
109
- if response.body !~ /^OK/
110
- puts "#{start} selenium-client received failure from selenium server:"
111
- puts "requested:"
112
- puts "\t" + CGI::unescape(data.split('&').join("\n\t"))
113
- puts "received:"
114
- puts "\t#{response.body.inspect}"
115
- puts "\tcalled from #{called_from}"
116
- end
117
- [ response.body[0..1], response.body ]
118
- end
119
-
120
- end
121
-
122
- end
123
- end
@@ -1,49 +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 Client
22
-
23
- module SeleniumHelper
24
-
25
- # Overrides default open method to actually delegates to @selenium
26
- def open(url)
27
- @selenium.open url
28
- end
29
-
30
- # Overrides default type method to actually delegates to @selenium
31
- def type(locator, value)
32
- @selenium.type locator, value
33
- end
34
-
35
- # Overrides default select method to actually delegates to @selenium
36
- def select(input_locator, option_locator)
37
- @selenium.select input_locator, option_locator
38
- end
39
-
40
- # Delegates to @selenium on method missing
41
- def method_missing(method_name, *args)
42
- return super unless @selenium.respond_to?(method_name)
43
-
44
- @selenium.send(method_name, *args)
45
- end
46
- end
47
-
48
- end
49
- end
@@ -1,57 +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
- require 'net/http'
21
- require 'uri'
22
- require 'cgi'
23
- require 'digest/md5'
24
- require 'base64'
25
- require 'fileutils'
26
- require 'tmpdir'
27
-
28
- require 'selenium/client/errors'
29
- require 'selenium/client/protocol'
30
- require 'selenium/client/legacy_driver'
31
- require 'selenium/client/javascript_expression_builder'
32
- require 'selenium/client/javascript_frameworks/prototype'
33
- require 'selenium/client/javascript_frameworks/jquery'
34
- require 'selenium/client/extensions'
35
- require 'selenium/client/idiomatic'
36
- require 'selenium/client/base'
37
- require 'selenium/client/driver'
38
- require 'selenium/client/selenium_helper'
39
- require 'selenium/server'
40
-
41
- module Selenium
42
- DEPRECATED_CONSTANTS = {
43
- :SeleniumDriver => Selenium::Client::Driver,
44
- :CommandError => Selenium::Client::CommandError
45
- }
46
-
47
- def self.const_missing(name)
48
- if replacement = DEPRECATED_CONSTANTS[name.to_sym]
49
- warn "the Selenium::#{name} constant has been deprecated, please use #{replacement} instead"
50
- replacement
51
- else
52
- super
53
- end
54
- end
55
-
56
- autoload :Rake, 'selenium/rake/server_task'
57
- end # Selenium
@@ -1,176 +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
- require 'selenium/server'
21
- require 'rake'
22
-
23
- module Selenium
24
- module Rake
25
-
26
- class MissingJarFileError < StandardError
27
- end
28
-
29
- #
30
- # Defines rake tasks for starting, stopping and restarting the Selenium server.
31
- #
32
- # Usage:
33
- #
34
- # require 'selenium/rake/server_task'
35
- #
36
- # Selenium::Rake::ServerTask.new do |t|
37
- # t.jar = "/path/to/selenium-server-standalone.jar"
38
- # t.port = 4444
39
- # t.opts = %w[-some options]
40
- # end
41
- #
42
- # Alternatively, you can have the task download a specific version of the server:
43
- #
44
- # Selenium::Rake::ServerTask.new(:server) do |t|
45
- # t.version = '2.6.0'
46
- # end
47
- #
48
- # or the latest version
49
- #
50
- # Selenium::Rake::ServerTask.new(:server) do |t|
51
- # t.version = :latest
52
- # end
53
- #
54
- #
55
- # Tasks defined:
56
- #
57
- # rake selenium:server:start
58
- # rake selenium:server:stop
59
- # rake selenium:server:restart
60
- #
61
-
62
- class ServerTask
63
- include ::Rake::DSL if defined?(::Rake::DSL)
64
-
65
- #
66
- # Path to the selenium server jar
67
- #
68
-
69
- attr_accessor :jar
70
-
71
- #
72
- # Port to use for the server.
73
- # Default: 4444
74
- #
75
- #
76
-
77
- attr_accessor :port
78
-
79
- #
80
- # Timeout in seconds for the server to start/stop.
81
- # Default: 30
82
- #
83
-
84
- attr_accessor :timeout
85
-
86
- #
87
- # Whether we should detach from the server process.
88
- # Default: true
89
- #
90
-
91
- attr_accessor :background
92
- alias_method :background?, :background
93
-
94
- #
95
- # Configure logging. Pass a log file path or a boolean.
96
- # Default: true
97
- #
98
- # true - log to stdout/stderr
99
- # false - no logging
100
- # String - log to the specified file
101
- #
102
-
103
- attr_accessor :log
104
-
105
- #
106
- # Add additional options passed to the server jar.
107
- #
108
-
109
- attr_accessor :opts
110
-
111
- #
112
- # Specify the version of the server jar to download
113
- #
114
-
115
- attr_accessor :version
116
-
117
-
118
- def initialize(prefix = "selenium:server")
119
- @jar = nil
120
- @prefix = prefix
121
- @port = 4444
122
- @timeout = 30
123
- @background = true
124
- @log = true
125
- @opts = []
126
- @version = nil
127
-
128
- yield self if block_given?
129
-
130
- if @version
131
- @jar = Selenium::Server.download(@version)
132
- end
133
-
134
- unless @jar
135
- raise MissingJarFileError, "must provide path to the selenium server jar"
136
- end
137
-
138
- @server = Selenium::Server.new(@jar, :port => @port,
139
- :timeout => @timeout,
140
- :background => @background,
141
- :log => @log )
142
-
143
- @server << @opts
144
-
145
- define_start_task
146
- define_stop_task
147
- define_restart_task
148
- end
149
-
150
- private
151
-
152
- def define_start_task
153
- desc "Start the Selenium server"
154
- task "#{@prefix}:start" do
155
- @server.start
156
- end
157
- end
158
-
159
- def define_stop_task
160
- desc 'Stop the Selenium server'
161
- task "#{@prefix}:stop" do
162
- @server.stop
163
- end
164
- end
165
-
166
- def define_restart_task
167
- desc 'Restart the Selenium server'
168
- task "#{@prefix}:restart" do
169
- @server.stop
170
- @server.start
171
- end
172
- end
173
-
174
- end # ServerTask
175
- end # Rake
176
- end # Selenium
@@ -1,68 +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 Android
23
-
24
- #
25
- # @api private
26
- #
27
-
28
- class Bridge < Remote::Bridge
29
-
30
- DEFAULT_URL = "http://#{Platform.localhost}:8080/wd/hub/"
31
-
32
- def initialize(opts = {})
33
- warn 'The Android driver is deprecated - please use either http://selendroid.io or http://appium.io instead.'
34
-
35
- remote_opts = {
36
- :url => opts.fetch(:url, DEFAULT_URL),
37
- :desired_capabilities => opts.fetch(:desired_capabilities, capabilities),
38
- }
39
-
40
- remote_opts[:http_client] = opts[:http_client] if opts.has_key?(:http_client)
41
-
42
- super remote_opts
43
- end
44
-
45
- def browser
46
- :android
47
- end
48
-
49
- def driver_extensions
50
- [
51
- DriverExtensions::TakesScreenshot,
52
- DriverExtensions::Rotatable,
53
- DriverExtensions::HasInputDevices,
54
- DriverExtensions::HasWebStorage,
55
- DriverExtensions::HasLocation,
56
- DriverExtensions::HasNetworkConnection,
57
- DriverExtensions::HasTouchScreen
58
- ]
59
- end
60
-
61
- def capabilities
62
- @capabilities ||= Remote::Capabilities.android
63
- end
64
-
65
- end # Bridge
66
- end # Android
67
- end # WebDriver
68
- end # Selenium
@@ -1,28 +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
- require 'base64'
21
-
22
- module Base64
23
-
24
- def self.strict_encode64(str)
25
- encode64(str).gsub(/\n/, '')
26
- end unless respond_to?(:strict_encode64) # added in 1.9
27
-
28
- end
@@ -1,61 +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
- class Dir
21
- # @api private
22
- def self.mktmpdir(prefix_suffix=nil, tmpdir=nil)
23
- case prefix_suffix
24
- when nil
25
- prefix = "d"
26
- suffix = ""
27
- when String
28
- prefix = prefix_suffix
29
- suffix = ""
30
- when Array
31
- prefix = prefix_suffix[0]
32
- suffix = prefix_suffix[1]
33
- else
34
- raise ArgumentError, "unexpected prefix_suffix: #{prefix_suffix.inspect}"
35
- end
36
- tmpdir ||= Dir.tmpdir
37
- t = Time.now.strftime("%Y%m%d")
38
- n = nil
39
- begin
40
- path = "#{tmpdir}/#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}"
41
- path << "-#{n}" if n
42
- path << suffix
43
- Dir.mkdir(path, 0700)
44
- rescue Errno::EEXIST
45
- n ||= 0
46
- n += 1
47
- retry
48
- end
49
-
50
- if block_given?
51
- begin
52
- yield path
53
- ensure
54
- FileUtils.remove_entry_secure path
55
- end
56
- else
57
- path
58
- end
59
- end unless respond_to? :mktmpdir # > 1.8.7
60
- end
61
-
@@ -1,19 +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
-