Mechanize不会正确解析字段

时间:2011-10-24 22:00:11

标签: ruby mechanize

我开始在Rails中使用mechanize,但似乎它无法正常工作,它不会在表单中找到字段。我试图使用Mechanize网站上的示例,但它不起作用。我做了:

agent = Mechanize.new
page = agent.get('http://google.com/')

它返回:

=> #<Mechanize::Page
 {url #<URI::HTTP:0xb340ba74 URL:http://www.google.by/>}
 {meta_refresh}
 {title "Google"}
 {iframes}
 {frames}
 {links
  #<Mechanize::Page::Link
   "Выявы"
   "http://www.google.by/imghp?hl=be&tab=wi">
  #<Mechanize::Page::Link
   "Пераклад"
   "http://translate.google.by/?hl=be&tab=wT">
  #<Mechanize::Page::Link
   "Групы"
   "http://groups.google.by/grphp?hl=be&tab=wg">
  #<Mechanize::Page::Link
   "Гісторыя пошуку"
   "http://www.google.com/history/optout?hl=be">
  #<Mechanize::Page::Link "Наладкі" "/preferences?hl=be">
  #<Mechanize::Page::Link
   "Увайсьці"
   "https://www.google.com/accounts/ServiceLogin?hl=be&continue=http://www.google.by/">
  #<Mechanize::Page::Link
   "Пашыраны пошук"
   "/advanced_search?hl=be">
  #<Mechanize::Page::Link "Language tools" "/language_tools?hl=be">
  #<Mechanize::Page::Link
   "русском"
   "http://www.google.by/setprefs?sig=0_U7jPRU_lW24j6EjPs4nuN1IxPcM=&hl=ru">
  #<Mechanize::Page::Link "Усё пра Google" "/intl/be/about.html">
  #<Mechanize::Page::Link "Google.com in English" "http://www.google.com/ncr">}
 {forms
  #<Mechanize::Form
   {name "f"}
   {method "GET"}
   {action "/search"}
   {fields}
   {radiobuttons}
   {checkboxes}
   {file_uploads}
   {buttons}>}>

page.form('f')返回:

=> #<Mechanize::Form
 {name "f"}
 {method "GET"}
 {action "/search"}
 {fields}
 {radiobuttons}
 {checkboxes}
 {file_uploads}
 {buttons}>

google_form.q = 'ruby mechanize'返回:

  

NoMethodError:未定义的方法q=' for #<Mechanize::Form:0xb33e7070> from /usr/lib/ruby/gems/1.8/gems/mechanize-2.0.1/lib/mechanize/form.rb:162:in method_missing'         来自(irb):23

我使用Mechanize版本2.0.1和Nokogiri版本1.4.4,Ruby 1.8.7和Rails 3.1

1 个答案:

答案 0 :(得分:1)

使用哈希访问变体设置字段:

google_form['q'] = 'ruby mechanize'