Class: Capybara::Driver::Envjs::Node

Inherits:
Object
  • Object
show all
Defined in:
lib/capybara_envjs_fixes/cucumber_fixes/capybara_extensions.rb

Instance Method Summary collapse

Instance Method Details

#jquery_trigger(event) ⇒ Object



3
4
5
6
7
# File 'lib/capybara_envjs_fixes/cucumber_fixes/capybara_extensions.rb', line 3

def jquery_trigger(event)
  driver.evaluate_script(<<-END_JS)
    $('##{self['id']}').trigger('#{event}');
  END_JS
end

#select_with_events(options) ⇒ Object



33
34
35
36
# File 'lib/capybara_envjs_fixes/cucumber_fixes/capybara_extensions.rb', line 33

def select_with_events(options)
  select_without_events(options)
  jquery_trigger('change')
end

#set_radio(value) ⇒ Object



19
20
21
22
# File 'lib/capybara_envjs_fixes/cucumber_fixes/capybara_extensions.rb', line 19

def set_radio(value)
  set_without_events(value)
  jquery_trigger('change')
end

#set_text_input(value) ⇒ Object



24
25
26
27
28
29
30
31
# File 'lib/capybara_envjs_fixes/cucumber_fixes/capybara_extensions.rb', line 24

def set_text_input(value)
  jquery_trigger('focus')
  set_without_events(value)
  jquery_trigger('keydown')
  jquery_trigger('keyup')
  jquery_trigger('change')
  jquery_trigger('blur')
end

#set_with_events(value) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/capybara_envjs_fixes/cucumber_fixes/capybara_extensions.rb', line 9

def set_with_events(value)
  case node.getAttribute("type")
  when "checkbox", "radio"
    set_radio(value)
  else
    set_text_input(value)
  end
end

#visible?Boolean

This is overridden because the default implementation only supports nodes hidden by setting the style attribute, which doesn’t take into account the computed style

Returns:

  • (Boolean)


42
43
44
45
46
# File 'lib/capybara_envjs_fixes/cucumber_fixes/capybara_extensions.rb', line 42

def visible?
  all_unfiltered("./ancestor-or-self::*").none? do |capybara_node|
    capybara_node.node.style['display'] == 'none'
  end
end