selenium-webdriver 2.45.0 → 2.46.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. data/CHANGES +18 -3
  2. data/Gemfile.lock +5 -5
  3. data/LICENSE +202 -0
  4. data/README.md +13 -8
  5. data/lib/selenium-client.rb +17 -0
  6. data/lib/selenium-webdriver.rb +17 -0
  7. data/lib/selenium/client.rb +17 -0
  8. data/lib/selenium/client/base.rb +17 -0
  9. data/lib/selenium/client/driver.rb +17 -0
  10. data/lib/selenium/client/errors.rb +17 -0
  11. data/lib/selenium/client/extensions.rb +1 -3
  12. data/lib/selenium/client/idiomatic.rb +17 -0
  13. data/lib/selenium/client/javascript_expression_builder.rb +17 -0
  14. data/lib/selenium/client/javascript_frameworks/jquery.rb +17 -0
  15. data/lib/selenium/client/javascript_frameworks/prototype.rb +17 -0
  16. data/lib/selenium/client/legacy_driver.rb +15 -15
  17. data/lib/selenium/client/protocol.rb +17 -0
  18. data/lib/selenium/client/selenium_helper.rb +18 -5
  19. data/lib/selenium/rake/server_task.rb +17 -0
  20. data/lib/selenium/server.rb +17 -0
  21. data/lib/selenium/webdriver.rb +18 -3
  22. data/lib/selenium/webdriver/android.rb +17 -0
  23. data/lib/selenium/webdriver/android/bridge.rb +18 -1
  24. data/lib/selenium/webdriver/chrome.rb +20 -3
  25. data/lib/selenium/webdriver/chrome/bridge.rb +17 -0
  26. data/lib/selenium/webdriver/chrome/profile.rb +18 -1
  27. data/lib/selenium/webdriver/chrome/service.rb +64 -21
  28. data/lib/selenium/webdriver/common.rb +19 -1
  29. data/lib/selenium/webdriver/common/action_builder.rb +17 -0
  30. data/lib/selenium/webdriver/common/alert.rb +17 -0
  31. data/lib/selenium/webdriver/common/bridge_helper.rb +18 -1
  32. data/lib/selenium/webdriver/common/core_ext/base64.rb +17 -0
  33. data/lib/selenium/webdriver/common/core_ext/dir.rb +17 -0
  34. data/lib/selenium/webdriver/common/core_ext/string.rb +17 -0
  35. data/lib/selenium/webdriver/common/driver.rb +18 -3
  36. data/lib/selenium/webdriver/common/driver_extensions/has_input_devices.rb +17 -0
  37. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +21 -4
  38. data/lib/selenium/webdriver/common/driver_extensions/has_network_connection.rb +57 -0
  39. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +21 -4
  40. data/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +17 -0
  41. data/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +21 -4
  42. data/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +17 -0
  43. data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +17 -0
  44. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +17 -0
  45. data/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +17 -0
  46. data/lib/selenium/webdriver/common/element.rb +23 -3
  47. data/lib/selenium/webdriver/common/error.rb +17 -0
  48. data/lib/selenium/webdriver/common/file_reaper.rb +17 -0
  49. data/lib/selenium/webdriver/common/html5/local_storage.rb +21 -4
  50. data/lib/selenium/webdriver/common/html5/location.rb +17 -0
  51. data/lib/selenium/webdriver/common/html5/session_storage.rb +21 -4
  52. data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +22 -5
  53. data/lib/selenium/webdriver/common/json_helper.rb +20 -3
  54. data/lib/selenium/webdriver/common/keyboard.rb +17 -0
  55. data/lib/selenium/webdriver/common/keys.rb +16 -1
  56. data/lib/selenium/webdriver/common/log_entry.rb +21 -3
  57. data/lib/selenium/webdriver/common/logs.rb +20 -3
  58. data/lib/selenium/webdriver/common/mouse.rb +17 -0
  59. data/lib/selenium/webdriver/common/navigation.rb +17 -0
  60. data/lib/selenium/webdriver/common/options.rb +17 -0
  61. data/lib/selenium/webdriver/common/platform.rb +17 -0
  62. data/lib/selenium/webdriver/common/port_prober.rb +17 -0
  63. data/lib/selenium/webdriver/common/profile_helper.rb +17 -0
  64. data/lib/selenium/webdriver/common/proxy.rb +17 -0
  65. data/lib/selenium/webdriver/common/search_context.rb +17 -0
  66. data/lib/selenium/webdriver/common/socket_lock.rb +76 -0
  67. data/lib/selenium/webdriver/common/socket_poller.rb +17 -0
  68. data/lib/selenium/webdriver/common/target_locator.rb +17 -0
  69. data/lib/selenium/webdriver/common/timeouts.rb +17 -0
  70. data/lib/selenium/webdriver/common/touch_action_builder.rb +20 -3
  71. data/lib/selenium/webdriver/common/touch_screen.rb +20 -3
  72. data/lib/selenium/webdriver/common/wait.rb +17 -0
  73. data/lib/selenium/webdriver/common/window.rb +20 -4
  74. data/lib/selenium/webdriver/common/zipper.rb +17 -0
  75. data/lib/selenium/webdriver/firefox.rb +20 -4
  76. data/lib/selenium/webdriver/firefox/binary.rb +17 -0
  77. data/lib/selenium/webdriver/firefox/bridge.rb +18 -3
  78. data/lib/selenium/webdriver/firefox/extension.rb +17 -0
  79. data/lib/selenium/webdriver/firefox/extension/prefs.json +2 -0
  80. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  81. data/lib/selenium/webdriver/firefox/launcher.rb +17 -8
  82. data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  83. data/lib/selenium/webdriver/firefox/profile.rb +17 -0
  84. data/lib/selenium/webdriver/firefox/profiles_ini.rb +17 -0
  85. data/lib/selenium/webdriver/firefox/util.rb +17 -0
  86. data/lib/selenium/webdriver/ie.rb +21 -3
  87. data/lib/selenium/webdriver/ie/bridge.rb +17 -0
  88. data/lib/selenium/webdriver/ie/server.rb +21 -4
  89. data/lib/selenium/webdriver/iphone.rb +17 -0
  90. data/lib/selenium/webdriver/iphone/bridge.rb +17 -0
  91. data/lib/selenium/webdriver/phantomjs.rb +20 -3
  92. data/lib/selenium/webdriver/phantomjs/bridge.rb +17 -0
  93. data/lib/selenium/webdriver/phantomjs/service.rb +17 -0
  94. data/lib/selenium/webdriver/remote.rb +20 -5
  95. data/lib/selenium/webdriver/remote/bridge.rb +24 -9
  96. data/lib/selenium/webdriver/remote/capabilities.rb +17 -9
  97. data/lib/selenium/webdriver/remote/commands.rb +20 -4
  98. data/lib/selenium/webdriver/remote/http/common.rb +18 -1
  99. data/lib/selenium/webdriver/remote/http/curb.rb +17 -0
  100. data/lib/selenium/webdriver/remote/http/default.rb +26 -4
  101. data/lib/selenium/webdriver/remote/http/persistent.rb +17 -0
  102. data/lib/selenium/webdriver/remote/response.rb +17 -0
  103. data/lib/selenium/webdriver/remote/server_error.rb +19 -2
  104. data/lib/selenium/webdriver/safari.rb +20 -3
  105. data/lib/selenium/webdriver/safari/bridge.rb +21 -4
  106. data/lib/selenium/webdriver/safari/browser.rb +21 -5
  107. data/lib/selenium/webdriver/safari/extensions.rb +21 -4
  108. data/lib/selenium/webdriver/safari/options.rb +21 -4
  109. data/lib/selenium/webdriver/safari/resources/SafariDriver.safariextz +0 -0
  110. data/lib/selenium/webdriver/safari/resources/client.js +1 -1
  111. data/lib/selenium/webdriver/safari/server.rb +21 -4
  112. data/lib/selenium/webdriver/support.rb +17 -0
  113. data/lib/selenium/webdriver/support/abstract_event_listener.rb +21 -4
  114. data/lib/selenium/webdriver/support/block_event_listener.rb +21 -4
  115. data/lib/selenium/webdriver/support/color.rb +22 -5
  116. data/lib/selenium/webdriver/support/event_firing_bridge.rb +17 -0
  117. data/lib/selenium/webdriver/support/select.rb +21 -4
  118. data/selenium-webdriver.gemspec +2 -2
  119. metadata +78 -78
  120. data/lib/selenium/webdriver/opera.rb +0 -24
  121. data/lib/selenium/webdriver/opera/bridge.rb +0 -112
  122. data/lib/selenium/webdriver/opera/service.rb +0 -49
@@ -1,112 +0,0 @@
1
- module Selenium
2
- module WebDriver
3
- module Opera
4
-
5
- #
6
- # @api private
7
- #
8
-
9
- LOGGING_LEVELS = [:severe, :warning, :info, :config, :fine, :finer, :finest, :all]
10
-
11
- class Bridge < Remote::Bridge
12
-
13
- def initialize(opts = {})
14
- @service = Service.default_service :log => (opts[:logging_level] ? true : false)
15
-
16
- http_client = opts.delete(:http_client)
17
- caps = create_capabilities(opts)
18
-
19
- @service.start
20
-
21
- remote_opts = {
22
- :url => @service.uri,
23
- :desired_capabilities => caps
24
- }
25
-
26
- remote_opts.merge!(:http_client => http_client) if http_client
27
-
28
- super(remote_opts)
29
- end
30
-
31
- def browser
32
- :opera
33
- end
34
-
35
- def driver_extensions
36
- [
37
- DriverExtensions::HasInputDevices,
38
- DriverExtensions::TakesScreenshot
39
- ]
40
- end
41
-
42
- def capabilities
43
- @capabilities ||= Remote::Capabilities.opera
44
- end
45
-
46
- def quit
47
- super
48
- ensure
49
- @service.stop
50
- end
51
-
52
- private
53
-
54
- def create_capabilities(opts)
55
- original_opts = opts.dup
56
-
57
- arguments = opts.delete(:arguments)
58
- logging_level = opts.delete(:logging_level)
59
- logging_file = opts.delete(:logging_file)
60
- host = opts.delete(:host)
61
- port = opts.delete(:port)
62
- launcher = opts.delete(:launcher)
63
- profile = opts.delete(:profile)
64
- idle = opts.delete(:idle)
65
- display = opts.delete(:display)
66
- autostart = opts.delete(:autostart)
67
- no_restart = opts.delete(:no_restart)
68
- no_quit = opts.delete(:no_quit)
69
- product = opts.delete(:product)
70
- caps = opts.delete(:desired_capabilities) { Remote::Capabilities.opera }
71
-
72
- unless opts.empty?
73
- raise ArgumentError, "unknown option#{'s' if opts.size != 1}: #{opts.inspect}"
74
- end
75
-
76
- if arguments
77
- unless arguments.kind_of? Array
78
- raise ArgumentError, ':arguments must be an Array of Strings'
79
- end
80
-
81
- caps.merge! 'opera.arguments' => arguments.join(' ')
82
- end
83
-
84
- if logging_level
85
- unless LOGGING_LEVELS.include?(logging_level)
86
- raise ArgumentError,
87
- "unknown logging level #{logging_level.inspect}, available levels: #{LOGGING_LEVELS.inspect}"
88
- end
89
-
90
- caps.merge! 'opera.logging.level' => logging_level.to_s.upcase
91
- end
92
-
93
- caps.merge! 'opera.logging.file' => logging_file if logging_file
94
- caps.merge! 'opera.binary' => Opera.path if Opera.path
95
- caps.merge! 'opera.host' => host if host
96
- caps.merge! 'opera.port' => port.to_i if port
97
- caps.merge! 'opera.launcher' => launcher if launcher
98
- caps.merge! 'opera.profile' => profile if original_opts.has_key?(:profile)
99
- caps.merge! 'opera.idle' => !!idle unless idle.nil?
100
- caps.merge! 'opera.display' => display.to_i if display
101
- caps.merge! 'opera.autostart' => !!autostart unless autostart.nil?
102
- caps.merge! 'opera.no_restart' => !!no_restart unless no_restart.nil?
103
- caps.merge! 'opera.no_quit' => !!no_quit unless no_quit.nil?
104
- caps.merge! 'opera.product' => product if product
105
-
106
- caps
107
- end
108
-
109
- end
110
- end
111
- end
112
- end
@@ -1,49 +0,0 @@
1
- module Selenium
2
- module WebDriver
3
- module Opera
4
-
5
- #
6
- # @api private
7
- #
8
-
9
- class Service
10
- MISSING_TEXT = 'Unable to find the Selenium server jar. Please download the standalone server from http://selenium-release.storage.googleapis.com/index.html and set the SELENIUM_SERVER_JAR environmental variable to its location. More info at http://code.google.com/p/selenium/wiki/OperaDriver.'
11
-
12
- def self.selenium_server_jar
13
- @selenium_server_jar ||= (
14
- ENV['SELENIUM_SERVER_JAR'] or raise Error::WebDriverError, MISSING_TEXT
15
- )
16
- end
17
-
18
- def self.selenium_server_jar=(path)
19
- Platform.assert_file path
20
- @selenium_server_jar = path
21
- end
22
-
23
- def self.default_service(opts = {})
24
- new selenium_server_jar, opts
25
- end
26
-
27
- def initialize(jar, opts = {})
28
- opts.merge! :background => true, :port => PortProber.above(4444)
29
- opts.merge! :log => !!$DEBUG if $DEBUG
30
- @server = Selenium::Server.new File.expand_path(jar), opts
31
- end
32
-
33
- def uri
34
- @server.webdriver_url
35
- end
36
-
37
- def start
38
- @server.start
39
- Platform.exit_hook { stop } # make sure we don't leave the server running
40
- end
41
-
42
- def stop
43
- @server.stop
44
- end
45
- end
46
-
47
- end
48
- end
49
- end