Class: Capybara::Driver::Webkit::Node

Inherits:
Node
  • Object
show all
Defined in:
lib/capybara/driver/webkit/node.rb

Instance Method Summary collapse

Instance Method Details

#[](name) ⇒ Object



7
8
9
10
11
12
13
14
# File 'lib/capybara/driver/webkit/node.rb', line 7

def [](name)
  value = invoke("attribute", name)
  if name == 'checked' || name == 'disabled'
    value == 'true'
  else
    value
  end
end

#browserObject



91
92
93
# File 'lib/capybara/driver/webkit/node.rb', line 91

def browser
  driver.browser
end

#checked?Boolean

Returns:

  • (Boolean)


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

def checked?
  self['checked']
end

#clickObject



45
46
47
# File 'lib/capybara/driver/webkit/node.rb', line 45

def click
  invoke "click"
end

#disabled?Boolean

Returns:

  • (Boolean)


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

def disabled?
  self['disabled']
end

#drag_to(element) ⇒ Object



49
50
51
# File 'lib/capybara/driver/webkit/node.rb', line 49

def drag_to(element)
  invoke 'dragTo', element.native
end

#find(xpath) ⇒ Object



81
82
83
84
85
# File 'lib/capybara/driver/webkit/node.rb', line 81

def find(xpath)
  invoke("findWithin", xpath).split(',').map do |native|
    self.class.new(driver, native)
  end
end

#invoke(name, *args) ⇒ Object



87
88
89
# File 'lib/capybara/driver/webkit/node.rb', line 87

def invoke(name, *args)
  browser.command "Node", name, native, *args
end

#multiple_select?Boolean

Returns:

  • (Boolean)


95
96
97
# File 'lib/capybara/driver/webkit/node.rb', line 95

def multiple_select?
  self.tag_name == "select" && self["multiple"] == "multiple"
end

#pathObject

Raises:

  • (Capybara::NotSupportedByDriverError)


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

def path
  raise Capybara::NotSupportedByDriverError
end

#select_optionObject



32
33
34
# File 'lib/capybara/driver/webkit/node.rb', line 32

def select_option
  invoke "selectOption"
end

#selected?Boolean

Returns:

  • (Boolean)


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

def selected?
  invoke("selected") == "true"
end

#set(value) ⇒ Object



28
29
30
# File 'lib/capybara/driver/webkit/node.rb', line 28

def set(value)
  invoke "set", value
end

#tag_nameObject



53
54
55
# File 'lib/capybara/driver/webkit/node.rb', line 53

def tag_name
  invoke "tagName"
end

#textObject



3
4
5
# File 'lib/capybara/driver/webkit/node.rb', line 3

def text
  invoke "text"
end

#trigger(event) ⇒ Object



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

def trigger(event)
  invoke "trigger", event
end

#unselect_optionObject



36
37
38
39
40
41
42
43
# File 'lib/capybara/driver/webkit/node.rb', line 36

def unselect_option
  select = find("ancestor::select").first
  if select.multiple_select?
    invoke "unselectOption"
  else
    raise Capybara::UnselectNotAllowed
  end
end

#valueObject



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/capybara/driver/webkit/node.rb', line 16

def value
  if multiple_select?
    self.find(".//option").select do |option|
      option["selected"] == "selected"
    end.map do |option|
      option.value
    end
  else
    invoke "value"
  end
end

#visible?Boolean

Returns:

  • (Boolean)


57
58
59
# File 'lib/capybara/driver/webkit/node.rb', line 57

def visible?
  invoke("visible") == "true"
end