Class: Capybara::Driver::Envjs::Node
- Inherits:
-
Object
- Object
- Capybara::Driver::Envjs::Node
- Defined in:
- lib/capybara_envjs_fixes/cucumber_fixes/capybara_extensions.rb
Instance Method Summary collapse
- #jquery_trigger(event) ⇒ Object
- #select_with_events(options) ⇒ Object
- #set_radio(value) ⇒ Object
- #set_text_input(value) ⇒ Object
- #set_with_events(value) ⇒ Object
-
#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.
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() select_without_events() 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
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 || .node.style['display'] == 'none' end end |