class Capybara::Driver::Envjs::Node

Public Instance Methods

[](name) click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 30
def [](name)
  attr_name = name.to_s
  attr_name == "class" and attr_name = "className"
  case
  when 'select' == tag_name && 'value' == attr_name
    if native['multiple']
      find(".//option[@selected='selected']").map { |option| option.native[:value] || option.native.innerText  }
    else
      native.value
    end
  else
    native[attr_name]
  end
end
click() click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 77
def click
  _event(self,"MouseEvents",'click',true,true, :button => 1)
end
drag_to(element) click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 81
def drag_to(element)
  # distance stuff is arbitrary at this point, to make jquery.ui happy ...
  _event(self,"MouseEvents",'mousedown',true,true, :button => 1, :pageX => 0, :pageY => 0)
  _event(element,"MouseEvents",'mousemove',true,true, :button => 1, :pageX => 1, :pageY => 1)
  _event(element,"MouseEvents",'mousemove',true,true, :button => 1, :pageX => 0, :pageY => 0)
  _event(element,"MouseEvents",'mouseup',true,true, :button => 1, :pageX => 0, :pageY => 0)
end
find(locator) click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 97
def find(locator)
  window = @driver.browser["window"]
  null = @driver.browser["null"]
  type = window["XPathResult"]["ANY_TYPE"]
  result_set = window.document.evaluate(locator, native, null, type, null)
  nodes = []
  while n = result_set.iterateNext()
    nodes << Node.new(@driver, n)
  end
  nodes
end
select_option() click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 66
def select_option
  native.selected = true
end
set(value) click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 53
def set(value)
  case native.tagName
  when "TEXTAREA"
    native.innerText = value
  else
    case native.getAttribute("type")
    when "checkbox", "radio"
      native.click if native.checked != value
    else; native.setAttribute("value",value)
    end
  end
end
tag_name() click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 89
def tag_name
  native.tagName.downcase
end
text() click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 26
def text
  native.innerText
end
trigger(event) click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 109
def trigger event
  # FIX: look up class and attributes
  _event(self, "", event.to_s, true, true )
end
unselect_option() click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 70
def unselect_option
  if !select_node['multiple']
    raise Capybara::UnselectNotAllowed, "Cannot unselect option from single select box."
  end
  native.removeAttribute('selected')
end
value() click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 45
def value
  if tag_name == 'textarea'
    native.innerText
  else
    self[:value]
  end
end
visible?() click to toggle source
# File lib/capybara/driver/envjs_driver.rb, line 93
def visible?
  find("./ancestor-or-self::*[contains(@style, 'display:none') or contains(@style, 'display: none')]").empty?
end