Ruby 初心者スレッド Part 30at TECHRuby 初心者スレッド Part 30 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト29:25 09/08/09 05:09:10 ありがとうございます じゃあ早速ですがfromのボタンを押すのは agent = WWW::Mechanize.new agent.get(uri).form_with(nameとかactionとか){入力する物}.click_button って形ですよねこのとき、nameが無くてactionも同じformがある場合はどうすれば良いんでしょうか? 30:デフォルトの名無しさん 09/08/09 05:23:08 いくらでも複雑に記述することは可能だが、ごく単純には抽出条件なしの配列を使う ブロックつきメソッドが動作しないのでメソッドチェーンできないことにだけ注意 Ruby 1.9.1 および 1.8.7 の Object#tap を使えば可能なはずだが、 tap はそういう用途に使うもんじゃねー # 従来(抽出条件記述が難しい) agent.page.form_with(抽出条件){|f| f.入力指示 }.click_button # 配列版(出現順だけ考える) f = agent.page.forms[2] f.入力指示 f.click_button # 配列要素を tap agent.page.forms[2].tap{|f| f.入力指示 }.click_button Page#forms は、Form オブジェクトを含む配列を HTML 上での <form> の出現順に返す あくまで配列なので、agent.page.forms[2] は HTML 上での 3 番目のフォームになるぞ 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch