public
Description: Webrat - Ruby Acceptance Testing for Web applications
Homepage: http://gitrdoc.com/brynary/webrat/tree/master/
Clone URL: git://github.com/brynary/webrat.git
webrat / lib / webrat / selenium.rb
100644 71 lines (67 sloc) 2.41 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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
62
63
64
65
66
67
68
69
70
71
require "webrat"
require "selenium/client"
require "webrat/selenium/silence_stream"
require "webrat/selenium/selenium_session"
require "webrat/selenium/matchers"
require "webrat/core_extensions/tcp_socket"
 
module Webrat
  # To use Webrat's Selenium support, you'll need the selenium-client gem installed.
  # Activate it with (for example, in your <tt>env.rb</tt>):
  #
  # require "webrat"
  #
  # Webrat.configure do |config|
  # config.mode = :selenium
  # end
  #
  # == Dropping down to the selenium-client API
  #
  # If you ever need to do something with Selenium not provided in the Webrat API,
  # you can always drop down to the selenium-client API using the <tt>selenium</tt> method.
  # For example:
  #
  # When "I drag the photo to the left" do
  # selenium.dragdrop("id=photo_123", "+350, 0")
  # end
  #
  # == Choosing the underlying framework to test
  #
  # Webrat assumes you're using rails by default but it can also work with sinatra
  # and merb. To take advantage of this you can use the configuration block to
  # set the application_framework variable.
  # require "webrat"
  #
  # Webrat.configure do |config|
  # config.mode = :selenium
  # config.application_port = 4567
  # config.application_framework = :sinatra # could also be :merb
  # end
  #
  # == Auto-starting of the appserver and java server
  #
  # Webrat will automatically start the Selenium Java server process and an instance
  # of Mongrel when a test is run. The Mongrel will run in the "selenium" environment
  # instead of "test", so ensure you've got that defined, and will run on port
  # Webrat.configuration.application_port.
  #
  # == Waiting
  #
  # In order to make writing Selenium tests as easy as possible, Webrat will automatically
  # wait for the correct elements to exist on the page when trying to manipulate them
  # with methods like <tt>fill_in</tt>, etc. In general, this means you should be able to write
  # your Webrat::Selenium tests ignoring the concurrency issues that can plague in-browser
  # testing, so long as you're using the Webrat API.
  module Selenium
    module Methods
      def response
        webrat_session.response
      end
 
      def wait_for(*args, &block)
        webrat_session.wait_for(*args, &block)
      end
 
      def save_and_open_screengrab
        webrat_session.save_and_open_screengrab
      end
    end
  end
end