ruby-on-rails - Mechanize 重定向/Nokogiri(菜鸟使用 Mechanize )

标签 ruby-on-rails ruby nokogiri mechanize

我有一些看起来像这样的东西:

def self.foo
  agent = Mechanize.new
  form  = agent.get("link/to/form/url")

  form.form_with(:name => "form_name") do |f|
    f.field_with(:name => "input_name").value = "random_value"
    agent.form.forms[0].submit
    agent.follow_meta_refresh = true
  end
  self.bar
end

def self.bar
  #may need to pass variable for agent here?
  doc = Nokogiri::HTML(open(need redirect object!))
  doc.css(".random_class").text
end

在我调用类方法后 foo ,它成功找到表单,填写输入并提交。但是,当它完成并调用 bar 时,我卡住了。

我还没有找到一种方法来成功传递一个 Mechanize 对象,该对象是重定向发布表单提交后结果页面的 HTML 以测试并查看我是否捕获了正确的页面,并使用 Nokogiri 解析 CSS。

有没有 Mechanize 向导有任何建议?

最佳答案

您的 agent变量是 foo 的局部变量方法,所以 bar没看见。您可能想要使用类变量,例如@agent .我不确定你为什么要创建这样的类方法。如果您向类(class)提供来源,并详细说明您为什么这样做,您可能会得到更好的建议。

关于ruby-on-rails - Mechanize 重定向/Nokogiri(菜鸟使用 Mechanize ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16176136/

相关文章:

ruby - 在 Ruby (XSLT 2.0) 中执行 XSL 转换的最佳方式

ruby-on-rails - 在 Ruby/Rails 中生成介于 2 个日期之间的商业周列表

ruby-on-rails - RAILS : Does ActiveRecord#persisted? 实际查询数据库?

ruby-on-rails - 在带有回形针的模型中使用 Rails 环境 URL

mysql - gem install mysql2 -v '0.3.18' 失败

ruby-on-rails - 自定义中间件 block 引发异常的回溯

ruby - ruby 中的 openssl 等效命令

ruby - 如何让 Nokogiri 不转换为空间

ruby - 如何在 nokogiri xpath 中使用正则表达式

html - <ul> 元素的 Rails content_tag