Class: Capybara::Node::Simple
- Inherits:
-
Object
- Object
- Capybara::Node::Simple
- Includes:
- Finders, Matchers
- Defined in:
- lib/capybara/node/simple.rb
Overview
A Simple is a simpler version of Base which includes only Finders and Matchers and does not include Actions. This type of node is returned when using Capybara.string.
It is useful in that it does not require a session, an application or a driver, but can still use Capybara's finders and matchers on any string that contains HTML.
Instance Attribute Summary (collapse)
-
- (Object) native
readonly
Returns the value of attribute native.
Instance Method Summary (collapse)
-
- (String) [](name)
Retrieve the given attribute.
- - (Object) allow_reload!
-
- (Boolean) checked?
Whether or not the element is checked.
-
- (Boolean) disabled?
Whether or not the element is disabled.
- - (Boolean) has_no_title?(content)
- - (Boolean) has_title?(content)
-
- (Simple) initialize(native)
constructor
A new instance of Simple.
-
- (String) path
An XPath expression describing where on the page the element can be found.
-
- (Boolean) selected?
Whether or not the element is selected.
- - (Object) synchronize(seconds = nil)
-
- (String) tag_name
The tag name of the element.
-
- (String) text(type = nil)
The text of the element.
- - (Object) title
-
- (String) value
The value of the form element.
-
- (Boolean) visible?
Whether or not the element is visible.
Methods included from Matchers
#==, #assert_no_selector, #assert_selector, #has_button?, #has_checked_field?, #has_css?, #has_field?, #has_link?, #has_no_button?, #has_no_checked_field?, #has_no_css?, #has_no_field?, #has_no_link?, #has_no_select?, #has_no_selector?, #has_no_table?, #has_no_text?, #has_no_unchecked_field?, #has_no_xpath?, #has_select?, #has_selector?, #has_table?, #has_text?, #has_unchecked_field?, #has_xpath?
Methods included from Finders
#all, #find, #find_button, #find_by_id, #find_field, #find_link, #first
Constructor Details
- (Simple) initialize(native)
A new instance of Simple
20 21 22 23 |
# File 'lib/capybara/node/simple.rb', line 20 def initialize(native) native = Nokogiri::HTML(native) if native.is_a?(String) @native = native end |
Instance Attribute Details
- (Object) native (readonly)
Returns the value of attribute native
18 19 20 |
# File 'lib/capybara/node/simple.rb', line 18 def native @native end |
Instance Method Details
- (String) [](name)
Retrieve the given attribute
element[:title] # => HTML title attribute
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/capybara/node/simple.rb', line 42 def [](name) attr_name = name.to_s if attr_name == 'value' value elsif 'input' == tag_name and 'checkbox' == native[:type] and 'checked' == attr_name native['checked'] == 'checked' else native[attr_name] end end |
- (Object) allow_reload!
134 135 136 |
# File 'lib/capybara/node/simple.rb', line 134 def allow_reload! # no op end |
- (Boolean) checked?
Whether or not the element is checked.
107 108 109 |
# File 'lib/capybara/node/simple.rb', line 107 def checked? native[:checked] end |
- (Boolean) disabled?
Whether or not the element is disabled.
116 117 118 |
# File 'lib/capybara/node/simple.rb', line 116 def disabled? native[:disabled] end |
- (Boolean) has_no_title?(content)
146 147 148 |
# File 'lib/capybara/node/simple.rb', line 146 def has_no_title?(content) not has_title?(content) end |
- (Boolean) has_title?(content)
142 143 144 |
# File 'lib/capybara/node/simple.rb', line 142 def has_title?(content) title.match(Capybara::Helpers.to_regexp(content)) end |
- (String) path
An XPath expression describing where on the page the element can be found
67 68 69 |
# File 'lib/capybara/node/simple.rb', line 67 def path native.path end |
- (Boolean) selected?
Whether or not the element is selected.
126 127 128 |
# File 'lib/capybara/node/simple.rb', line 126 def selected? native[:selected] end |
- (Object) synchronize(seconds = nil)
130 131 132 |
# File 'lib/capybara/node/simple.rb', line 130 def synchronize(seconds=nil) yield # simple nodes don't need to wait end |
- (String) tag_name
The tag name of the element
57 58 59 |
# File 'lib/capybara/node/simple.rb', line 57 def tag_name native.node_name end |
- (String) text(type = nil)
The text of the element
29 30 31 |
# File 'lib/capybara/node/simple.rb', line 29 def text(type=nil) native.text end |
- (Object) title
138 139 140 |
# File 'lib/capybara/node/simple.rb', line 138 def title native.xpath("//title").first.text end |
- (String) value
The value of the form element
75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/capybara/node/simple.rb', line 75 def value if tag_name == 'textarea' native.content.sub(/\A\n/, '') elsif tag_name == 'select' if native['multiple'] == 'multiple' native.xpath(".//option[@selected='selected']").map { |option| option[:value] || option.content } else option = native.xpath(".//option[@selected='selected']").first || native.xpath(".//option").first option[:value] || option.content if option end else native[:value] end end |
- (Boolean) visible?
Whether or not the element is visible. Does not support CSS, so the result may be inaccurate.
97 98 99 |
# File 'lib/capybara/node/simple.rb', line 97 def visible? native.xpath("./ancestor-or-self::*[contains(@style, 'display:none') or contains(@style, 'display: none') or name()='script' or name()='head']").size == 0 end |