持续登录Cookie与Rails中的恶作剧者无法正常工作

时间:2014-01-09 22:26:43

标签: cookies capybara phantomjs poltergeist

我正在开发一个Rails应用,从使用selenium-webdriverfirefox过渡到使用poltergeistphantomjs进行测试capybara和{{ 1}}。它是一个庞大而成熟的代码库,所以可以预见我遇到了一些麻烦。

当我遇到问题时,我尝试在测试开始时使用cookie登录测试用户。在我的rspec文件中设置了Poltergeist,如下所示:

spec_helper.rb

Capybara.register_driver :poltergeist do |app| options = { :js_errors => false, :inspector => true, :window_size => [1280, 1024] } Capybara::Poltergeist::Driver.new(app, options) end Capybara.default_driver = :poltergeist Capybara.javascript_driver = :poltergeist 内我有以下帮助方法:

spec/support/helpers.rb

将此与我对def login_as(user,redirect=nil) cookie_jar = ActionDispatch::Cookies::CookieJar.new signed_jar = ActionDispatch::Cookies::SignedCookieJar.new cookie_jar, AppName::Application.config.secret_token signed_jar[:session_31] = { value: { :'warden.user.user.key' => ["User", [user.id], user.password_salt] } } visit '/test.html' unless current_path cookie_options = { :expires => Time.now + 15.years } page.driver.set_cookie( :session_31, cookie_jar[:session_31], cookie_options) visit redirect if redirect end 的比较:

selenium-webdriver

然后我的测试在def login_as(user,redirect=nil) cookie_jar = ActionDispatch::Cookies::CookieJar.new signed_jar = ActionDispatch::Cookies::SignedCookieJar.new cookie_jar, AppName::Application.config.secret_token signed_jar[:session_31] = { value: { :'warden.user.user.key' => ["User", [user.id], user.password_salt] } } visit '/test.html' unless current_path page.driver.browser.manage.add_cookie( name: :session_31, value: cookie_jar[:session_31]) visit redirect if redirect end 块中调用这个辅助方法。

before(:each)

在两种情况下都会创建Cookie,但用户未使用before(:each) do # Setup users and such login_as(@user) end 登录。在任何一种情况下显示时,cookie也会略有不同。对于恶作剧者:

poltergeist

使用Selenium:

["session_31",
#<Capybara::Poltergeist::Cookie:0x000fffffffffff
 @attributes=
  {"domain"=>"localhost",
   "expires"=>"Tue, 09 Jan 2029 15:48:08 GMT",
   "expiry"=>1862686088,
   "httponly"=>true,
   "name"=>"session_31",
   "path"=>"/",
   "secure"=>false,
   "value"=>
    "secret ;)"}>]]

我不知道这是Poltergeist,PhantomJS,我自己的代码库,还是魔法侏儒引起它的问题。我真的很茫然。有人有什么想法吗?

0 个答案:

没有答案
相关问题