Module: WatirWebdriverRails
- Defined in:
- lib/watir-webdriver-rails.rb,
lib/watir-webdriver-rails/rails.rb,
lib/watir-webdriver-rails/rspec.rb,
lib/watir-webdriver-rails/driver.rb,
lib/watir-webdriver-rails/browser.rb,
lib/watir-webdriver-rails/version.rb,
lib/watir-webdriver-rails/util/timeout.rb
Defined Under Namespace
Modules: RSpec Classes: Identify, TimeoutError, WatirWebdriverRailsError
Constant Summary collapse
- VERSION =
"0.0.8"
Class Attribute Summary collapse
-
.app ⇒ Object
Returns the value of attribute app.
-
.browser ⇒ Object
Returns the value of attribute browser.
-
.browser_initialized ⇒ Object
Returns the value of attribute browser_initialized.
-
.close_browser_after_finish ⇒ Object
Returns the value of attribute close_browser_after_finish.
-
.host ⇒ Object
Returns the value of attribute host.
-
.port ⇒ Object
Returns the value of attribute port.
-
.server_boot_timeout ⇒ Object
Returns the value of attribute server_boot_timeout.
-
.server_running ⇒ Object
Returns the value of attribute server_running.
Class Method Summary collapse
- .close_browser ⇒ Object
- .driver ⇒ Object
- .initialize_browser ⇒ Object
- .responsive? ⇒ Boolean
- .run_server ⇒ Object
-
.timeout(seconds = 1, driver = nil, error_message = nil, &block) ⇒ Object
Copied from Capybara.
Class Attribute Details
.app ⇒ Object
Returns the value of attribute app.
22 23 24 |
# File 'lib/watir-webdriver-rails/rails.rb', line 22 def app @app end |
.browser ⇒ Object
Returns the value of attribute browser.
3 4 5 |
# File 'lib/watir-webdriver-rails/browser.rb', line 3 def browser @browser end |
.browser_initialized ⇒ Object
Returns the value of attribute browser_initialized.
3 4 5 |
# File 'lib/watir-webdriver-rails/browser.rb', line 3 def browser_initialized @browser_initialized end |
.close_browser_after_finish ⇒ Object
Returns the value of attribute close_browser_after_finish.
22 23 24 |
# File 'lib/watir-webdriver-rails/rails.rb', line 22 def close_browser_after_finish @close_browser_after_finish end |
.host ⇒ Object
Returns the value of attribute host.
22 23 24 |
# File 'lib/watir-webdriver-rails/rails.rb', line 22 def host @host end |
.port ⇒ Object
Returns the value of attribute port.
22 23 24 |
# File 'lib/watir-webdriver-rails/rails.rb', line 22 def port @port end |
.server_boot_timeout ⇒ Object
Returns the value of attribute server_boot_timeout.
22 23 24 |
# File 'lib/watir-webdriver-rails/rails.rb', line 22 def server_boot_timeout @server_boot_timeout end |
.server_running ⇒ Object
Returns the value of attribute server_running.
22 23 24 |
# File 'lib/watir-webdriver-rails/rails.rb', line 22 def server_running @server_running end |
Class Method Details
.close_browser ⇒ Object
27 28 29 30 |
# File 'lib/watir-webdriver-rails/browser.rb', line 27 def close_browser @browser.close if @browser_initialized == true @browser_initialized = false end |
.driver ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/watir-webdriver-rails/driver.rb', line 37 def driver profile = Selenium::WebDriver::Firefox::Profile.new profile.enable_firebug driver = Selenium::WebDriver.for(:firefox, { :profile => profile }) return driver end |
.initialize_browser ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/watir-webdriver-rails/browser.rb', line 5 def initialize_browser return if @browser_initialized == true @browser = Watir::Browser.new(WatirWebdriverRails.driver) @browser.class_eval do alias_method :old_goto,:goto def goto(*args) if !args[0].match(/^https?:/) args[0] = "http://#{WatirWebdriverRails.host}:#{WatirWebdriverRails.port}#{args[0]}" end old_goto(*args) end end @browser_initialized = true end |
.responsive? ⇒ Boolean
64 65 66 67 68 69 70 71 72 |
# File 'lib/watir-webdriver-rails/rails.rb', line 64 def responsive? res = Net::HTTP.start("127.0.0.1", @port) { |http| http.get('/__identify__') } if res.is_a?(Net::HTTPSuccess) or res.is_a?(Net::HTTPRedirection) return res.body == @app.object_id.to_s end rescue Errno::ECONNREFUSED, Errno::EBADF return false end |
.run_server ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/watir-webdriver-rails/rails.rb', line 26 def run_server return if @server_running == true @app = Rack::Builder.new { map "/" do if Rails.version.to_f >= 3.0 run Rails.application else # Rails 2 use Rails::Rack::Static run ActionController::Dispatcher.new end end }.to_app Thread.new do begin require 'rack/handler/thin' Thin::Logging.silent = true Rack::Handler::Thin.run(Identify.new(app), :Port => @port) rescue LoadError require 'rack/handler/webrick' Rack::Handler::WEBrick.run(Identify.new(app), :Port => @port, :AccessLog => [], :Logger => WEBrick::Log::new(nil, 0)) end end timeout(@server_boot_timeout) do if responsive? true else sleep(0.5) false end end @server_running = true end |
.timeout(seconds = 1, driver = nil, error_message = nil, &block) ⇒ Object
Copied from Capybara
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/watir-webdriver-rails/util/timeout.rb', line 5 def timeout(seconds = 1, driver = nil, = nil, &block) start_time = Time.now result = nil until result return result if result = yield delay = seconds - (Time.now - start_time) if delay <= 0 raise TimeoutError, || "timed out" end driver && driver.wait_until(delay) sleep(0.05) end end |