创建填写表单值和提交的脚本

时间:2013-07-02 16:35:08

标签: html post autohotkey

我必须提交表单1000次才能为网站创建对象。他们让我们有机会这样做,但没有简单的方法来发布数据而不使用他们的网站表格。

表单有以下4个输入:

Textbox name = login
Textbox name = password
select name = region (values from 1 to 2000)
button name = submit

有没有办法创建一个脚本,在我的浏览器中选择这些元素并相应地设置值?

我考虑过使用AutoHotKey,但找不到任何方法来选择网页元素并填写其值。

<form method="post" autocomplete="off" action="index.php?authorized=1">

<input name="login" maxlength="12" type="text">

<input name="password" value="" maxlength="30" type="password">

<select name="local_id">
    <option value="1">Washington D.C.</option>
    <option value="2">Chicago</option>
    ...(many more that i removed)
</select>

<input name="login_id" value="223" type="hidden">
<input name="dss" value="1" type="hidden">
<input name="action" value="createUser" type="hidden">
<input name="submit" value="Submit" type="submit">

</form>

2 个答案:

答案 0 :(得分:2)

您需要AutoHotkey_L(最近更新的版本),然后您可以使用Internet Explorer的COM接口。它甚至可以填写表格,而不会显示在屏幕上。

#NoEnv
#SingleInstance Force

; Settings
path := "http://domain.tld/path/to/form.html"

; Connect to IE
wb := ComObjCreate("InternetExplorer.Application")
wb.Visible := false

; Load the page specified
Load(wb, path)

; Find the first form on the page (put 1 for the second, 2 for the third, etc.)
Form := wb.Document.forms[0]

; Fill in data and submit it
Form["login"].value := "User"
Form["password"].value := "sUp3rS3cUr3"
Form["local_id"].value := "2"
Form["submit"].click()
return

Load(wb, what) {
    wb.Navigate(what)
    while wb.Busy
        continue
    wb.Visible := true
}

然后,您可以再次指示您的脚本Load初始页面,然后填写更多数据,然后重新提交。只需在其中放置while wb.Busy循环即可完成php页面。

答案 1 :(得分:-1)

<html>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script> //for jquery
<head>
<script>
$(function(){
$('form').submit(function()
{
for (a=0;a<1000;a++){
$(this).submit();
};
});
});
</script>
</head>
<body>
<form>
<input type='text' name='login' /><br />
<input type='password' name='password' /><br />
<select><script>$(function(){ for(a=0;a<=2000;a++){ $('select').prepend("<option>"+a+"</option>")}});</script>
</select>
<input type='submit' name='submit' />
</form>
</body>
</html>

我没试过那个,但你可以尝试一下......只是一个想法虽然因为我没有尝试过。

如果错误,请更正我的代码。(对于其他观众)。