Почему в Ruby Mechanize не обнаруживаются поля? - PullRequest
0 голосов
/ 13 августа 2010

http://casesearch.courts.state.md.us/inquiry/inquirySearchParam.jis

agent   = Mechanize.new
form    = agent.get("http://casesearch.courts.state.md.us/inquiry/inquiry-index.jsp").forms.first
form.checkbox_with(:name => /disclaimer/).check
page    = form.submit

Приведенный выше код отправляет дисквалификатор на вышеуказанный веб-сайт. Теперь после отправки примечания об отказе от ответственности, когда я использую следующий код ..

p page.forms[2]

Должны быть выведены все поля, включая имя, фамилию и все списки [как вы можете видеть на сайте], но это не так. Вместо этого я просто получаю информацию о текстовых полях.

Может кто-нибудь сказать мне, почему? Несмотря на то, что form[2] является конкретной формой на этой странице, которая содержит большинство полей?

1 Ответ

0 голосов
/ 14 августа 2010

Похоже, что формы [3] содержат информацию, которую вы ищете. Вы начинаете считать с 1 вместо 0?

require 'rubygems'
require 'mechanize'

agent   = Mechanize.new
form    = agent.get("http://casesearch.courts.state.md.us/inquiry/inquiry-  index.jsp").forms.first
form.checkbox_with(:name => /disclaimer/).check
page    = form.submit

p page.forms.count  
# out puts 4

p page.forms[3] 
# outputs what I think you need


#<Mechanize::Form
 {name "inquiryFormByCaseNum"}
 {method "POST"}
 {action "/inquiry/inquiryByCaseNum.jis"}
 {fields
  #<Mechanize::Form::Text:0x000001011cd020
  @name="caseId",
  @node=
...