如何在Capybara 2.4.1中访问cookie和会话

时间:2014-08-04 23:03:42

标签: ruby-on-rails cookies rspec capybara

我使用带有以下宝石的rails 4:

  • guard-rspec(4.3.1)
  • rspec(3.0.0)
  • rspec-core(3.0.3)
  • rspec-expectations(3.0.3)
  • rspec-mocks(3.0.3)
  • rspec-rails(3.0.2)
  • rspec-support(3.0.3)
  • capybara(2.4.1)
  • capybara-webkit(1.1.0)

Capybara在正常场景/示例中按预期工作,但是当我想要访问cookie或会话时,我得到一个NameError:

undefined local variable or method `session'

我有一个自定义类,我使用它存储cookie数据并检索它以记住用户的事情,然后在屏幕上显示某些内容。

但我似乎无法通过测试,我无法查看Cookie或会话。

是否需要嘲笑?我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

Capybara.current_session.driver.request.session适用于2.17.0。我认为自2.4以来没有多少变化。

答案 1 :(得分:0)

Webkit公开这样的cookie:

if(age.getText().equals("")==true||name.getText().equals("")==true||ssn.getText().equals("")==true||cv.getText().equals("")==true||position.getText().equals("")==true||phone.getText().equals("")==true
    ||city.getText().equals("")==true|| HouseNo.getText().equals("")==true||street.getText().equals("")==true||mail.getText().equals("")==true|| nationality.getText().equals("")==true
    ||zip.getText().equals("")==true)) {

    JOptionPane.showMessageDialog(this,"Please Enter your info again");
    Apply.setEnabled(false);
}

参考此处:https://github.com/thoughtbot/capybara-webkit/issues/168