Module: Testable::Pages
- Includes:
- Situation
- Defined in:
- lib/testable/page.rb,
lib/testable/region.rb,
lib/testable/element.rb,
lib/testable/attribute.rb
Defined Under Namespace
Modules: Attribute, Element, Region
Instance Method Summary collapse
-
#clear_cookies ⇒ Object
(also: #remove_cookies)
A call to
clear_cookiesremoves all the cookies from the current instance of the browser that is being controlled by WebDriver. -
#definition_api ⇒ Object
This provides a list of the methods that are defined on the page definition.
-
#get_cookie(name) ⇒ Object
A call to
get_cookieallows you to specify a particular cookie, by name, and return the information specified in the cookie. -
#has_correct_title? ⇒ Boolean
A call to
has_correct_title?returns true or false if the actual title of the current page in the browser matches thetitle_isattribute. -
#has_correct_url? ⇒ Boolean
(also: #displayed?, #loaded?)
A call to ‘has_correct_url?`returns true or false if the actual URL found in the browser matches the
url_matchesassertion. -
#markup ⇒ Object
(also: #html)
A call to
markupreturns all markup on a page. -
#maximize ⇒ Object
This method provides a means to maximize the browser window.
-
#move_to(x_coord, y_coord) ⇒ Object
This method provides a call to the browser window to move the window to the specified x and y screen coordinates.
-
#refresh ⇒ Object
(also: #refresh_page)
This method sends a standard “browser refresh” message to the browser.
-
#resize(width, height) ⇒ Object
(also: #resize_to)
This method provides a call to the browser window to resize that window to the specified width and height values.
-
#run_script(script, *args) ⇒ Object
(also: #execute_script)
This method provides a call to the synchronous
execute_scriptaction on the browser, passing in JavaScript that you want to have executed against the current page. -
#screen_height ⇒ Object
A call to
screen_heightreturns the height of the browser screen as reported by the browser API, using a JavaScript call to thescreenobject. -
#screen_width ⇒ Object
A call to
screen_widthreturns the width of the browser screen as reported by the browser API, using a JavaScript call to thescreenobject. -
#screenshot(file) ⇒ Object
(also: #save_screenshot)
A call to
screenshotsaves a screenshot of the current browser page. -
#secure? ⇒ Boolean
A call to
secure?returns true if the page is secure and false otherwise. -
#text ⇒ Object
(also: #page_text)
A call to
textreturns all text on a page. -
#title ⇒ Object
(also: #page_title)
A call to
titlereturns the actual title of the page that is displayed in the browser. -
#title_attribute ⇒ Object
A call to
title_attributereturns what the value of thetitle_isattribute is for the given definition. -
#url ⇒ Object
(also: #page_url, #current_url)
A call to
urlreturns the actual URL of the page that is displayed in the browser. -
#url_attribute ⇒ Object
A call to
url_attributereturns what the value of theurl_isattribute is for the given interface. -
#url_match_attribute ⇒ Object
A call to
url_match_attributereturns what the value of theurl_matchesattribute is for the given interface. -
#visit(url = nil, &block) ⇒ Object
(also: #view, #navigate_to, #goto, #perform)
The
visitmethod provides navigation to a specific page by passing in the URL.
Instance Method Details
#clear_cookies ⇒ Object Also known as:
A call to clear_cookies removes all the cookies from the current instance of the browser that is being controlled by WebDriver.
199 200 201 |
# File 'lib/testable/page.rb', line 199 def browser..clear end |
#definition_api ⇒ Object
This provides a list of the methods that are defined on the page definition. This is helpful is you need to query the page to see if an element has been provided since all elements automatically become methods on a definition instance.
11 12 13 |
# File 'lib/testable/page.rb', line 11 def definition_api public_methods(false) - Object.public_methods end |
#get_cookie(name) ⇒ Object
A call to get_cookie allows you to specify a particular cookie, by name, and return the information specified in the cookie.
190 191 192 193 194 195 |
# File 'lib/testable/page.rb', line 190 def (name) browser..to_a.each do || return [:value] if [:name] == name end nil end |
#has_correct_title? ⇒ Boolean
A call to has_correct_title? returns true or false if the actual title of the current page in the browser matches the title_is attribute. Notice that this check is done as part of a match rather than a direct check. This allows for regular expressions to be used.
92 93 94 95 |
# File 'lib/testable/page.rb', line 92 def has_correct_title? no_title_is_provided if title_attribute.nil? !title.match(title_attribute).nil? end |
#has_correct_url? ⇒ Boolean Also known as: displayed?, loaded?
A call to ‘has_correct_url?`returns true or false if the actual URL found in the browser matches the url_matches assertion. This is important to note. It’s not using the url_is attribute nor the URL displayed in the browser. It’s using the url_matches attribute.
64 65 66 67 |
# File 'lib/testable/page.rb', line 64 def has_correct_url? no_url_match_is_possible if url_attribute.nil? && url_match_attribute.nil? !(url =~ url_match_attribute).nil? end |
#markup ⇒ Object Also known as: html
A call to markup returns all markup on a page. Generally you don’t just want the entire markup but rather want to parse the output of the markup call.
107 108 109 |
# File 'lib/testable/page.rb', line 107 def markup browser.html end |
#maximize ⇒ Object
This method provides a means to maximize the browser window. This is done by getting the screen width and height via JavaScript calls.
163 164 165 |
# File 'lib/testable/page.rb', line 163 def maximize browser.window.resize_to(screen_width, screen_height) end |
#move_to(x_coord, y_coord) ⇒ Object
This method provides a call to the browser window to move the window to the specified x and y screen coordinates.
175 176 177 |
# File 'lib/testable/page.rb', line 175 def move_to(x_coord, y_coord) browser.window.move_to(x_coord, y_coord) end |
#refresh ⇒ Object Also known as: refresh_page
This method sends a standard “browser refresh” message to the browser.
182 183 184 |
# File 'lib/testable/page.rb', line 182 def refresh browser.refresh end |
#resize(width, height) ⇒ Object Also known as: resize_to
This method provides a call to the browser window to resize that window to the specified width and height values.
169 170 171 |
# File 'lib/testable/page.rb', line 169 def resize(width, height) browser.window.resize_to(width, height) end |
#run_script(script, *args) ⇒ Object Also known as: execute_script
This method provides a call to the synchronous execute_script action on the browser, passing in JavaScript that you want to have executed against the current page. For example:
result = page.run_script("alert('Cogent ran a script.')")
You can also run full JavaScript snippets.
script = " return arguments[0].innerHTML\n"
page.run_script(script, page.account)
Here you pass two arguments to run_script. One is the script itself and the other are some arguments that you want to pass as part of of the execution. In this case, an element definition (account) is being passed in.
141 142 143 |
# File 'lib/testable/page.rb', line 141 def run_script(script, *args) browser.execute_script(script, *args) end |
#screen_height ⇒ Object
A call to screen_height returns the height of the browser screen as reported by the browser API, using a JavaScript call to the screen object.
157 158 159 |
# File 'lib/testable/page.rb', line 157 def screen_height run_script("return screen.height;") end |
#screen_width ⇒ Object
A call to screen_width returns the width of the browser screen as reported by the browser API, using a JavaScript call to the screen object.
150 151 152 |
# File 'lib/testable/page.rb', line 150 def screen_width run_script("return screen.width;") end |
#screenshot(file) ⇒ Object Also known as: save_screenshot
A call to screenshot saves a screenshot of the current browser page. Note that this will grab the entire browser page, even portions of it that are off panel and need to be scrolled to. You can pass in the path and filename of the image that you want the screenshot saved to.
210 211 212 |
# File 'lib/testable/page.rb', line 210 def screenshot(file) browser.screenshot.save(file) end |
#secure? ⇒ Boolean
A call to secure? returns true if the page is secure and false otherwise. This is a simple check that looks for whether or not the current URL begins with ‘https’.
100 101 102 |
# File 'lib/testable/page.rb', line 100 def secure? !url.match(/^https/).nil? end |
#text ⇒ Object Also known as: page_text
A call to text returns all text on a page. Note that this is text that is taken out of the markup context. It is unlikely you will just want the entire text but rather want to parse the output of the text call.
117 118 119 |
# File 'lib/testable/page.rb', line 117 def text browser.text end |
#title ⇒ Object Also known as: page_title
A call to title returns the actual title of the page that is displayed in the browser.
82 83 84 |
# File 'lib/testable/page.rb', line 82 def title @browser.title end |
#title_attribute ⇒ Object
A call to title_attribute returns what the value of the title_is attribute is for the given definition. It’s important to note that this is not grabbing the title that is displayed in the browser; rather it’s the one declared in the interface definition, if any.
76 77 78 |
# File 'lib/testable/page.rb', line 76 def title_attribute self.class.title_attribute end |
#url ⇒ Object Also known as: page_url, current_url
A call to url returns the actual URL of the page that is displayed in the browser.
41 42 43 |
# File 'lib/testable/page.rb', line 41 def url @browser.url end |
#url_attribute ⇒ Object
A call to url_attribute returns what the value of the url_is attribute is for the given interface. It’s important to note that this is not grabbing the URL that is displayed in the browser; rather it’s the one declared in the interface definition, if any.
35 36 37 |
# File 'lib/testable/page.rb', line 35 def url_attribute self.class.url_attribute end |
#url_match_attribute ⇒ Object
A call to url_match_attribute returns what the value of the url_matches attribute is for the given interface. It’s important to note that the URL matching mechanism is effectively a regular expression check.
52 53 54 55 56 57 58 |
# File 'lib/testable/page.rb', line 52 def url_match_attribute value = self.class.url_match_attribute return if value.nil? value = Regexp.new(value) unless value.is_a?(Regexp) value end |
#visit(url = nil, &block) ⇒ Object Also known as: view, , goto, perform
The visit method provides navigation to a specific page by passing in the URL. If no URL is passed in, this method will attempt to use the url_is attribute from the interface it is being called on.
18 19 20 21 22 23 24 |
# File 'lib/testable/page.rb', line 18 def visit(url = nil, &block) no_url_provided if url.nil? && url_attribute.nil? @browser.goto(url) unless url.nil? @browser.goto(url_attribute) if url.nil? when_ready(&block) if block_given? self end |