2011-06-09 4 views
3

Je suis assez nouveau à l'aide de mécanisation, et même Ruby en général. Je l'utilise pour naviguer sur un site qui a mal malformé HTML. En particulier, j'ai une page qui a des cases à cocher en dehors d'un formulaire (Malgré cela, le serveur gère les requêtes correctement).Analyse HTML malformé avec Ruby Mechanize

Je voudrais cocher ces cases et cliquer sur un bouton de soumission (également en dehors du formulaire). Cependant, je ne peux pas utiliser Form.checkbox_with parce que je n'ai pas un objet Form, je n'ai que le Page. Je peux localiser la case sur la page avec page.search("//input[@name='silly-checkbox']"), mais si je comprends bien, je ne peux pas le vérifier après (parce que Nokogiri est seulement utilisé pour le grattage et ne suit pas l'état). S'il vous plaît laissez-moi savoir si c'est incorrect.

Ligne de fond: Comment puis-je obtenir un objet Mechanize::Form::Checkbox lorsque ma case n'est pas dans un formulaire?

Répondre

0

Vous pouvez charger manuellement la page distante à l'aide de Nokogiri, puis corriger le balisage (c.-à-d. Rechercher les cases à l'extérieur des formulaires et les placer) et construire des classes Mechanize par vous-même à partir du code HTML.

0

Vous pouvez modifier votre formulaire en supprimant et en fusionnant de nouveaux champs.

form.add_field!('gender', 'male') 

rdoc here