google-chrome - Watir 自动化后如何备份浏览器状态

标签 google-chrome cookies selenium watir watir-webdriver

Summary of tools:
 watir-webdriver 1.8.17
 Mac OS X 10.7.3
 Chrome 18.0.1025.151

我目前正在使用 Watir WebDriver 在多个网站上自动执行 Chrome session 。我需要在整个 session 的某些时间点备份 Web 浏览器的状态(cookie、缓存等)。最初,我认为我可以通过在必要的位置复制 ~/Library/Application Support/Google/Chrome/Default 来使用 Ruby 的文件 IO 库来完成此操作。但是,使用 Watir WebDriver 创建的 Chrome session 似乎并未在此默认位置存储所需的信息。我怎样才能找到这些数据来备份它?这些信息是否存储在其他地方?除了 Watir 之外,还有其他东西可以使这更容易吗?

最佳答案

我终于有了解决办法!

watir-webdriver 似乎将浏览器状态/用户数据存储在随机路径中。默认情况下,可以在此处找到(其中 XXXXXX 是随机标识符):

/private/var/folders/2v/vkd2v3vs5njf69m59nqzc16m0000gn/T/.com.google.Chrome.XXXXXX/Default/

您可以使用以下标志为用户数据指定精确位置,而不是依赖于此默认和随机路径:

Watir::Browser.new :chrome, :switches => %w[--user-data-dir=/path/to/user/data]

然后可以使用Ruby的标准库对缓存、cookies等进行备份、删除等操作。希望这对其他人有帮助。

编辑:如果您无法找到 watir-webdriver 默认存储用户数据的位置,请运行 watir-webdriver 和 top 查找 Chrome 的进程 ID。 .获得 pid 后,键入 lsof -p <pid>进入终端以找到用户数据的路径。

关于google-chrome - Watir 自动化后如何备份浏览器状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060493/

相关文章:

google-chrome - 谷歌浏览器语音合成中的女声

php - 散列cookie是必要的吗?

javascript - history.pushState 不更新移动 Chrome 上 "share ..."按钮的 url

javascript - 在 Google Chrome 中设置 JavaScript 超时限制

image - 如何使用Google Chrome缩略图预览服务?

ruby-on-rails - Rails session cookie 未设置

javascript - AngularJS:登录cookie过期时如何注销

java - 尝试使用 sendkeys 无法上传文件?

javascript - C# Selenium 访问浏览器日志

javascript - selenium.common.exceptions.WebDriverException : Message: unknown error: 'script' must be a string while using execute_script() through Selenium Python