mechanize:Mechanize::Form#radiobuttons_with, #radiobuttons
以下のような HTML で
<html> <head> <title>form test</title> </head> <body> <form method="get" action="cgi/foo00.cgi" name="form1"> <input type="radio" name="radio1" value="foo" checked="checked" />Foo <input type="radio" name="radio1" value="bar" />Bar </form> </body> </html>
>> require 'mechanize' => true >> agent = Mechanize.new => #<Mechanize:0xb7473594 ... >> page = agent.get('http://127.0.0.1:8080/test13_radiobutton.html') => #<Mechanize::Page ... >> f = page.form('form1') => #<Mechanize::Form ... >> f.radiobuttons_with => [#<Mechanize::Form::RadioButton:0xb7466fd8 @checked=true, @name="radio1", @value="foo", @form=#<Mechanize::Form {name "form1"} {method "GET"} {action "cgi/foo00.cgi"} {fields} {radiobuttons #<Mechanize::Form::RadioButton:0xb7466fd8 @checked=true, @name="radio1", @value="foo"> #<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar">} {checkboxes} {file_uploads} {buttons}> , @node=#<Nokogiri::XML::Element:0x..fdba3385a name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdba2abce name="type" value="radio">, #<Nokogiri::XML::Attr:0x..fdba2abc4 name="name" value="radio1">, #<Nokogiri::XML::Attr:0x..fdba2abba name="value" value="foo">, #<Nokogiri::XML::Attr:0x..fdba2abb0 name="checked" value="checked">]>>, #<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar", @form=#<Mechanize::Form {name "form1"} {method "GET"} {action "cgi/foo00.cgi"} {fields} {radiobuttons #<Mechanize::Form::RadioButton:0xb7466fd8 @checked=true, @name="radio1", @value="foo"> #<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar">} {checkboxes} {file_uploads} {buttons}> , @node=#<Nokogiri::XML::Element:0x..fdba3380a name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdba28edc name="type" value="radio">, #<Nokogiri::XML::Attr:0x..fdba28ed2 name="name" value="radio1">, #<Nokogiri::XML::Attr:0x..fdba28ec8 name="value" value="bar">]>>] >> f.radiobuttons_with(:value => "bar") => [#<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar", @form=#<Mechanize::Form {name "form1"} {method "GET"} {action "cgi/foo00.cgi"} {fields} {radiobuttons #<Mechanize::Form::RadioButton:0xb7466fd8 @checked=true, @name="radio1", @value="foo"> #<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar">} {checkboxes} {file_uploads} {buttons}> , @node=#<Nokogiri::XML::Element:0x..fdba3380a name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdba28edc name="type" value="radio">, #<Nokogiri::XML::Attr:0x..fdba28ed2 name="name" value="radio1">, #<Nokogiri::XML::Attr:0x..fdba28ec8 name="value" value="bar">]>>] >> f.radiobuttons_with(:value => "bar").each {|x| p x} #<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar", @form=#<Mechanize::Form {name "form1"} {method "GET"} {action "cgi/foo00.cgi"} {fields} {radiobuttons #<Mechanize::Form::RadioButton:0xb7466fd8 @checked=true, @name="radio1", @value="foo"> #<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar">} {checkboxes} {file_uploads} {buttons}> , @node=#<Nokogiri::XML::Element:0x..fdba3380a name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdba28edc name="type" value="radio">, #<Nokogiri::XML::Attr:0x..fdba28ed2 name="name" value="radio1">, #<Nokogiri::XML::Attr:0x..fdba28ec8 name="value" value="bar">]>> => [#<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar", @form=#<Mechanize::Form {name "form1"} {method "GET"} {action "cgi/foo00.cgi"} {fields} {radiobuttons #<Mechanize::Form::RadioButton:0xb7466fd8 @checked=true, @name="radio1", @value="foo"> #<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar">} {checkboxes} {file_uploads} {buttons}> , @node=#<Nokogiri::XML::Element:0x..fdba3380a name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdba28edc name="type" value="radio">, #<Nokogiri::XML::Attr:0x..fdba28ed2 name="name" value="radio1">, #<Nokogiri::XML::Attr:0x..fdba28ec8 name="value" value="bar">]>>] >> f.radiobuttons(:value => "bar") ArgumentError: wrong number of arguments (1 for 0) from (irb):9:in `radiobuttons' from (irb):9 >> f.radiobuttons => [#<Mechanize::Form::RadioButton:0xb7466fd8 @checked=true, @name="radio1", @value="foo", @form=#<Mechanize::Form {name "form1"} {method "GET"} {action "cgi/foo00.cgi"} {fields} {radiobuttons #<Mechanize::Form::RadioButton:0xb7466fd8 @checked=true, @name="radio1", @value="foo"> #<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar">} {checkboxes} {file_uploads} {buttons}> , @node=#<Nokogiri::XML::Element:0x..fdba3385a name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdba2abce name="type" value="radio">, #<Nokogiri::XML::Attr:0x..fdba2abc4 name="name" value="radio1">, #<Nokogiri::XML::Attr:0x..fdba2abba name="value" value="foo">, #<Nokogiri::XML::Attr:0x..fdba2abb0 name="checked" value="checked">]>>, #<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar", @form=#<Mechanize::Form {name "form1"} {method "GET"} {action "cgi/foo00.cgi"} {fields} {radiobuttons #<Mechanize::Form::RadioButton:0xb7466fd8 @checked=true, @name="radio1", @value="foo"> #<Mechanize::Form::RadioButton:0xb7466e70 @checked=false, @name="radio1", @value="bar">} {checkboxes} {file_uploads} {buttons}> , @node=#<Nokogiri::XML::Element:0x..fdba3380a name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdba28edc name="type" value="radio">, #<Nokogiri::XML::Attr:0x..fdba28ed2 name="name" value="radio1">, #<Nokogiri::XML::Attr:0x..fdba28ec8 name="value" value="bar">]>>]
複数形の _with の場合は、「attr_reader :fields, :buttons, :file_uploads, :radiobuttons, :checkboxes」があるので _with の alias ではないらしい〜(なので引数は取れないはず)