首页 > 解决方案 > 如何使用 Ruby + Selenium WebDriver 保存和加载 cookie

问题描述

如何将 Ruby 的 Selenium WebDriver 中的所有 cookie 保存到 txt 文件中,然后再加载它们?我找不到任何同时导出和导入的答案

在 python 中看起来是一种非常简单的方法,如何在 RUBY 中做到这一点?

如何使用 Python + Selenium WebDriver 保存和加载 cookie

import pickle
import selenium.webdriver 

driver = selenium.webdriver.Firefox()
driver.get("http://www.google.com")
pickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))

编辑:我只使用 Selenium WebDriver(没有 capybara 等)

标签: ruby-on-railsrubyselenium-webdriver

解决方案


在测试中,您可以使用 gem show_me_the_cookies(包装器/适配器)

cookies = show_me_the_cookies # => [{:name, :domain, :value, :expires, :path, :secure}]
# here you can write them as you like
# and then load and
cookies.each{|c|
  create_cookie(c[:name], c[:value], path: c[:path], domain: c[:domain]) # etc.
}

如果没有 gem,您可以直接调用 selenium 驱动程序:

driver = Capybara.current_session.driver # or get your selenium driver other way if not using capybara
cookies = driver.browser.manage.all_cookies
# be sure that you've visited a page in your app, selenium cannot create cookies at `about:blank`
driver.browser.manage.add_cookie(name: ..., value:...)

推荐阅读