Class: Capybara::Poltergeist::Node
- Inherits:
-
Driver::Node
- Object
- Driver::Node
- Capybara::Poltergeist::Node
- Defined in:
- lib/capybara/poltergeist/node.rb
Constant Summary collapse
- NBSP =
"\xC2\xA0"
Instance Attribute Summary collapse
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#page_id ⇒ Object
readonly
Returns the value of attribute page_id.
Instance Method Summary collapse
- #==(other) ⇒ Object
- #[](name) ⇒ Object
- #browser ⇒ Object
- #checked? ⇒ Boolean
- #click ⇒ Object
- #command(name, *args) ⇒ Object
- #double_click ⇒ Object
- #drag_to(other) ⇒ Object
- #find(selector) ⇒ Object
-
#initialize(driver, page_id, id) ⇒ Node
constructor
A new instance of Node.
- #select_option ⇒ Object
- #selected? ⇒ Boolean
- #set(value) ⇒ Object
- #tag_name ⇒ Object
- #text ⇒ Object
- #trigger(event) ⇒ Object
- #unselect_option ⇒ Object
- #value ⇒ Object
- #visible? ⇒ Boolean
Constructor Details
#initialize(driver, page_id, id) ⇒ Node
Returns a new instance of Node.
8 9 10 11 12 13 |
# File 'lib/capybara/poltergeist/node.rb', line 8 def initialize(driver, page_id, id) super(driver, self) @page_id = page_id @id = id end |
Instance Attribute Details
#id ⇒ Object (readonly)
Returns the value of attribute id.
6 7 8 |
# File 'lib/capybara/poltergeist/node.rb', line 6 def id @id end |
#page_id ⇒ Object (readonly)
Returns the value of attribute page_id.
6 7 8 |
# File 'lib/capybara/poltergeist/node.rb', line 6 def page_id @page_id end |
Instance Method Details
#==(other) ⇒ Object
107 108 109 |
# File 'lib/capybara/poltergeist/node.rb', line 107 def ==(other) command :equals, other.id end |
#[](name) ⇒ Object
40 41 42 |
# File 'lib/capybara/poltergeist/node.rb', line 40 def [](name) command :attribute, name end |
#browser ⇒ Object
15 16 17 |
# File 'lib/capybara/poltergeist/node.rb', line 15 def browser driver.browser end |
#checked? ⇒ Boolean
83 84 85 |
# File 'lib/capybara/poltergeist/node.rb', line 83 def checked? self[:checked] end |
#click ⇒ Object
91 92 93 |
# File 'lib/capybara/poltergeist/node.rb', line 91 def click command :click end |
#command(name, *args) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/capybara/poltergeist/node.rb', line 19 def command(name, *args) browser.send(name, page_id, id, *args) rescue BrowserError => error case error.name when 'Poltergeist.ObsoleteNode' raise ObsoleteNode.new(self, error.response) when 'Poltergeist.ClickFailed' raise ClickFailed.new(self, error.response) else raise end end |
#double_click ⇒ Object
95 96 97 |
# File 'lib/capybara/poltergeist/node.rb', line 95 def double_click command :double_click end |
#drag_to(other) ⇒ Object
99 100 101 |
# File 'lib/capybara/poltergeist/node.rb', line 99 def drag_to(other) command :drag, other.id end |
#find(selector) ⇒ Object
32 33 34 |
# File 'lib/capybara/poltergeist/node.rb', line 32 def find(selector) command(:find_within, selector).map { |id| self.class.new(driver, page_id, id) } end |
#select_option ⇒ Object
66 67 68 |
# File 'lib/capybara/poltergeist/node.rb', line 66 def select_option command :select, true end |
#selected? ⇒ Boolean
87 88 89 |
# File 'lib/capybara/poltergeist/node.rb', line 87 def selected? self[:selected] end |
#set(value) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/capybara/poltergeist/node.rb', line 48 def set(value) if tag_name == 'input' case self[:type] when 'radio' click when 'checkbox' click if value != checked? when 'file' files = value.respond_to?(:to_ary) ? value.to_ary.map(&:to_s) : value.to_s command :select_file, files else command :set, value.to_s end elsif tag_name == 'textarea' command :set, value.to_s end end |
#tag_name ⇒ Object
75 76 77 |
# File 'lib/capybara/poltergeist/node.rb', line 75 def tag_name @tag_name ||= command(:tag_name) end |
#text ⇒ Object
36 37 38 |
# File 'lib/capybara/poltergeist/node.rb', line 36 def text command(:text).gsub(NBSP, ' ').gsub(/\s+/u, ' ').strip end |
#trigger(event) ⇒ Object
103 104 105 |
# File 'lib/capybara/poltergeist/node.rb', line 103 def trigger(event) command :trigger, event end |
#unselect_option ⇒ Object
70 71 72 73 |
# File 'lib/capybara/poltergeist/node.rb', line 70 def unselect_option command(:select, false) or raise(Capybara::UnselectNotAllowed, "Cannot unselect option from single select box.") end |
#value ⇒ Object
44 45 46 |
# File 'lib/capybara/poltergeist/node.rb', line 44 def value command :value end |
#visible? ⇒ Boolean
79 80 81 |
# File 'lib/capybara/poltergeist/node.rb', line 79 def visible? command :visible? end |