我开始在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
答案 0 :(得分:1)
使用哈希访问变体设置字段:
google_form['q'] = 'ruby mechanize'