Class: Metallize::Page

Inherits:
Object
  • Object
show all
Extended by:
ElementMatcher
Defined in:
lib/metallize/page.rb

Defined Under Namespace

Classes: Link

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ElementMatcher

elements_with

Constructor Details

#initialize(driver) ⇒ Page

Returns a new instance of Page.



9
10
11
# File 'lib/metallize/page.rb', line 9

def initialize(driver)
  @driver = driver
end

Instance Attribute Details

#driverObject (readonly)

Returns the value of attribute driver.



7
8
9
# File 'lib/metallize/page.rb', line 7

def driver
  @driver
end

Instance Method Details

#formsObject



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

def forms
  forms = driver.find_elements(:tag_name, 'form')
  forms.map {|form| Metallize::Form.new(driver, form)}
end


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

def links
  links = driver.find_elements(:tag_name, 'a')
  links.map {|link| Link.new(driver, link)}
end

#pretty_print(q) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/metallize/page.rb', line 31

def pretty_print(q)
  q.object_group(self) {
    q.breakable
    q.group(1, '{url', '}') {q.breakable; q.pp uri }
    q.breakable
    # q.group(1, '{meta_refresh', '}') {
    #   meta_refresh.each { |link| q.breakable; q.pp link }
    # }
    # q.breakable
    q.group(1, '{title', '}') { q.breakable; q.pp title }
    q.breakable
    # q.group(1, '{iframes', '}') {
    #   iframes.each { |link| q.breakable; q.pp link }
    # }
    # q.breakable
    # q.group(1, '{frames', '}') {
    #   frames.each { |link| q.breakable; q.pp link }
    # }
    # q.breakable
    q.group(1, '{links', '}') {
      links.each { |link| q.breakable; q.pp link }
    }
    # q.breakable
    q.group(1, '{forms', '}') {
      forms.each { |form| q.breakable; q.pp form }
    }
  }
end

#titleObject



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

def title
  driver.title
end

#uriObject



17
18
19
# File 'lib/metallize/page.rb', line 17

def uri
  driver.current_url
end