Les formulaires en ruby avec mechanize … tout un programme .. C’est la raison qui m’a poussé à faire une petite intro sur le sujet.
Vous allez trouver ici comment lister de manière simple les formulaires contenus dans une url, ainsi que chacun des champs de ces formulaires.
Je décrirais encore comment choisir un formulaire à partir d’une de ses spécificités.
La classe est concerné est la suivant : Mechanize::Form
et vous pourrez trouver toutes les informations qui vous seront nécessaire par ici :
http://mechanize.rubyforge.org/Mechanize/Form.html
création classique de l’instance new de mechanize et récupération de la page reddit.com :
@agent = Mechanize.new page = @agent.get('http://www.reddit.com/login')
on peut trouver un formulaire spécifique dans une page à partir de son champ action, de son champ nom, ou encore à partir de toute autre de ses caractéristiques :
form = page.form_with(:action => %r{post/login})
voici un petit bout de code qui va lister les formulaires contenus dans une page donnée (pratique quand on désire en cibler un), ainsi que tous les champs de chacun des formulaires trouver :
begin page = @post_agent.get(url) if not page.nil? && page.forms.length > 0 page.forms.each { |ff| ff.fields.each { |f| puts f.name } } end rescue Mechanize::ResponseCodeError raise e end
J’espère que ces quelques lignes vous auront donné envie d’approfondir un peu vos recherches sur le sujet.