我在同一个根网址中有多个从“form1”到“form5”的表单,例如222.111.111.100/Form/。在第一页中,这意味着
http://222.111.111.100/Form/B.do?a=first
响应http请求中的表单将以一般样式写入,如下所示:
<form name="form1" action="B.do?a=first" method="post" >
<input name="sure" type="checkbox" id="sure" value="" />
<input name="submit" type="submit" value="NextStep" />
</form>
我需要逐个填写表单,因为前一个表单会对下一个表单产生影响。并且要明确,在此form1之后,url将跟踪到:
http://222.111.111.100/Form/B.do?a=second
问题是,当我使用cUrl
获取内容,然后javascript处理输入复选框或提交/ nextstep按钮时,每个表单的document.forms[0].submit()
不起作用。即使我传递到第二页,似乎全局变量还没有传递到下一页。
答案 0 :(得分:0)
我不确定我是否理解你的情况,但我会说:Javascript只是客户端,因此如果您更改页面或重新加载,js代码可用的变量将恢复到初始值。
因此,如果您在服务器端拥有控制权,则可以使页面B.do?a=first
返回(例如)json数据字符串,您的js可以使用该字符串填充下一个表单。
答案 1 :(得分:0)
有很多方法可以解决您的问题,我很高兴您了解Selenium。 Selenium允许您自动化浏览器,它主要用于自动化Web应用程序以进行测试。
否则它将完全重新创建JavaScript调用,但这不允许使用JavaScript本身,因为显然你想要。
Selenium:http://www.seleniumhq.org/