我目前正在尝试编写一个脚本来通过 shell 脚本更改网页上的一些参数。我可以毫无问题地更改文本框中的值,但我似乎无法弄清楚如何“按下”“应用”按钮。
这就是我更改值的方法,正如您所看到的,我需要最后按一下“应用”按钮。
setJitterDelay()
{
rate=${1}
if [ "${rate}" == "low" ]; then
((htmlJitterNegDelta = 5))
((htmlJitterPosDelta = 5))
((htmlJitterDelayMax = 10))
jDelta=5
else
if [ "${rate}" == "med" ]; then
((htmlJitterNegDelta = 25))
((htmlJitterPosDelta = 25))
((htmlJitterDelayMax = 50))
jDelta=25
else
if [ "${rate}" == "high" ]; then
((htmlJitterNegDelta = 50))
((htmlJitterPosDelta = 50))
((htmlJitterDelayMax = 100))
jDelta=50
else
echo "error: low, med, high not selected! Skipped..."
return
fi
fi
fi
### APPLY BUTTON
}
我使用 Firebug 来了解我必须更改哪些值,“应用”按钮显示如下:
<input id="appFlowBw" type="submit" value="Apply" name="appFlowBw">
<form action="http://wanemu/XGEM_REV_BW_FLOW?blade=1&profile=0" method="post" name="rev_bw_form"></form>
输入位于源代码中的表单内:
<TR>
<TD colspan="8"></TD>
<TD><INPUT type="submit" name="appFlowBw" id="appFlowBw" value="Apply" disabled></TD>
</FORM>
但我不知道现在如何“按下”这个按钮。
我希望你能理解我的问题并能提供帮助。
//编辑:添加表单
答案1
按此按钮只会导致浏览器向服务器提交 POST 请求,以及相应表单的所有值作为请求正文中的有效负载。
因此,如果您希望在 shell 脚本中重现此单击的效果,您需要做的是以 POST 请求中传递的格式构建数据,然后向服务器提交 POST 以模拟按下按钮。
使用 来做到这一点应该很容易curl
,就像这里描述的那样:执行 POST 请求的 cURL 命令行语法是什么?
例子:
curl --data "param1=value1¶m2=value2" http://example.com/resource.cgi