Class: Capybara::Driver::Celerity::Node
- Inherits:
-
Node
- Object
- Node
- Capybara::Driver::Celerity::Node
show all
- Defined in:
- lib/capybara/driver/celerity_driver.rb
Instance Attribute Summary
Attributes inherited from Node
#driver, #native
Instance Method Summary
collapse
Methods inherited from Node
#initialize, #inspect
Instance Method Details
#[](name) ⇒ Object
7
8
9
10
11
12
13
14
|
# File 'lib/capybara/driver/celerity_driver.rb', line 7
def [](name)
value = if name.to_sym == :class
native.class_name
else
native.send(name.to_sym)
end
return value if value and not value.to_s.empty?
end
|
#click ⇒ Object
43
44
45
|
# File 'lib/capybara/driver/celerity_driver.rb', line 43
def click
native.click
end
|
#drag_to(element) ⇒ Object
47
48
49
50
51
|
# File 'lib/capybara/driver/celerity_driver.rb', line 47
def drag_to(element)
native.fire_event('mousedown')
element.native.fire_event('mousemove')
element.native.fire_event('mouseup')
end
|
#find(locator) ⇒ Object
71
72
73
74
75
|
# File 'lib/capybara/driver/celerity_driver.rb', line 71
def find(locator)
noko_node = Nokogiri::HTML(driver.body).xpath(native.xpath).first
all_nodes = noko_node.xpath(locator).map { |n| n.path }.join(' | ')
if all_nodes.empty? then [] else driver.find(all_nodes) end
end
|
#path ⇒ Object
63
64
65
|
# File 'lib/capybara/driver/celerity_driver.rb', line 63
def path
native.xpath
end
|
#select_option ⇒ Object
28
29
30
|
# File 'lib/capybara/driver/celerity_driver.rb', line 28
def select_option
native.click
end
|
#set(value) ⇒ Object
24
25
26
|
# File 'lib/capybara/driver/celerity_driver.rb', line 24
def set(value)
native.set(value)
end
|
#tag_name ⇒ Object
53
54
55
56
57
|
# File 'lib/capybara/driver/celerity_driver.rb', line 53
def tag_name
native.to_xml[/^\s*<([a-z0-9\-\:]+)/, 1]
end
|
#text ⇒ Object
3
4
5
|
# File 'lib/capybara/driver/celerity_driver.rb', line 3
def text
native.text
end
|
#trigger(event) ⇒ Object
67
68
69
|
# File 'lib/capybara/driver/celerity_driver.rb', line 67
def trigger(event)
native.fire_event(event.to_s)
end
|
#unselect_option ⇒ Object
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/capybara/driver/celerity_driver.rb', line 32
def unselect_option
unless select_node.native.multiple?
raise Capybara::UnselectNotAllowed, "Cannot unselect option from single select box."
end
selected_nodes = select_node.find('.//option[@selected]')
select_node.native.clear
selected_nodes.each { |n| n.click unless n.path == path }
end
|
#value ⇒ Object
16
17
18
19
20
21
22
|
# File 'lib/capybara/driver/celerity_driver.rb', line 16
def value
if tag_name == "select" and native.multiple?
find(".//option[@selected]").map { |n| n.value || n.text }
else
self[:value]
end
end
|
#visible? ⇒ Boolean
59
60
61
|
# File 'lib/capybara/driver/celerity_driver.rb', line 59
def visible?
native.visible?
end
|