Class: RWebSpec::AbstractWebPage
- Inherits:
-
Object
- Object
- RWebSpec::AbstractWebPage
- Includes:
- Assert, Driver, Utils
- Defined in:
- lib/rwebspec-mechanize/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
login_page = home_page.clickLoginLink
login_page.enterUserName("sa")
So you only need change in LoingPage class if UI changes, which happen quite often.
Instance Attribute Summary collapse
-
#page_specific_text ⇒ Object
browser: passed to do assertion within the page page_text: text used to identify the page, title will be the first candidate.
Instance Method Summary collapse
- #assert_not_on_page ⇒ Object
-
#assert_on_page ⇒ Object
Assert is on current page Example home_page = HomePage.new(“Welcome to iTest2”) .…
-
#browser ⇒ Object
return the browser instance in page objects.
-
#contains?(ary) ⇒ Boolean
TO validate.
- #dump(stream = nil) ⇒ Object
-
#initialize(the_browser, page_specific_text = nil) ⇒ AbstractWebPage
constructor
A new instance of AbstractWebPage.
-
#snapshot(replace_css = false) ⇒ Object
Will save current page source to a file home_page = HomePage.new(“Welcome to iTest2”) …
-
#source ⇒ Object
(also: #html)
Page source (html).
-
#text ⇒ Object
return current page text.
-
#title ⇒ Object
return current page title.
- #url ⇒ Object
Constructor Details
#initialize(the_browser, page_specific_text = nil) ⇒ AbstractWebPage
Returns a new instance of AbstractWebPage.
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 33 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 || $LOADWISE_DUMP_PAGE delay = $TESTWISE_PAGE_DELAY || $LOADWISE_PAGE_DELAY sleep(delay) rescue => e end assert_on_page end |
Instance Attribute Details
#page_specific_text ⇒ Object
browser: passed to do assertion within the page page_text: text used to identify the page, title will be the first candidate
31 32 33 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 31 def page_specific_text @page_specific_text end |
Instance Method Details
#assert_not_on_page ⇒ Object
59 60 61 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 59 def assert_not_on_page() assert_text_not_present(@page_specific_text) if @page_specific_text end |
#assert_on_page ⇒ Object
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
55 56 57 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 55 def assert_on_page() assert_text_present(@page_specific_text) if @page_specific_text end |
#browser ⇒ Object
return the browser instance in page objects
46 47 48 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 46 def browser @web_browser end |
#contains?(ary) ⇒ Boolean
TO validate
88 89 90 91 92 93 94 95 96 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 88 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
63 64 65 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 63 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
102 103 104 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 102 def snapshot(replace_css = false) save_current_page(:filename => Time.now.strftime("%m%d%H%M%S") + "_" + self.class.name.gsub(" ", "") + ".html" ) end |
#source ⇒ Object Also known as: html
Page source (html)
68 69 70 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 68 def source @web_browser.page_source end |
#text ⇒ Object
return current page text
79 80 81 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 79 def text @web_browser.text end |
#title ⇒ Object
return current page title
74 75 76 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 74 def title @web_browser.page_title end |
#url ⇒ Object
83 84 85 |
# File 'lib/rwebspec-mechanize/web_page.rb', line 83 def url @web_browser.url end |