Я переключил свои тесты рельсов с capybara-webkit на безголовый хром.Когда я запускаю тест, который посещает не хост по умолчанию Capybara, первый случай проходит, но второй сбой, потому что пользователь уже вошел в систему, когда он пытается войти
Я использую chromedriver v2.45
, selenium-webdriver (3.141.0)
и capybara (2.18.0)
У меня есть следующие настройки:
require 'selenium-webdriver'
Capybara.register_driver :chrome do |app|
options = Selenium::WebDriver::Chrome::Options.new(
args: %w[headless disable-gpu no-sandbox]
)
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end
Capybara.javascript_driver = :chrome
Я попытался сменить хост приложения на домен по умолчанию после посещения другого домена
using_app_host("http://another.lvh.me") do
visit '/'
# do something
end
где using_app_host
is
def using_app_host(host)
original_host = Capybara.app_host
Capybara.app_host = host
yield
ensure
Capybara.app_host = original_host
end
, но это не помогло.
Структура спецификации выглядит следующим образом:
feature "Use another subdomain", js: true do
before { login } # use default Capybara app host http://root.lvh.me
scenario "case 1" do
using_app_host("http://another.lvh.me") do
# do something
end
end
scenario "case 2" do
using_app_host("http://another.lvh.me") do
# do something else
end
end
end
Есть идеи, почему капибара / хром без головы не работает?t очистить сеанс пользователя между тестовыми примерами при переходе на другой домен?