Is it possible to interact with hidden elements with capybara?

attachment, capybara

Solution

You can interact with hidden elements using the `visible: false` property in Capybara.

If you want to click on hidden element use:

find("#photos", visible: false).click

Don't use `click_button('#photo')` directly

Problem

I have a file field that has `opacity: 0` and is overlaping a fake button. Its a common css technic to fake a sort of "Upload button" that displays consistently across different browsers. Capybara doesn't allows me to call `attach_file` on that input. The error is `Selenium::WebDriver::Error::ElementNotVisibleError: Element is not currently visible and so may not be interacted with`. Anybody knows any way to force capybara to interact with invisible elements? The answer is still unanswered, but I've found a work around. Nothing intelligent, just make visible the element with a simple script ``` page.execute_script %Q{ $('#photos').css({opacity: 1, transform: 'none'}); } ``` I post it for the record.

Original source

Related problems