2010-01-21 71 views
1

场景:我已登录到网站,获取cookie等,到一个具有表单+隐藏字段的特定网页。我现在希望能够使用自己的隐藏表单数据创建自己的http帖子,而不是使用网页上的内容,并验证响应而不是使用网页上的内容。手动POST请求

原因是:针对预先存在的数据进行测试(我知道,我知道),这些数据在每个环境中可能不同,因此没有可预测的方式来使用它。我们需要一个解决方法。

有没有办法做到这一点,而无需手动编辑现有的表单并提交?感觉有点'哈克'。

理想情况下,我想这样说:

browser.post“URL”,“字段1 =测试&场2 = ABC”

+0

我会建议您发布此http://groups.google.com/group/watir-general/太,1800+ Watir用户在那里。 – 2010-01-22 12:47:36

回答

3

我可能会切换到机械化在协议渣土周围水平。类似这样的东西添加到您的脚本

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

整洁的想法,所以在影响你在页面上创建一个新的形式?或者你正在编辑一个现有的表单并更改该操作? – 2010-01-23 18:49:32

+0

后者编辑页面上的现有表单,但是通过机械化操作(并因此控制表单数据) – Tim 2010-01-28 21:16:19

+0

您是否将Watir会话传递给机械化?或者你是否建议使用机械化而不是Watir? – singularity 2016-02-26 14:16:04