應用pOdeje的循環重新填充餅乾罐,這裏是包括餅乾保存到一個文件中,讀取在以後的Ruby運行的解決方案。直File.open
寫入和陣列的讀出了一些問題,我不希望解決(解析?),但在Ruby中已經捆綁YAML對象序列化是非常適合的任務。
require 'yaml'
# Save/serialize cookies
# File.open("ST.cookies.txt", 'w').write $browser.cookies.to_a.to_s
File.open("ST.cookies.yaml", 'w').write YAML::dump($browser.cookies.to_a)
# Load/deserialize cookies
# $cookies = File.open("ST.cookies.txt", 'r').to_a # returns 1-elem array of single long line, not indiv elements
$cookies = YAML::load(File.open("ST.cookies.yaml", 'r'))
$browser.cookies.clear
$cookies.each do |saved_cookie|
$browser.cookies.add saved_cookie[:name],
saved_cookie[:value],
:domain => saved_cookie[:domain],
:expires => saved_cookie[:expires],
:path => saved_cookie[:path],
:secure => saved_cookie[:secure]
end
仍然在尋找預watir-webdriver 0.5.x
方法,雖然。
CAVEAT
沒有徹底尚未測試,但它似乎我不得不第一負載到餅乾應用的URL,在使用上述方法我的餅乾罐然後負荷,最後加載該URL到$browser
對象第二次。這對我的情況來說只是一個小小的不便和時間成本,我在整個網絡會話期間都呆在同一個域中,但我可以看到這變成了一個影響幾個不相關站點的cookie瓶子的真正刺(如果確實是期望我的老程序使用其他語言&庫像機械化)。 Curl和Wget以及我用於SOAP接口的其他工具通常讓我在加載站點之前控制我的POST/session/cookie環境。只是一個想法。
差不多。謝謝!從純文本文件保存和重新加載數組變得有些問題,所以我使用YAML。在下面發佈完整的解決方案 – Marcos 2012-02-12 23:50:38