Google chrome Watir自动化后如何备份浏览器状态 工具概述: watir webdriver 1.8.17 Mac OS X 10.7.3 铬18.0.1025.151

Google chrome Watir自动化后如何备份浏览器状态 工具概述: watir webdriver 1.8.17 Mac OS X 10.7.3 铬18.0.1025.151,google-chrome,cookies,selenium,watir,watir-webdriver,Google Chrome,Cookies,Selenium,Watir,Watir Webdriver,我目前正在使用Watir WebDriver在许多网站上自动化Chrome会话。我需要在整个会话的特定时间点备份web浏览器的状态(cookies、缓存等)。最初,我想我可以通过在必要的位置复制~/library/Application Support/Google/Chrome/Default来实现Ruby的文件IO库。但是,使用Watir WebDriver创建的Chrome会话似乎没有将所需信息存储在此默认位置。如何定位此数据以进行备份?这些信息是否存储在其他地方?除了Watir,还有什么

我目前正在使用Watir WebDriver在许多网站上自动化Chrome会话。我需要在整个会话的特定时间点备份web浏览器的状态(cookies、缓存等)。最初,我想我可以通过在必要的位置复制
~/library/Application Support/Google/Chrome/Default
来实现Ruby的文件IO库。但是,使用Watir WebDriver创建的Chrome会话似乎没有将所需信息存储在此默认位置。如何定位此数据以进行备份?这些信息是否存储在其他地方?除了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的标准库备份、删除缓存、cookie等。希望这能帮助其他人


编辑:如果您无法找到默认情况下watir webdriver存储用户数据的位置,请通过运行watir webdriver和
top
查找Chrome的进程id。有了pid后,在终端中键入
lsof-p
以查找用户数据的路径。

我喜欢做的另一件事是使用YAML将Watir::Browser对象序列化(保存)到文件中,如下所示:

Summary of tools: watir-webdriver 1.8.17 Mac OS X 10.7.3 Chrome 18.0.1025.151 然后,该browservebj.yaml文件将以易于阅读/解析的文本形式包含各种内部详细信息,包括任何浏览器的PID、临时配置文件的路径等

require "yaml"
 File.open("browserObj.yaml", 'w').write YAML::dump(@browser)
profile_dir: /tmp/webdriver-rb-profilecopy20121201-1981-9o9t9a