Class: Capybara::Poltergeist::Node

Inherits:
Driver::Node
  • Object
show all
Defined in:
lib/capybara/poltergeist/node.rb

Instance Method Summary collapse

Instance Method Details

#[](name) ⇒ Object



27
28
29
# File 'lib/capybara/poltergeist/node.rb', line 27

def [](name)
  command :attribute, name
end

#browserObject



5
6
7
# File 'lib/capybara/poltergeist/node.rb', line 5

def browser
  driver.browser
end

#checked?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/capybara/poltergeist/node.rb', line 69

def checked?
  self[:checked]
end

#clickObject



77
78
79
# File 'lib/capybara/poltergeist/node.rb', line 77

def click
  command :click
end

#command(name, *args) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/capybara/poltergeist/node.rb', line 9

def command(name, *args)
  browser.send(name, id, *args)
rescue BrowserError => error
  if error.text == 'Poltergeist.ObsoleteNode'
    raise ObsoleteNode.new(self)
  else
    raise error
  end
end

#drag_to(other) ⇒ Object



81
82
83
# File 'lib/capybara/poltergeist/node.rb', line 81

def drag_to(other)
  command :drag, other.id
end

#find(selector) ⇒ Object



19
20
21
# File 'lib/capybara/poltergeist/node.rb', line 19

def find(selector)
  browser.find(selector, id).map { |node| self.class.new(driver, node) }
end

#select_optionObject



52
53
54
# File 'lib/capybara/poltergeist/node.rb', line 52

def select_option
  command :select, true
end

#selected?Boolean

Returns:

  • (Boolean)


73
74
75
# File 'lib/capybara/poltergeist/node.rb', line 73

def selected?
  self[:selected]
end

#set(value) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/capybara/poltergeist/node.rb', line 35

def set(value)
  if tag_name == 'input'
    case self[:type]
    when 'radio'
      click
    when 'checkbox'
      click if value != checked?
    when 'file'
      command :select_file, value
    else
      command :set, value
    end
  elsif tag_name == 'textarea'
    command :set, value
  end
end

#tag_nameObject



61
62
63
# File 'lib/capybara/poltergeist/node.rb', line 61

def tag_name
  @tag_name ||= command(:tag_name)
end

#textObject



23
24
25
# File 'lib/capybara/poltergeist/node.rb', line 23

def text
  command(:text).strip.gsub(/\s+/, ' ')
end

#trigger(event) ⇒ Object



85
86
87
# File 'lib/capybara/poltergeist/node.rb', line 85

def trigger(event)
  command :trigger, event
end

#unselect_optionObject



56
57
58
59
# File 'lib/capybara/poltergeist/node.rb', line 56

def unselect_option
  command(:select, false) or
  raise(Capybara::UnselectNotAllowed, "Cannot unselect option from single select box.")
end

#valueObject



31
32
33
# File 'lib/capybara/poltergeist/node.rb', line 31

def value
  command :value
end

#visible?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/capybara/poltergeist/node.rb', line 65

def visible?
  command :visible?
end