mechanize:Mechanize::Form#textarea_field?
以下のような HTML で
<html> <head> <title>form test</title> </head> <body> <form method="get" action="cgi/foo00.cgi" name="form1"> <input type="text" name="text1" /> <input type="hidden" name="hidden1" /> <textarea name="textarea1" rows="4" cols="40">foo</textarea> </form> </body> </html>
>> require 'mechanize' => true >> agent = Mechanize.new => #<Mechanize:0xb74d6540 ... >> page = agent.get('http://127.0.0.1:8080/test10_form.html') => #<Mechanize::Page ... >> f = page.form('form1') => #<Mechanize::Form ... >> f.textarea_field?("text1") => false >> f.textarea_field?("textarea1") => false >> f.texts => [#<Mechanize::Form::Text:0xb74ca204 @name="text1", @value="", @node=#<Nokogiri::XML::Element:0x..fdba651d4 name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdba637da name="type" value="text">, #<Nokogiri::XML::Attr:0x..fdba637d0 name="name" value="text1">]>>] >> f.textareas => [] >> f.fields => [#<Mechanize::Form::Text:0xb74ca204 @name="text1", @value="", @node=#<Nokogiri::XML::Element:0x..fdba651d4 name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdba637da name="type" value="text">, #<Nokogiri::XML::Attr:0x..fdba637d0 name="name" value="text1">]>>, #<Mechanize::Form::Hidden:0xb74ca038 @name="hidden1", @value="", @node=#<Nokogiri::XML::Element:0x..fdba65184 name="input" attributes=[#<Nokogiri::XML::Attr:0x..fdba622f4 name="type" value="hidden">, #<Nokogiri::XML::Attr:0x..fdba622ea name="name" value="hidden1">]>>, #<Mechanize::Form::Field:0xb74c98cc @name="textarea1", @value="foo", @node=#<Nokogiri::XML::Element:0x..fdba64ca2 name="textarea" attributes=[#<Nokogiri::XML::Attr:0x..fdba60e40 name="name" value="textarea1">, #<Nokogiri::XML::Attr:0x..fdba60e36 name="rows" value="4">, #<Nokogiri::XML::Attr:0x..fdba60e2c name="cols" value="40">] children=[#<Nokogiri::XML::Text:0x..fdba5fc8e "foo">]>>]
?
form.rb が以下のようになっているから、しょうがない気も
class Mechanize ... class Form ... def parse ... # Find all textarea tags form_node.search('textarea').each do |node| next if node['name'].nil? @fields << Field.new(node, node.inner_text) end
↓は何の意味があるのだ???
class Mechanize ... class Form ... def parse ... form_node.search('input').each do |node| ... when 'textarea' @fields << Textarea.new(node, node['value'] || '')