Class: Capybara::Poltergeist::Node
- Inherits:
-
Driver::Node
- Object
- Driver::Node
- Capybara::Poltergeist::Node
- Defined in:
- lib/capybara/poltergeist/node.rb
Instance Method Summary collapse
- #[](name) ⇒ Object
- #browser ⇒ Object
- #checked? ⇒ Boolean
- #click ⇒ Object
- #command(name, *args) ⇒ Object
- #drag_to(other) ⇒ Object
- #find(selector) ⇒ Object
- #select_option ⇒ Object
- #selected? ⇒ Boolean
- #set(value) ⇒ Object
- #tag_name ⇒ Object
- #text ⇒ Object
- #trigger(event) ⇒ Object
- #unselect_option ⇒ Object
- #value ⇒ Object
- #visible? ⇒ Boolean
Instance Method Details
#[](name) ⇒ Object
27 28 29 |
# File 'lib/capybara/poltergeist/node.rb', line 27 def [](name) command :attribute, name end |
#browser ⇒ Object
5 6 7 |
# File 'lib/capybara/poltergeist/node.rb', line 5 def browser driver.browser end |
#checked? ⇒ Boolean
69 70 71 |
# File 'lib/capybara/poltergeist/node.rb', line 69 def checked? self[:checked] end |
#click ⇒ Object
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_option ⇒ Object
52 53 54 |
# File 'lib/capybara/poltergeist/node.rb', line 52 def select_option command :select, true end |
#selected? ⇒ 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_name ⇒ Object
61 62 63 |
# File 'lib/capybara/poltergeist/node.rb', line 61 def tag_name @tag_name ||= command(:tag_name) end |
#text ⇒ Object
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_option ⇒ Object
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 |
#value ⇒ Object
31 32 33 |
# File 'lib/capybara/poltergeist/node.rb', line 31 def value command :value end |
#visible? ⇒ Boolean
65 66 67 |
# File 'lib/capybara/poltergeist/node.rb', line 65 def visible? command :visible? end |