Module: Capybara::Selenium::Node::FileInputClickEmulation
Relationships & Source Files | |
Defined in: | lib/capybara/selenium/extensions/file_input_click_emulation.rb |
Instance Attribute Summary
- #attaching_file? ⇒ Boolean readonly private
- #visible_file_field? ⇒ Boolean readonly private
Instance Method Summary
Instance Attribute Details
#attaching_file? ⇒ Boolean
(readonly, private)
[ GitHub ]
# File 'lib/capybara/selenium/extensions/file_input_click_emulation.rb', line 19
def attaching_file? caller_locations.any? { |cl| cl.base_label == 'attach_file' } end
#visible_file_field? ⇒ Boolean
(readonly, private)
[ GitHub ]
Instance Method Details
#click(keys = [], **options)
[ GitHub ]# File 'lib/capybara/selenium/extensions/file_input_click_emulation.rb', line 5
def click(keys = [], ** ) super rescue Selenium::WebDriver::Error::InvalidArgumentError return emulate_click if attaching_file? && visible_file_field? raise end
#emulate_click (private)
[ GitHub ]# File 'lib/capybara/selenium/extensions/file_input_click_emulation.rb', line 23
def emulate_click driver.execute_script(<<~JS, self) arguments[0].dispatchEvent( new MouseEvent('click', { view: window, bubbles: true, cancelable: true })); JS end