[英]Sorcery/Capybara: Cannot log in with :js => true
我已經使用了水豚一段時間,但我是巫術的新手。 我有一個非常奇怪的問題,如果我在沒有Capybara的情況下運行規范:js => true功能我可以正常登錄,但是如果我嘗試在規范中指定:js => true,則無法找到用戶名/密碼。
這是身份驗證宏:
module AuthenticationMacros
def sign_in
user = FactoryGirl.create(:user)
user.activate!
visit new_sessions_path
fill_in 'Email Address', :with => user.email
fill_in 'Password', :with => 'foobar'
click_button 'Sign In'
user
end
end
在這樣的規格中稱為:
feature "project setup" do
include AuthenticationMacros
background do
sign_in
end
scenario "creating a project" do
"my spec here"
end
上面的代碼工作正常。 但是,如果我改變了場景規范(在這種情況下)
scenario "adding questions to a project" do
至
scenario "adding questions to a project", :js => true do
登錄失敗,並出現“用戶名/密碼錯誤”組合。 字面上唯一的變化是:js => true。 我正在使用默認的capybara javascript驅動程序。 (加載Firefox)
有什么想法可以在這里發生什么? 我完全難過了。 我正在使用Capybara 2.0.1,Sorcery 0.7.13。 登錄頁面上沒有javascript,在點擊“登錄”之前save_and_open_page確認在用戶名/密碼字段中輸入了正確的詳細信息。 任何建議真的很感激 - 我很茫然。
根據capybara doc,默認的capybara javascript驅動程序是Selenium。 由於Selenium在單獨的線程中執行,因此您必須禁用事務夾具,否則Selenium線程將無法訪問您在數據庫中創建的數據。 請參閱https://github.com/jnicklas/capybara#using-capybara-with-testunit 。 該部分有關於禁用事務性裝置的這些注釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.