2010-01-21 12 views
1

Scénario: Je suis connecté à un site Web, a gagné les cookies etc, obtenu à une page web particulière avec une forme + champs cachés. Je veux maintenant être en mesure de créer mon propre message http avec mes propres données de formulaire cachées au lieu de ce qui est sur la page Web et de vérifier la réponse au lieu d'utiliser celui sur la page Web.demande Manuel POST

Raison: Test sur des données préexistantes (je sais, je sais) qui pourraient être différentes sur chaque environnement, donc pas de manière prévisible de l'utiliser. Nous avons besoin d'une solution de contournement.

Est-il possible de le faire sans modifier manuellement la forme actuelle et que la soumission? Sent un peu "hacky".

Idéalement, je voudrais dire quelque chose comme:

browser.post 'url', 'field1 = test & field2 = abc'

+0

Je recommande que vous publiez ceci à http://groups.google.com/group/watir-general/ aussi, les utilisateurs 1800+ Watir sont là. –

Répondre

3

Je changerais probablement mécaniser muck autour du protocole niveau. Quelque chose comme ceci ajouté à votre script

b = WWW::Mechanize.new 
b.get('http://yoursite.com/current_page') do |page| 
# Submit the login form 
my_form = page.form_with(:action => '/post/url') do |f| 
    f.form_loginname = 'tim' 
    f.form_pw   = 'password' 
end.click_button 
end 
+0

idée soignée, donc en affect vous créez un nouveau formulaire sur la page? Ou modifiez-vous un formulaire existant et modifiez-vous l'action? –

+0

Ce dernier, l'édition de la forme actuelle sur la page mais la conduite à travers ce Mechanize (et donc le contrôle des données de formulaire post) – Tim

+0

Vous êtes de passage de la session Watir plus de mécaniser? Ou suggérez-vous d'utiliser Mechanize au lieu de Watir? – singularity