2010-08-13 3 views
0

http://casesearch.courts.state.md.us/inquiry/inquirySearchParam.jisPourquoi les champs arides ne sont-ils pas détectés dans Ruby 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 

Le code ci-dessus présente le discalimer sur le site ci-dessus. Maintenant, après avoir soumis la note de mise en garde, Lorsque j'utilise le code suivant ..

p page.forms[2] 

, il doit envoyer tous les domaines, y compris le prénom, le nom et toutes les listes [Comme vous pouvez le voir sur le site] mais il est ne pas le faire. Au lieu de cela, je viens d'obtenir des informations sur les zones de texte.

Quelqu'un peut-il me dire pourquoi? Malgré le form[2] étant le formulaire spécifique sur cette page qui contient la plupart des champs?

Répondre

0

Il semble que les formulaires [3] contiennent l'information que vous recherchez. Commencez-vous à compter à 1 au lieu de 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= 
+0

Aucun mec, ce n'est pas le cas. Les champs dans la forme [3] sont complètement différents de ce que je excepté. Mais merci de chercher le problème. Je pense que le problème est avec HTML valide/invalide. – Shubham

+0

Les outils de développement Chrome affichent une erreur sur la page associée au formulaire. "

ne peut pas agir en tant que conteneur à l'intérieur sans perturber la table.Les enfants du seront placés à l'intérieur du
à la place". – Future429

Questions connexes