Class: SitePrism::Page

Inherits:
Object
  • Object
show all
Extended by:
ElementContainer
Includes:
Capybara::DSL, ElementChecker
Defined in:
lib/site_prism/page.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ElementContainer

add_to_mapped_items, element, elements, iframe, mapped_items, section, sections

Methods included from ElementChecker

#all_there?

Class Method Details

.set_url(page_url) ⇒ Object



18
19
20
# File 'lib/site_prism/page.rb', line 18

def self.set_url page_url
  @url = page_url
end

.set_url_matcher(page_url_matcher) ⇒ Object



22
23
24
# File 'lib/site_prism/page.rb', line 22

def self.set_url_matcher page_url_matcher
  @url_matcher = page_url_matcher
end

.urlObject



26
27
28
# File 'lib/site_prism/page.rb', line 26

def self.url
  @url
end

.url_matcherObject



30
31
32
# File 'lib/site_prism/page.rb', line 30

def self.url_matcher
  @url_matcher
end

Instance Method Details

#displayed?Boolean

Returns:

  • (Boolean)

Raises:



13
14
15
16
# File 'lib/site_prism/page.rb', line 13

def displayed?
  raise SitePrism::NoUrlMatcherForPage if url_matcher.nil?
  !(page.current_url =~ url_matcher).nil?
end

#load(expansion = {}) ⇒ Object



7
8
9
10
11
# File 'lib/site_prism/page.rb', line 7

def load(expansion = {})
  expanded_url = url(expansion)
  raise SitePrism::NoUrlForPage if expanded_url.nil?
  visit expanded_url
end

#secure?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/site_prism/page.rb', line 43

def secure?
  !current_url.match(/^https/).nil?
end

#titleObject



47
48
49
50
# File 'lib/site_prism/page.rb', line 47

def title
  title_selector = 'html > head > title'
  using_wait_time(0) { page.find(title_selector).text if page.has_selector?(title_selector) }
end

#url(expansion = {}) ⇒ Object



34
35
36
37
# File 'lib/site_prism/page.rb', line 34

def url(expansion = {})
  return nil if self.class.url.nil?
  Addressable::Template.new(self.class.url).expand(expansion).to_s
end

#url_matcherObject



39
40
41
# File 'lib/site_prism/page.rb', line 39

def url_matcher
  self.class.url_matcher
end