Methods
public instance
- automate
- check
- choose
- click_button
- click_link
- click_link_within
- current_url
- fill_in
- fire_event
- key_down
- key_up
- response
- save_and_open_screengrab
- select
- selenium
- simulate
- uncheck
- visit
- wait_for
protected instance
Included modules
Public instance methods
automate
() {|| ...}
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 34 def automate yield end
check
(label_text)
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 119 def check(label_text) locator = "webrat=#{label_text}" selenium.wait_for_element locator, :timeout_in_seconds => 5 selenium.click locator end
choose
(label_text)
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 111 def choose(label_text) locator = "webrat=#{label_text}" selenium.wait_for_element locator, :timeout_in_seconds => 5 selenium.click locator end
click_button
(button_text_or_regexp = nil, options = {})
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 64 def click_button(button_text_or_regexp = nil, options = {}) if button_text_or_regexp.is_a?(Hash) && options == {} pattern, options = nil, button_text_or_regexp elsif button_text_or_regexp pattern = adjust_if_regexp(button_text_or_regexp) end pattern ||= '*' locator = "button=#{pattern}" selenium.wait_for_element locator, :timeout_in_seconds => 5 selenium.click locator end
click_link
(link_text_or_regexp, options = {})
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 79 def click_link(link_text_or_regexp, options = {}) pattern = adjust_if_regexp(link_text_or_regexp) locator = "webratlink=#{pattern}" selenium.wait_for_element locator, :timeout_in_seconds => 5 selenium.click locator end
click_link_within
(selector, link_text, options = {})
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 88 def click_link_within(selector, link_text, options = {}) locator = "webratlinkwithin=#{selector}|#{link_text}" selenium.wait_for_element locator, :timeout_in_seconds => 5 selenium.click locator end
current_url
()
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 60 def current_url selenium.location end
fill_in
(field_identifier, options)
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 44 def fill_in(field_identifier, options) locator = "webrat=#{field_identifier}" selenium.wait_for_element locator, :timeout_in_seconds => 5 selenium.type(locator, "#{options[:with]}") end
fire_event
(field_identifier, event)
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 128 def fire_event(field_identifier, event) locator = "webrat=#{Regexp.escape(field_identifier)}" selenium.fire_event(locator, "#{event}") end
key_down
(field_identifier, key_code)
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 133 def key_down(field_identifier, key_code) locator = "webrat=#{Regexp.escape(field_identifier)}" selenium.key_down(locator, key_code) end
key_up
(field_identifier, key_code)
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 138 def key_up(field_identifier, key_code) locator = "webrat=#{Regexp.escape(field_identifier)}" selenium.key_up(locator, key_code) end
response
()
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 52 def response SeleniumResponse.new(self, response_body) end
save_and_open_screengrab
()
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 178 def save_and_open_screengrab return unless File.exist?(saved_page_dir) filename = "#{saved_page_dir}/webrat-#{Time.now.to_i}.png" if $browser.chrome_backend? $browser.capture_entire_page_screenshot(filename, '') else $browser.capture_screenshot(filename) end open_in_browser(filename) end
select
(option_text, options = {})
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 96 def select(option_text, options = {}) id_or_name_or_label = options[:from] if id_or_name_or_label select_locator = "webrat=#{id_or_name_or_label}" else select_locator = "webratselectwithoption=#{option_text}" end selenium.wait_for_element select_locator, :timeout_in_seconds => 5 selenium.select(select_locator, option_text) end
selenium
()
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 169 def selenium return $browser if $browser setup $browser end
visit
(url)
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 38 def visit(url) selenium.open(url) end
wait_for
(params={}) {|| ...}
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 143 def wait_for(params={}) timeout = params[:timeout] || 5 message = params[:message] || "Timeout exceeded" begin_time = Time.now while (Time.now - begin_time) < timeout value = nil begin value = yield rescue Exception => e unless is_ignorable_wait_for_exception?(e) raise e end end return value if value sleep 0.25 end raise Webrat::TimeoutError.new(message + " (after #{timeout} sec)") true end
Protected instance methods
create_browser
()
[show source]
# File lib/webrat/selenium/selenium_session.rb, line 214 def create_browser $browser = ::Selenium::Client::Driver.new(Webrat.configuration.selenium_server_address || "localhost", Webrat.configuration.selenium_server_port, Webrat.configuration.selenium_browser_key, "http://#{Webrat.configuration.application_address}:#{Webrat.configuration.application_port}") $browser.set_speed(0) unless Webrat.configuration.selenium_server_address at_exit do silence_stream(STDOUT) do $browser.stop end end end