ruby-on-rails – 如何在测试之间重新使用Capybara会话?
发布时间:2020-12-16 20:15:24 所属栏目:百科 来源:网络整理
导读:我想继续使用相同的会话,我的意思是Rails在使用Capybara的各种Test :: Unit集成测试之间的会话. Capybara :: Session对象在重新使用的所有测试中是相同的,但是当我在另一个测试中访问另一个页面时,我立即注销. 挖掘我发现capybara_session.driver.browser.ma
我想继续使用相同的会话,我的意思是Rails在使用Capybara的各种Test :: Unit集成测试之间的会话. Capybara :: Session对象在重新使用的所有测试中是相同的,但是当我在另一个测试中访问另一个页面时,我立即注销.
挖掘我发现capybara_session.driver.browser.manage.all_cookies在一个测试和下一个测试之间被清除. 任何想法怎么样?还是为什么?还是怎么避免呢? 尝试解决这个问题,我将Cookie保存在一个类变量中,然后通过运行以下方法重新添加: capybara_session.driver.browser.manage.add_cookie(@@cookie) 它似乎工作,cookie在那里,但是当有请求时,cookie被替换为另一个,所以它没有效果. 有没有其他方式实现这一点? 解决方法
在与页面交互的水瓶座代码之后添加以下内容:
Capybara.current_session.instance_variable_set(:@touched,false) or page.instance_variable_set(:@touched,false) 如果不行,这可能有助于: https://github.com/railsware/rack_session_access http://collectiveidea.com/blog/archives/2012/01/05/capybara-cucumber-and-how-the-cookie-crumbles/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |