-1

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

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。

那里有任何机械化向导有任何建议吗?

4

1 回答 1

0

您的agent变量是该foo方法的本地变量,因此bar看不到它。您可能想要使用类变量,例如@agent. 我不确定你为什么要创建这样的类方法。如果您向课程提供源代码,并详细说明您这样做的原因,您可能会得到更好的建议。

于 2013-04-27T13:12:23.050 回答