2012-04-08 6 views
2
Summary of tools: 
watir-webdriver 1.8.17 
Mac OS X 10.7.3 
Chrome 18.0.1025.151

現在、Watir WebDriverを使用して複数のWebサイトでChromeセッションを自動化しています。セッション中の特定の時点でWebブラウザの状態(Cookie、キャッシュなど)をバックアップする必要があります。もともと、私はRubyのファイルIOライブラリで、~/Library/Application Support/Google/Chrome/Defaultを必要な箇所にコピーすることでこれを行うことができると考えました。ただし、Watir WebDriverで作成したChromeセッションでは、このデフォルトの場所に必要な情報が保存されているようには見えません。このデータをバックアップするにはどうすればよいでしょうか?この情報は他の場所に保存されていますか?これを簡単にするWatir以外のものがありますか?Watirの自動化後にブラウザの状態をバックアップする方法

答えて

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の標準ライブラリを使用してなど、バックアップを削除することができます。うまくいけば、これは他の誰かを助けるでしょう

編集:あなたはワチール-webdriverをデフォルトでユーザーデータを格納しているところを見つけることができない場合は、ワチール-webdriverをして​​topを実行して、ChromeのプロセスIDを見つけます。 pidを取得したら、端末にlsof -p <pid>と入力して、ユーザーデータのパスを見つけます。

1

私がやりたいもう一つは、そのように、YAMLを使用してファイルにワチール::ブラウザのオブジェクト(保存)シリアライズです:

require "yaml" 
File.open("browserObj.yaml", 'w').write YAML::dump(@browser) 

このbrowserObj.yamlファイルは、その後のすべての種類が含まれていますどのブラウザのPID、一時的なプロフィールへのパスなどを含む、容易に読める/解析可能なテキストの内部詳細。

profile_dir: /tmp/webdriver-rb-profilecopy20121201-1981-9o9t9a 
関連する問題