Я использую огурец с капибарой.У меня есть набор функций, которые работают нормально, когда я использую драйвер по умолчанию для Capybara.Теперь я написал новую функцию, которая требует селена (потому что он включает в себя поле alert ()).Я установил драгоценный камень selenium webdriver и установил selenium в качестве моего драйвера по умолчанию (сейчас, позже, я могу изменить его, чтобы он стал драйвером для некоторых тестов).
Теперь все мои сценарии провалились.Все они связаны с тем, чтобы уже зарегистрированный пользователь делал некоторые вещи.Оказывается, пользовательский сеанс не создается.Я использую Authlogic для аутентификации.Я очень подозреваю, что в этом виноват селеновый веб-драйвер, потому что, как я уже говорил в начале, когда я использую драйвер по умолчанию, все получается нормально.
Это шаг, который включает создание пользователя, которыйаутентифицируется немедленно (если создается пользователь из модели User, модель которой act_as_authenticatable, то этот пользователь регистрируется по умолчанию. Нет необходимости создавать новую UserSession):
And I am logged in as "confirmed@email.com", with password "12345" and school with subdomain "subdomain1"
Это шагопределение для этого шага:
Given /^I am logged in as "([^"]*)", with password "([^"]*)" and school with subdomain "([^"]*)"$/ do |email, password, domain|
school = School.find_by_subdomain(domain)
user = Factory.create(:user, :email => email, :password => password, :password_confirmation => password, :confirmed_email => true, :authenticatable => Factory.build(:employee, :school => school))
end
Обратите внимание, что я никогда не создаю UserSession явно, просто создание пользователя делает это для меня.Помните, это работает с драйвером Rack-Test, но не с селеном.Selenium просто не волнует эта недавно созданная UserSession.
Вы можете мне помочь?Спасибо!