2

yellowpages.com の検索フォームを送信しようとしていますが、ページをきれいに印刷すると、名前フィールドが空白になっていることに気付きます。名前フィールドが空白の場合、そのフォームを見つけるように mechanize に指示するにはどうすればよいですか?

require 'mechanize'

agent = Mechanize.new
page = agent.get('http://www.yellowpages.com')
pp page

出力:

#<Mechanize::Form
   {name nil}
   {method "GET"}
   {action "/search"}
   {fields
    [text:0x3fd6990db510 type: text name: search_terms value: ]
    [text:0x3fd6990db36c type: text name: geo_location_terms value: Dallas, TX]
    [hidden:0x3fd6990db13c type: hidden name: tracks value: true]}
   {radiobuttons}
   {checkboxes}
   {file_uploads}
   {buttons [button:0x3fd6990df87c type: submit name:  value: Search]}>}>
4

2 に答える 2

1

フォームにはaction属性があります。次の情報を指定します。

page.form_with(:action => '/search') do |form|
  ...
end
于 2014-02-15T16:48:34.233 に答える
0

表示される番号で移動できます。

page.forms[0]

実際、それは最初のものなので (そして他の多くの「最初の」ことと同様に)、次のことを実行できます。

page.form
于 2014-02-15T22:03:38.260 に答える