Class: RWebSpec::WebDriver::AbstractWebPage

Inherits:
Object
  • Object
show all
Includes:
Assert, Driver, Utils
Defined in:
lib/rwebspec-webdriver/web_page.rb

Overview

WebPage (children of AbstractWebPage) encapsulates a real web page. For example,

beginAt("/home")
@web_browser.clickLinkWithText("/login")
@web_browser.setFormElement("username", "sa")

Can be rewritten to

begin_at("/home")
home_page = HomePage.new
 = home_page.clickLoginLink
.enterUserName("sa")

So you only need change in LoingPage class if UI changes, which happen quite often.

Constant Summary

Constants included from Utils

Utils::WORDS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Utils

#allow, #days_before, #days_from_now, #failsafe, #interpret_value, #on, #paragraphs, #random_boolean, #random_char, #random_digit, #random_number, #random_str, #random_string_in, #repeat_try, #sentences, #shall_not_allow, #symbol_to_sequence, #take_screenshot, #today, #tomorrow, #try, #try_for, #value_in_range, #words, #yesterday

Methods included from Driver

#absolutify_url, #absolutize_page, #absolutize_page_hpricot, #ajax_wait_for_element, #attach_browser, #basic_authentication, #basic_authentication_celerity, #basic_authentication_firefox, #basic_authentication_ie, #begin_at, #cell_with_id, #check_ie_version, #choose_file_dialog, #clear_popup, #click_button_with_image_src_contains, #close_all_browsers, #close_browser, #contains, #contains_text, #context, #default_dump_dir, #dump_response, #element_by_id, #element_text, #ends_with?, #enter_text_with_id, #expect_page, #find_element, #find_elements, #firefox, #goto_page, #goto_url, #ie, #is_firefox?, #is_htmlunit?, #is_ie?, #is_linux?, #is_mac?, #is_windows?, #label_with_id, #new_popup_window, #open_browser, #page_source, #page_text, #page_title, #perform_operation, #quit, #save_current_page, #select_file_for_upload, #span_with_id, #substitute_relative_path_in_src_line, #support_utf8, #use_current_browser, #wait_for_element, #wait_until

Methods included from Popup

#check_for_popups, #check_for_security_alerts, #click_button_in_javascript_popup, #click_button_in_popup_after, #click_button_in_security_alert_popup, #click_button_in_security_information_popup, #click_popup_window, #ie_popup_clicker, #prepare_to_click_button_in_popup, #start_checking_js_dialog, #verify_alert

Methods included from TestWisePlugin

#check_for_pause, #connect_to_testwise, #debug, #dump_caller_stack, #notify_screenshot_location, #operation_delay

Methods included from Assert

#assert_button_not_present, #assert_button_not_present_with_text, #assert_button_present, #assert_button_present_with_text, #assert_checkbox_not_selected, #assert_checkbox_selected, #assert_disabled, #assert_enabled, #assert_equals, #assert_exists, #assert_hidden, #assert_link_not_present_with_text, #assert_link_present_with_text, #assert_nil, #assert_not, #assert_not_exists, #assert_not_nil, #assert_option_equals, #assert_option_not_present, #assert_option_present, #assert_option_value_equals, #assert_option_value_not_present, #assert_option_value_present, #assert_radio_option_not_present, #assert_radio_option_not_selected, #assert_radio_option_present, #assert_radio_option_selected, #assert_text_field_value, #assert_text_in_element, #assert_text_in_page_source, #assert_text_not_in_page_source, #assert_text_not_present, #assert_text_not_present_in_table, #assert_text_present, #assert_text_present_in_table, #assert_title_equals, #assert_visible, #fail

Constructor Details

#initialize(the_browser, page_specific_text = nil) ⇒ AbstractWebPage

Returns a new instance of AbstractWebPage.



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/rwebspec-webdriver/web_page.rb', line 34

def initialize(the_browser, page_specific_text = nil)
  @web_browser = @browser = @web_tester = the_browser
				
  @page_specific_text = page_specific_text
  begin
    snapshot if $TESTWISE_DUMP_PAGE
    delay = $TESTWISE_PAGE_DELAY
    sleep(delay)
  rescue => e
  end
  assert_on_page
end

Instance Attribute Details

#page_specific_textObject

browser: passed to do assertion within the page page_text: text used to identify the page, title will be the first candidate



32
33
34
# File 'lib/rwebspec-webdriver/web_page.rb', line 32

def page_specific_text
  @page_specific_text
end

Instance Method Details

#assert_not_on_pageObject



61
62
63
# File 'lib/rwebspec-webdriver/web_page.rb', line 61

def assert_not_on_page()
  assert_text_not_present(@page_specific_text) if @page_specific_text
end

#assert_on_pageObject

Assert is on current page Example

home_page = HomePage.new("Welcome to iTest2")
....
home_page.assert_on_page # will check the text 'Welcome to iTest2' still present on the page


57
58
59
# File 'lib/rwebspec-webdriver/web_page.rb', line 57

def assert_on_page()
  assert_text_present(@page_specific_text) if @page_specific_text
end

#browserObject

return the browser instance in page objects



48
49
50
# File 'lib/rwebspec-webdriver/web_page.rb', line 48

def browser
  @web_browser
end

#contains?(ary) ⇒ Boolean

TO validate

Returns:

  • (Boolean)


90
91
92
93
94
95
96
97
98
# File 'lib/rwebspec-webdriver/web_page.rb', line 90

def contains?(ary)
  return true if ary.nil?
  the_page_source = source
  found = false
  ary.each_line do |str|
    found ||= the_page_source.include?(str)
  end
  return found
end

#dump(stream = nil) ⇒ Object



65
66
67
# File 'lib/rwebspec-webdriver/web_page.rb', line 65

def dump(stream = nil)
  @web_browser.dump_response(stream)
end

#snapshot(replace_css = false) ⇒ Object

Will save current page source to a file

home_page = HomePage.new("Welcome to iTest2")
...
home_page.snapshot() # => save to 20090830100102_HomePage.html


104
105
106
# File 'lib/rwebspec-webdriver/web_page.rb', line 104

def	snapshot(replace_css = false)
  save_current_page(:filename => Time.now.strftime("%m%d%H%M%S") + "_" + self.class.name.gsub(" ", "") + ".html" )
end

#sourceObject Also known as: html

Page source (html)



70
71
72
# File 'lib/rwebspec-webdriver/web_page.rb', line 70

def source
  @web_browser.page_source
end

#textObject

return current page text



81
82
83
# File 'lib/rwebspec-webdriver/web_page.rb', line 81

def text
  @web_browser.text
end

#titleObject

return current page title



76
77
78
# File 'lib/rwebspec-webdriver/web_page.rb', line 76

def title
  @web_browser.page_title
end

#urlObject



85
86
87
# File 'lib/rwebspec-webdriver/web_page.rb', line 85

def url
  @web_browser.url
end