Применение pOdeje «s цикл заселить кук, вот решение, которое включает в себя сохранение куков в файл, читаемые в более позднем периоде Ruby. Прямая File.open
запись и чтение массива имели некоторые проблемы, которые я не хотел работать (разбор?), Но Сериализация объекта YAML, уже связанная с Ruby, хорошо подходит для задачи.
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, затрагивающих несколько несвязанных сайтов (как это было в действительности ожидание моих старых программ с использованием других языков & таких библиотек, как Mechanize). Curl и Wget и вообще другие инструменты, которые я использовал для взаимодействия SOAP, всегда позволяют мне контролировать среду POST/session/cookie до загрузки сайта. Просто мысль.
Почти. Благодаря! Сохранение и перезагрузка массива из текстового файла становится несколько проблематичным, поэтому я использовал YAML. Вывод полного решения ниже – Marcos