如何在Watir自动化后备份浏览器状态

ARP*_*ARP 2 cookies selenium google-chrome 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会话.我需要在整个会话中的某些点备份Web浏览器的状态(cookie,缓存等).最初,我认为我可以通过复制~/Library/Application Support/Google/Chrome/Default必要的点来使用Ruby的文件IO库来做到这一点.但是,使用Watir WebDriver创建的Chrome会话似乎不会将所需信息存储在此默认位置.如何找到这些数据进行备份?这些信息是否存储在别处?除了Watir之外还有什么可以让这更容易吗?

ARP*_*ARP 6

我终于有了解决方案!

似乎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和找到Chrome的进程ID top.获得pid后,键入lsof -p <pid>终端以查找用户数据的路径.