2
ツールの概要:
 watir-webdriver 1.8.17
 Mac OS X 10.7.3
 クローム 18.0.1025.151

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

4

2 に答える 2

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>取得したら、ターミナルに入力してユーザーデータへのパスを見つけます。

于 2012-04-08T20:26:25.597 に答える
1

私がやりたいもう 1 つのことは、次のように、YAML を使用して Watir::Browser オブジェクトをファイルにシリアライズ (保存) することです。

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

このbrowserObj.yamlファイルには、ブラウザの PID、一時プロファイルへのパスなど、あらゆる種類の内部詳細が読みやすく解析可能なテキストで含まれます。

profile_dir: /tmp/webdriver-rb-profilecopy20121201-1981-9o9t9a
于 2012-12-02T20:21:17.493 に答える