我的规格:
let(:user) { FactoryGirl.create(:user) }
context 'When user is logged in' do
scenario 'Log in' do
visit login_path
within '.new_user_session' do
fill_in 'username', with: user.email
fill_in 'password', with: user.password
click_on 'Log in'
end
visit new_search_path
expect(page).to have_text "Welcome #{user.name}!"
end
end
问题是,在访问new_search_path
时,即使登录成功,该页面的行为就像没有用户登录一样。如果我在{{1}之前添加sleep(1)
电话一切正常。
任何人都知道为什么会这样吗?
我正在使用authlogic,capybara和selenium。
答案 0 :(得分:2)
@delete_conversation = []
@conversations = Conversation.mailbox.conversations
@conversations.each do |conversation|
@conversations.each do |compareConv|
if conversation.notification_id == compareConv.notification_id && conversation.deleted? && compareConv.deleted && conversation.receiver_id != compareConv.receiver_id
@delete_conversation.push(conversation)
end
end
end
触发的操作可以异步发生。因此,如果您在导致登录请求中止并且会话cookie永远不会被设置之后立即执行click_on
。要解决此问题,您需要检查指示登录成功的页面文本/内容。像
visit