Mechanize неправильно анализирует поля

Я начинаю использовать mechanize с Rails, но, похоже, он работает неправильно, он не находит поля внутри формы. Я пытался использовать пример с веб-сайта 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:inmethod_missing из (irb): 23

Я использую Mechanize версии 2.0.1 и Nokogiri версии 1.4.4, Ruby 1.8.7 и Rails 3.1.


person Dzmitry    schedule 24.10.2011    source источник


Ответы (1)


Используйте вариант доступа к хешу, чтобы установить поле:

google_form['q'] = 'ruby mechanize'
person Douglas F Shearer    schedule 24.10.2011