如何从 Watir cookie 生成 cookie 文件

问题描述

我正在尝试从 Watir 下载文件,但我不想使用 loop sleep 方法

我宁愿在交互的最后时刻重新创建 Watir 在网页上的会话并使用另一个库,例如 Typhoeus。

Typhoeus 使用 curl 并且可以使用文件中的 cookie,但是,Watir 生成一个哈希数组,如果我要求保存它,它会将其保存为 YAML 文件

有没有更快的转换方法

解决方法

StackOverflow 中的另一篇文章说 curl 使用 Mozilla style cookie files

因此,如果您的 Watir 实例是 browser 并且您要写入的文件是 file,您可以这样做

browser.cookies.to_a.each do |ch| 
  terms = []
  terms << ch[:domain]
  terms << ch[:same_site].nil? ? 'FALSE' : 'TRUE'
  terms << ch[:path]
  terms << ch[:secure] ? 'TRUE' : 'FALSE'
  terms << ch[:expires].to_i.to_s
  terms << ch[:name]
  terms << ch[:value]
  file.puts terms.join("\t")
end

然后您可以告诉 Typhoeus 使用 file 的内容使用相同的 cookie 继续导航。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...