selenium-webdriver 2.5.0 → 2.6.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.
data/CHANGES CHANGED
@@ -1,3 +1,21 @@
1
+ 2.6.0 (2011-09-13)
2
+ ==================
3
+
4
+ * Rescue and retry on Errno::EADDRINUSE to work around ephemeral ports issue on Windows.
5
+ * Use correct default URL for the Android driver.
6
+ * Profile zipping now follows symlinks (#2416).
7
+ * Firefox
8
+ - Disable malware check
9
+ - Various #click improvements
10
+ - Don't scroll if element is already in view
11
+ * IE:
12
+ - improve scrolling to elements with 'overflow: sroll'
13
+ - properly trigger jQuery change events (#2207)
14
+ - improve handling of nested modal dialogs
15
+ * Opera:
16
+ - capabilities exposed as options to Selenium::WebDriver.for
17
+ * Various iPhone driver fixes (e.g. #1396)
18
+
1
19
  2.5.0 (2011-08-23)
2
20
  ==================
3
21
 
@@ -20,6 +20,19 @@ module Selenium
20
20
  # t.opts = %w[-some options]
21
21
  # end
22
22
  #
23
+ # Alternatively, you can have the task download a specific version of the server:
24
+ #
25
+ # Selenium::Rake::ServerTask.new(:server) do |t|
26
+ # t.version = '2.6.0'
27
+ # end
28
+ #
29
+ # or the latest version
30
+ #
31
+ # Selenium::Rake::ServerTask.new(:server) do |t|
32
+ # t.version = :latest
33
+ # end
34
+ #
35
+ #
23
36
  # Tasks defined:
24
37
  #
25
38
  # rake selenium:server:start
@@ -76,6 +89,12 @@ module Selenium
76
89
 
77
90
  attr_accessor :opts
78
91
 
92
+ #
93
+ # Specify the version of the server jar to download
94
+ #
95
+
96
+ attr_accessor :version
97
+
79
98
 
80
99
  def initialize(prefix = "selenium:server")
81
100
  @jar = nil
@@ -85,9 +104,14 @@ module Selenium
85
104
  @background = true
86
105
  @log = true
87
106
  @opts = []
107
+ @version = nil
88
108
 
89
109
  yield self if block_given?
90
110
 
111
+ if @version
112
+ @jar = Selenium::Server.download(@version)
113
+ end
114
+
91
115
  unless @jar
92
116
  raise MissingJarFileError, "must provide path to the selenium server jar"
93
117
  end
@@ -7,8 +7,86 @@ module Selenium
7
7
  #
8
8
  # Wraps the remote server jar
9
9
  #
10
+ # Usage:
11
+ #
12
+ # server = Selenium::Server.new('/path/to/selenium-server-standalone.jar')
13
+ # server.start
14
+ #
15
+ # Automatically download the given version:
16
+ #
17
+ # server = Selenium::Server.get '2.6.0'
18
+ # server.start
19
+ #
20
+ # or the latest version:
21
+ #
22
+ # server = Selenium::Server.get :latest
23
+ # server.start
24
+ #
10
25
 
11
26
  class Server
27
+ CL_RESET = WebDriver::Platform.windows? ? '' : "\r\e[0K"
28
+
29
+ def self.get(required_version, opts = {})
30
+ new(download(required_version), opts)
31
+ end
32
+
33
+ #
34
+ # Download the given version of the selenium-server-standalone jar.
35
+ #
36
+
37
+ def self.download(required_version)
38
+ required_version = latest if required_version == :latest
39
+ download_file_name = "selenium-server-standalone-#{required_version}.jar"
40
+
41
+ if File.exists? download_file_name
42
+ return download_file_name
43
+ end
44
+
45
+ begin
46
+ open(download_file_name, "wb") do |destination|
47
+ net_http.start("selenium.googlecode.com") do |http|
48
+ resp = http.request_get("/files/#{download_file_name}") do |response|
49
+ total = response.content_length
50
+ progress = 0
51
+ segment_count = 0
52
+
53
+ response.read_body do |segment|
54
+ progress += segment.length
55
+ segment_count += 1
56
+
57
+ if segment_count % 15 == 0
58
+ percent = (progress.to_f / total.to_f) * 100
59
+ print "#{CL_RESET}Downloading #{download_file_name}: #{percent.to_i}% (#{progress} / #{total})"
60
+ segment_count = 0
61
+ end
62
+
63
+ destination.write(segment)
64
+ end
65
+ end
66
+
67
+ unless resp.kind_of? Net::HTTPSuccess
68
+ raise "#{resp.code} for #{download_file_name}"
69
+ end
70
+ end
71
+ end
72
+ rescue
73
+ FileUtils.rm download_file_name if File.exists? download_file_name
74
+ raise
75
+ end
76
+
77
+ download_file_name
78
+ end
79
+
80
+ #
81
+ # Ask Google Code what the latest selenium-server-standalone version is.
82
+ #
83
+
84
+ def self.latest
85
+ net_http.start("code.google.com") do |http|
86
+ resp = http.get("/p/selenium/downloads/list")
87
+ resp.body.to_s[/selenium-server-standalone-(\d+.\d+.\d+).jar/, 1]
88
+ end
89
+ end
12
90
 
13
91
  def initialize(jar, opts = {})
14
92
  raise Errno::ENOENT, jar unless File.exist?(jar)
@@ -62,6 +140,18 @@ module Selenium
62
140
 
63
141
  private
64
142
 
143
+ def self.net_http
144
+ if ENV['http_proxy']
145
+ http_proxy = ENV['http_proxy']
146
+ http_proxy = "http://#{http_proxy}" unless http_proxy =~ /^http:\/\//i
147
+ uri = URI.parse(http_proxy)
148
+
149
+ Net::HTTP::Proxy(uri.host, uri.port)
150
+ else
151
+ Net::HTTP
152
+ end
153
+ end
154
+
65
155
  def stop_process
66
156
  return unless @process.alive?
67
157
 
@@ -3,7 +3,7 @@ module Selenium
3
3
  module Android
4
4
  class Bridge < Remote::Bridge
5
5
 
6
- DEFAULT_URL = "http://#{Platform.localhost}:8080/hub/"
6
+ DEFAULT_URL = "http://#{Platform.localhost}:8080/wd/hub/"
7
7
 
8
8
  def initialize(opts = {})
9
9
  remote_opts = {
@@ -75,6 +75,7 @@ module Selenium
75
75
  class << self
76
76
  def for_code(code)
77
77
  return if code == 0
78
+ return WebDriverError if code.nil?
78
79
 
79
80
  Errors[code - 1] || WebDriverError
80
81
  end
@@ -35,7 +35,9 @@ module Selenium
35
35
  Zip::ZipFile.open(zip_path, Zip::ZipFile::CREATE) { |zip|
36
36
  ::Find.find(path) do |file|
37
37
  next if File.directory?(file)
38
- entry = file.sub("#{path}/", '')
38
+
39
+ entry = Zip::ZipEntry.new(zip_path, file.sub("#{path}/", ''))
40
+ entry.follow_symlinks = true
39
41
 
40
42
  zip.add entry, file
41
43
  end
@@ -270,6 +270,7 @@ module Selenium
270
270
  "browser.link.open_external" => '2',
271
271
  "browser.link.open_newwindow" => '2',
272
272
  "browser.safebrowsing.enabled" => 'false',
273
+ "browser.safebrowsing.malware.enabled" => 'false',
273
274
  "browser.search.update" => 'false',
274
275
  "browser.sessionstore.resume_from_crash" => 'false',
275
276
  "browser.shell.checkDefaultBrowser" => 'false',
@@ -9,9 +9,10 @@ module Selenium
9
9
  remote_opts = {
10
10
  :url => opts.fetch(:url, DEFAULT_URL),
11
11
  :desired_capabilities => opts.fetch(:desired_capabilities, capabilities),
12
- :http_client => opts[:http_client]
13
12
  }
14
13
 
14
+ remote_opts[:http_client] = opts[:http_client] if opts.has_key?(:http_client)
15
+
15
16
  super remote_opts
16
17
  end
17
18
 
@@ -6,6 +6,18 @@ module Selenium
6
6
  module WebDriver
7
7
 
8
8
  module Opera
9
+ def self.driver_path=(path)
10
+ Service.selenium_server_jar = path
11
+ end
12
+
13
+ def self.path=(path)
14
+ Platform.assert_executable path
15
+ @path = path
16
+ end
17
+
18
+ def self.path
19
+ @path ||= nil
20
+ end
9
21
  end
10
22
 
11
23
  end
@@ -6,22 +6,19 @@ module Selenium
6
6
  # @api private
7
7
  #
8
8
 
9
+ LOGGING_LEVELS = [:severe, :warning, :info, :config, :fine, :finer, :finest, :all]
10
+
9
11
  class Bridge < Remote::Bridge
10
12
 
11
13
  def initialize(opts = {})
12
- http_client = opts.delete(:http_client)
13
-
14
- unless opts.empty?
15
- raise ArgumentError, "unknown option#{'s' if opts.size != 1}: #{opts.inspect}"
16
- end
17
-
18
- caps = Remote::Capabilities.opera
19
-
20
- @service = Service.default_service
14
+ @service = Service.default_service :log => (opts[:logging_level] ? true : false)
21
15
  @service.start
22
16
 
17
+ http_client = opts.delete(:http_client)
18
+ caps = create_capabilities(opts)
19
+
23
20
  remote_opts = {
24
- :url => @service.uri,
21
+ :url => @service.uri,
25
22
  :desired_capabilities => caps
26
23
  }
27
24
 
@@ -48,6 +45,62 @@ module Selenium
48
45
  @service.stop
49
46
  end
50
47
 
48
+ private
49
+
50
+ def create_capabilities(opts)
51
+ arguments = opts.delete(:arguments)
52
+ logging_level = opts.delete(:logging_level)
53
+ logging_file = opts.delete(:logging_file)
54
+ host = opts.delete(:host)
55
+ port = opts.delete(:port)
56
+ launcher = opts.delete(:launcher)
57
+ profile = opts.delete(:profile)
58
+ idle = opts.delete(:idle)
59
+ display = opts.delete(:display)
60
+ autostart = opts.delete(:autostart)
61
+ no_restart = opts.delete(:no_restart)
62
+ no_quit = opts.delete(:no_quit)
63
+ product = opts.delete(:product)
64
+
65
+ unless opts.empty?
66
+ raise ArgumentError, "unknown option#{'s' if opts.size != 1}: #{opts.inspect}"
67
+ end
68
+
69
+ caps = Remote::Capabilities.opera
70
+
71
+ if arguments
72
+ unless arguments.kind_of? Array
73
+ raise ArgumentError, ':arguments must be an Array of Strings'
74
+ end
75
+
76
+ caps.merge! 'opera.arguments' => arguments.join(' ')
77
+ end
78
+
79
+ if logging_level
80
+ unless LOGGING_LEVELS.include?(logging_level)
81
+ raise ArgumentError,
82
+ "unknown logging level #{logging_level.inspect}, available levels: #{LOGGING_LEVELS.inspect}"
83
+ end
84
+
85
+ caps.merge! 'opera.logging.level' => logging_level.to_s.upcase
86
+ end
87
+
88
+ caps.merge! 'opera.logging.file' => logging_file if logging_file
89
+ caps.merge! 'opera.binary' => Opera.path if Opera.path
90
+ caps.merge! 'opera.host' => host if host
91
+ caps.merge! 'opera.port' => port.to_i if port
92
+ caps.merge! 'opera.launcher' => launcher if launcher
93
+ caps.merge! 'opera.profile' => profile
94
+ caps.merge! 'opera.idle' => !!idle unless idle.nil?
95
+ caps.merge! 'opera.display' => display.to_i if display
96
+ caps.merge! 'opera.autostart' => !!autostart unless autostart.nil?
97
+ caps.merge! 'opera.no_restart' => !!no_restart unless no_restart.nil?
98
+ caps.merge! 'opera.no_quit' => !!no_quit unless no_quit.nil?
99
+ caps.merge! 'opera.product' => product if product
100
+
101
+ caps
102
+ end
103
+
51
104
  end
52
105
  end
53
106
  end
@@ -20,12 +20,13 @@ module Selenium
20
20
  @selenium_server_jar = path
21
21
  end
22
22
 
23
- def self.default_service
24
- new selenium_server_jar
23
+ def self.default_service(opts = {})
24
+ new selenium_server_jar, opts
25
25
  end
26
26
 
27
27
  def initialize(jar, opts = {})
28
- opts.merge! :background => true, :port => PortProber.random, :log => !!$DEBUG
28
+ opts.merge! :background => true, :port => PortProber.random
29
+ opts.merge! :log => !!$DEBUG if $DEBUG
29
30
  @server = Selenium::Server.new File.expand_path(jar), opts
30
31
  end
31
32
 
@@ -96,7 +96,7 @@ module Selenium
96
96
  :browser_name => "opera",
97
97
  :javascript_enabled => true,
98
98
  :takes_screenshot => true,
99
- :css_selectors_enabled => true,
99
+ :css_selectors_enabled => true
100
100
  }.merge(opts))
101
101
  end
102
102
 
@@ -28,7 +28,8 @@ module Selenium
28
28
  puts " > #{headers.inspect}"
29
29
  end
30
30
  elsif verb == :post
31
- headers["Content-Length"] = "0"
31
+ payload = "{}" # work around http://code.google.com/p/selenium/issues/detail?id=1396
32
+ headers["Content-Length"] = "2"
32
33
  end
33
34
 
34
35
  request verb, url, headers, payload
@@ -33,18 +33,26 @@ module Selenium
33
33
  )
34
34
  end
35
35
 
36
+ MAX_RETRIES = 3
37
+
36
38
  def request(verb, url, headers, payload, redirects = 0)
37
39
  request = new_request_for(verb, url, headers, payload)
38
40
 
39
- retried = false
41
+ retries = 0
40
42
  begin
41
43
  response = response_for(request)
42
- rescue Errno::ECONNABORTED, Errno::ECONNRESET
43
- # this happens sometimes on windows?!
44
- raise if retried
44
+ rescue Errno::ECONNABORTED, Errno::ECONNRESET, Errno::EADDRINUSE
45
+ # a retry is sometimes needed on Windows XP where we may quickly
46
+ # run out of ephemeral ports
47
+ #
48
+ # A more robust solution is bumping the MaxUserPort setting
49
+ # as described here:
50
+ #
51
+ # http://msdn.microsoft.com/en-us/library/aa560610%28v=bts.20%29.aspx
52
+ raise if retries >= MAX_RETRIES
45
53
 
46
54
  request = new_request_for(verb, url, headers, payload)
47
- retried = true
55
+ retries += 1
48
56
 
49
57
  retry
50
58
  end
metadata CHANGED
@@ -1,95 +1,144 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selenium-webdriver
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 23
4
5
  prerelease:
5
- version: 2.5.0
6
+ segments:
7
+ - 2
8
+ - 6
9
+ - 0
10
+ version: 2.6.0
6
11
  platform: ruby
7
12
  authors:
8
- - Jari Bakken
13
+ - Jari Bakken
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2011-08-23 00:00:00 +02:00
14
- default_executable:
18
+ date: 2011-09-13 00:00:00 Z
15
19
  dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: json_pure
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "0"
25
- type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: rubyzip
29
- prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
31
- none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "0"
36
- type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: childprocess
40
- prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: 0.2.1
47
- type: :runtime
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: ffi
51
- prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- version: 1.0.7
58
- type: :runtime
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: rspec
62
- prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
64
- none: false
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: "2.0"
69
- type: :development
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: rack
73
- prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
75
- none: false
76
- requirements:
77
- - - ~>
78
- - !ruby/object:Gem::Version
79
- version: "1.0"
80
- type: :development
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: ci_reporter
84
- prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - ~>
89
- - !ruby/object:Gem::Version
90
- version: 1.6.2
91
- type: :development
92
- version_requirements: *id007
20
+ - !ruby/object:Gem::Dependency
21
+ name: json_pure
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: rubyzip
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
46
+ type: :runtime
47
+ version_requirements: *id002
48
+ - !ruby/object:Gem::Dependency
49
+ name: childprocess
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ hash: 21
57
+ segments:
58
+ - 0
59
+ - 2
60
+ - 1
61
+ version: 0.2.1
62
+ type: :runtime
63
+ version_requirements: *id003
64
+ - !ruby/object:Gem::Dependency
65
+ name: ffi
66
+ prerelease: false
67
+ requirement: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 25
73
+ segments:
74
+ - 1
75
+ - 0
76
+ - 7
77
+ version: 1.0.7
78
+ type: :runtime
79
+ version_requirements: *id004
80
+ - !ruby/object:Gem::Dependency
81
+ name: rspec
82
+ prerelease: false
83
+ requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 2
91
+ - 0
92
+ version: "2.0"
93
+ type: :development
94
+ version_requirements: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ name: rack
97
+ prerelease: false
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ hash: 15
104
+ segments:
105
+ - 1
106
+ - 0
107
+ version: "1.0"
108
+ type: :development
109
+ version_requirements: *id006
110
+ - !ruby/object:Gem::Dependency
111
+ name: ci_reporter
112
+ prerelease: false
113
+ requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ~>
117
+ - !ruby/object:Gem::Version
118
+ hash: 11
119
+ segments:
120
+ - 1
121
+ - 6
122
+ - 2
123
+ version: 1.6.2
124
+ type: :development
125
+ version_requirements: *id007
126
+ - !ruby/object:Gem::Dependency
127
+ name: webmock
128
+ prerelease: false
129
+ requirement: &id008 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ~>
133
+ - !ruby/object:Gem::Version
134
+ hash: 1
135
+ segments:
136
+ - 1
137
+ - 7
138
+ - 5
139
+ version: 1.7.5
140
+ type: :development
141
+ version_requirements: *id008
93
142
  description: WebDriver is a tool for writing automated tests of websites. It aims to mimic the behaviour of a real user, and as such interacts with the HTML of the application.
94
143
  email: jari.bakken@gmail.com
95
144
  executables: []
@@ -99,97 +148,96 @@ extensions: []
99
148
  extra_rdoc_files: []
100
149
 
101
150
  files:
102
- - lib/selenium-client.rb
103
- - lib/selenium-webdriver.rb
104
- - lib/selenium/client.rb
105
- - lib/selenium/server.rb
106
- - lib/selenium/webdriver.rb
107
- - lib/selenium/client/base.rb
108
- - lib/selenium/client/driver.rb
109
- - lib/selenium/client/errors.rb
110
- - lib/selenium/client/extensions.rb
111
- - lib/selenium/client/idiomatic.rb
112
- - lib/selenium/client/javascript_expression_builder.rb
113
- - lib/selenium/client/legacy_driver.rb
114
- - lib/selenium/client/protocol.rb
115
- - lib/selenium/client/selenium_helper.rb
116
- - lib/selenium/client/javascript_frameworks/jquery.rb
117
- - lib/selenium/client/javascript_frameworks/prototype.rb
118
- - lib/selenium/rake/server_task.rb
119
- - lib/selenium/webdriver/android.rb
120
- - lib/selenium/webdriver/chrome.rb
121
- - lib/selenium/webdriver/common.rb
122
- - lib/selenium/webdriver/firefox.rb
123
- - lib/selenium/webdriver/ie.rb
124
- - lib/selenium/webdriver/iphone.rb
125
- - lib/selenium/webdriver/opera.rb
126
- - lib/selenium/webdriver/remote.rb
127
- - lib/selenium/webdriver/support.rb
128
- - lib/selenium/webdriver/android/bridge.rb
129
- - lib/selenium/webdriver/chrome/bridge.rb
130
- - lib/selenium/webdriver/chrome/profile.rb
131
- - lib/selenium/webdriver/chrome/service.rb
132
- - lib/selenium/webdriver/common/action_builder.rb
133
- - lib/selenium/webdriver/common/alert.rb
134
- - lib/selenium/webdriver/common/bridge_helper.rb
135
- - lib/selenium/webdriver/common/driver.rb
136
- - lib/selenium/webdriver/common/element.rb
137
- - lib/selenium/webdriver/common/error.rb
138
- - lib/selenium/webdriver/common/file_reaper.rb
139
- - lib/selenium/webdriver/common/keyboard.rb
140
- - lib/selenium/webdriver/common/keys.rb
141
- - lib/selenium/webdriver/common/mouse.rb
142
- - lib/selenium/webdriver/common/navigation.rb
143
- - lib/selenium/webdriver/common/options.rb
144
- - lib/selenium/webdriver/common/platform.rb
145
- - lib/selenium/webdriver/common/port_prober.rb
146
- - lib/selenium/webdriver/common/profile_helper.rb
147
- - lib/selenium/webdriver/common/proxy.rb
148
- - lib/selenium/webdriver/common/search_context.rb
149
- - lib/selenium/webdriver/common/socket_poller.rb
150
- - lib/selenium/webdriver/common/target_locator.rb
151
- - lib/selenium/webdriver/common/timeouts.rb
152
- - lib/selenium/webdriver/common/wait.rb
153
- - lib/selenium/webdriver/common/zipper.rb
154
- - lib/selenium/webdriver/common/core_ext/base64.rb
155
- - lib/selenium/webdriver/common/core_ext/dir.rb
156
- - lib/selenium/webdriver/common/core_ext/string.rb
157
- - lib/selenium/webdriver/common/driver_extensions/has_input_devices.rb
158
- - lib/selenium/webdriver/common/driver_extensions/rotatable.rb
159
- - lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
160
- - lib/selenium/webdriver/firefox/binary.rb
161
- - lib/selenium/webdriver/firefox/bridge.rb
162
- - lib/selenium/webdriver/firefox/extension.rb
163
- - lib/selenium/webdriver/firefox/launcher.rb
164
- - lib/selenium/webdriver/firefox/profile.rb
165
- - lib/selenium/webdriver/firefox/profiles_ini.rb
166
- - lib/selenium/webdriver/firefox/socket_lock.rb
167
- - lib/selenium/webdriver/firefox/util.rb
168
- - lib/selenium/webdriver/firefox/extension/webdriver.xpi
169
- - lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so
170
- - lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so
171
- - lib/selenium/webdriver/ie/bridge.rb
172
- - lib/selenium/webdriver/ie/server.rb
173
- - lib/selenium/webdriver/ie/native/win32/IEDriver.dll
174
- - lib/selenium/webdriver/ie/native/x64/IEDriver.dll
175
- - lib/selenium/webdriver/iphone/bridge.rb
176
- - lib/selenium/webdriver/opera/bridge.rb
177
- - lib/selenium/webdriver/opera/service.rb
178
- - lib/selenium/webdriver/remote/bridge.rb
179
- - lib/selenium/webdriver/remote/capabilities.rb
180
- - lib/selenium/webdriver/remote/commands.rb
181
- - lib/selenium/webdriver/remote/response.rb
182
- - lib/selenium/webdriver/remote/server_error.rb
183
- - lib/selenium/webdriver/remote/http/common.rb
184
- - lib/selenium/webdriver/remote/http/curb.rb
185
- - lib/selenium/webdriver/remote/http/default.rb
186
- - lib/selenium/webdriver/remote/http/persistent.rb
187
- - lib/selenium/webdriver/support/abstract_event_listener.rb
188
- - lib/selenium/webdriver/support/block_event_listener.rb
189
- - lib/selenium/webdriver/support/event_firing_bridge.rb
190
- - CHANGES
191
- - README
192
- has_rdoc: true
151
+ - lib/selenium/client/base.rb
152
+ - lib/selenium/client/driver.rb
153
+ - lib/selenium/client/errors.rb
154
+ - lib/selenium/client/extensions.rb
155
+ - lib/selenium/client/idiomatic.rb
156
+ - lib/selenium/client/javascript_expression_builder.rb
157
+ - lib/selenium/client/javascript_frameworks/jquery.rb
158
+ - lib/selenium/client/javascript_frameworks/prototype.rb
159
+ - lib/selenium/client/legacy_driver.rb
160
+ - lib/selenium/client/protocol.rb
161
+ - lib/selenium/client/selenium_helper.rb
162
+ - lib/selenium/client.rb
163
+ - lib/selenium/rake/server_task.rb
164
+ - lib/selenium/server.rb
165
+ - lib/selenium/webdriver/android/bridge.rb
166
+ - lib/selenium/webdriver/android.rb
167
+ - lib/selenium/webdriver/chrome/bridge.rb
168
+ - lib/selenium/webdriver/chrome/profile.rb
169
+ - lib/selenium/webdriver/chrome/service.rb
170
+ - lib/selenium/webdriver/chrome.rb
171
+ - lib/selenium/webdriver/common/action_builder.rb
172
+ - lib/selenium/webdriver/common/alert.rb
173
+ - lib/selenium/webdriver/common/bridge_helper.rb
174
+ - lib/selenium/webdriver/common/core_ext/base64.rb
175
+ - lib/selenium/webdriver/common/core_ext/dir.rb
176
+ - lib/selenium/webdriver/common/core_ext/string.rb
177
+ - lib/selenium/webdriver/common/driver.rb
178
+ - lib/selenium/webdriver/common/driver_extensions/has_input_devices.rb
179
+ - lib/selenium/webdriver/common/driver_extensions/rotatable.rb
180
+ - lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb
181
+ - lib/selenium/webdriver/common/element.rb
182
+ - lib/selenium/webdriver/common/error.rb
183
+ - lib/selenium/webdriver/common/file_reaper.rb
184
+ - lib/selenium/webdriver/common/keyboard.rb
185
+ - lib/selenium/webdriver/common/keys.rb
186
+ - lib/selenium/webdriver/common/mouse.rb
187
+ - lib/selenium/webdriver/common/navigation.rb
188
+ - lib/selenium/webdriver/common/options.rb
189
+ - lib/selenium/webdriver/common/platform.rb
190
+ - lib/selenium/webdriver/common/port_prober.rb
191
+ - lib/selenium/webdriver/common/profile_helper.rb
192
+ - lib/selenium/webdriver/common/proxy.rb
193
+ - lib/selenium/webdriver/common/search_context.rb
194
+ - lib/selenium/webdriver/common/socket_poller.rb
195
+ - lib/selenium/webdriver/common/target_locator.rb
196
+ - lib/selenium/webdriver/common/timeouts.rb
197
+ - lib/selenium/webdriver/common/wait.rb
198
+ - lib/selenium/webdriver/common/zipper.rb
199
+ - lib/selenium/webdriver/common.rb
200
+ - lib/selenium/webdriver/firefox/binary.rb
201
+ - lib/selenium/webdriver/firefox/bridge.rb
202
+ - lib/selenium/webdriver/firefox/extension/webdriver.xpi
203
+ - lib/selenium/webdriver/firefox/extension.rb
204
+ - lib/selenium/webdriver/firefox/launcher.rb
205
+ - lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so
206
+ - lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so
207
+ - lib/selenium/webdriver/firefox/profile.rb
208
+ - lib/selenium/webdriver/firefox/profiles_ini.rb
209
+ - lib/selenium/webdriver/firefox/socket_lock.rb
210
+ - lib/selenium/webdriver/firefox/util.rb
211
+ - lib/selenium/webdriver/firefox.rb
212
+ - lib/selenium/webdriver/ie/bridge.rb
213
+ - lib/selenium/webdriver/ie/native/win32/IEDriver.dll
214
+ - lib/selenium/webdriver/ie/native/x64/IEDriver.dll
215
+ - lib/selenium/webdriver/ie/server.rb
216
+ - lib/selenium/webdriver/ie.rb
217
+ - lib/selenium/webdriver/iphone/bridge.rb
218
+ - lib/selenium/webdriver/iphone.rb
219
+ - lib/selenium/webdriver/opera/bridge.rb
220
+ - lib/selenium/webdriver/opera/service.rb
221
+ - lib/selenium/webdriver/opera.rb
222
+ - lib/selenium/webdriver/remote/bridge.rb
223
+ - lib/selenium/webdriver/remote/capabilities.rb
224
+ - lib/selenium/webdriver/remote/commands.rb
225
+ - lib/selenium/webdriver/remote/http/common.rb
226
+ - lib/selenium/webdriver/remote/http/curb.rb
227
+ - lib/selenium/webdriver/remote/http/default.rb
228
+ - lib/selenium/webdriver/remote/http/persistent.rb
229
+ - lib/selenium/webdriver/remote/response.rb
230
+ - lib/selenium/webdriver/remote/server_error.rb
231
+ - lib/selenium/webdriver/remote.rb
232
+ - lib/selenium/webdriver/support/abstract_event_listener.rb
233
+ - lib/selenium/webdriver/support/block_event_listener.rb
234
+ - lib/selenium/webdriver/support/event_firing_bridge.rb
235
+ - lib/selenium/webdriver/support.rb
236
+ - lib/selenium/webdriver.rb
237
+ - lib/selenium-client.rb
238
+ - lib/selenium-webdriver.rb
239
+ - CHANGES
240
+ - README
193
241
  homepage: http://selenium.googlecode.com
194
242
  licenses: []
195
243
 
@@ -197,23 +245,29 @@ post_install_message:
197
245
  rdoc_options: []
198
246
 
199
247
  require_paths:
200
- - lib
248
+ - lib
201
249
  required_ruby_version: !ruby/object:Gem::Requirement
202
250
  none: false
203
251
  requirements:
204
- - - ">="
205
- - !ruby/object:Gem::Version
206
- version: "0"
252
+ - - ">="
253
+ - !ruby/object:Gem::Version
254
+ hash: 3
255
+ segments:
256
+ - 0
257
+ version: "0"
207
258
  required_rubygems_version: !ruby/object:Gem::Requirement
208
259
  none: false
209
260
  requirements:
210
- - - ">="
211
- - !ruby/object:Gem::Version
212
- version: "0"
261
+ - - ">="
262
+ - !ruby/object:Gem::Version
263
+ hash: 3
264
+ segments:
265
+ - 0
266
+ version: "0"
213
267
  requirements: []
214
268
 
215
269
  rubyforge_project:
216
- rubygems_version: 1.4.1
270
+ rubygems_version: 1.8.10
217
271
  signing_key:
218
272
  specification_version: 3
219
273
  summary: The next generation developer focused tool for automated testing of webapps