Capybara的Authlogic会话不会立即存在

时间:2017-04-07 15:44:18

标签: ruby-on-rails ruby selenium capybara authlogic

我的规格:

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。

1 个答案:

答案 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