mechanize:Mechanize::Form#set_fields
以下のような HTML で
<html> <head> <title>form test</title> </head> <body> <form method="get" action="cgi/foo00.cgi" name="form1"> <input type="hidden" name="hidden1" /> <input type="text" name="text1" /> <textarea name="textarea1" rows="4" cols="40">foo</textarea> <input type="text" name="text1" /> <textarea name="textarea1" rows="4" cols="40">bar</textarea> </form> </body> </html>
>> require 'mechanize' => true >> agent = Mechanize.new => #<Mechanize:0xb74dc594 ... >> page = agent.get('http://127.0.0.1:8080/test17_form.html') => #<Mechanize::Page ... >> f = page.form('form1') => #<Mechanize::Form ... >> f.fields_with(:name => "text1")[0].value => "" >> f.fields_with(:name => "text1")[1].value => "" >> f.fields_with(:name => "textarea1")[0].value => "foo" >> f.fields_with(:name => "textarea1")[1].value => "bar" >> f.set_fields(:text1 => "hoge") => {:text1=>"hoge"} >> f.fields_with(:name => "text1")[0].value => "hoge" >> f.fields_with(:name => "text1")[1].value => "" >> f.set_fields(:text1 => { 0 => "HOGE" , 1 => "HOGEHOGE"}) => {:text1=>{0=>"HOGE", 1=>"HOGEHOGE"}} >> f.fields_with(:name => "text1")[0].value => "HOGE" >> f.fields_with(:name => "text1")[1].value => "HOGEHOGE"
なんでインデックス番号なんかで指定するんだろう?と思ったけど、Array だと抜かして指定するのが面倒だからそうしたのかな?