selenium-webdriver 2.5.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
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