I\'m trying to write a test for a feature that relies on some session stored data and my scenario looks like this:
Scenario: Create offer
Given I am on the
Some of the drivers don't have a clear way of setting cookies. This is a hacky workaround until they are sorted out:
def set_cookie(name, value, domain)
driver = Capybara.current_session.driver rescue nil
return unless driver
case driver
when Capybara::Driver::RackTest
driver.set_cookie "#{name}=#{value}"
when Capybara::Driver::Selenium
visit '/' # must visit the domain before we can set the cookie
br = driver.browser.send(:bridge)
br.addCookie({
'name' => name,
'domain' => domain,
'value' => value,
'path' => '/',
'expires' => (Time.now + 100.years).to_i
})
else
raise "Unsupported driver #{driver}"
end
end