mechanize:Mechanize::Form#buttons
以下のような HTML で
<html> <head> <title>form test</title> </head> <body> <form method="get" action="cgi/foo00.cgi" name="form1"> <input type="submit" value="Send" /> <input type="reset" value="Cancel" /> </form> </body> </html>
>> require 'mechanize' => true >> agent = Mechanize.new => #<Mechanize:0xb74065ac ... >> page = agent.get('http://127.0.0.1:8080/test11_button.html') => #<Mechanize::Page {url #<URI::HTTP:0xb7402c2c URL:http://127.0.0.1:8080/test11_button.html>} {meta} {title "form test"} {iframes} {frames} {links} {forms #<Mechanize::Form {name "form1"} {method "GET"} {action "cgi/foo00.cgi"} {fields} {radiobuttons} {checkboxes} {file_uploads} {buttons #<Mechanize::Form::Submit:0xb73fa248 @name=nil, @node= #(Element:0x..fdb9fd1b0 { name = "input", attributes = [ #(Attr:0x..fdb9fb6c6 { name = "type", value = "submit" }), #(Attr:0x..fdb9fb6bc { name = "value", value = "Send" })] }), @value="Send">}>}> >> page.form_with(:name => "form1").buttons => [#<Mechanize::Form::Submit:0xb73fa248 @name=nil, @value="Send", @node=#<Nokogiri::XML::Element:0x..fdb9fd1b0 name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdb9fb6c6 name="type" value="submit">, #<Nokogiri::XML::Attr:0x..fdb9fb6bc name="value" value="Send">]>>] >> page.form_with(:name => "form1").buttons.size => 1
なぜ 1つになっちゃうんだ?以下の部分のせい???
class Mechanize ... class Form ... private def parse ... # Find all submit button tags # FIXME: what can I do with the reset buttons? form_node.search('button').each do |node| type = (node['type'] || 'submit').downcase next if type == 'reset' @buttons << Button.new(node) end end ...