4

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

该表单具有以下 4 个输入:

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

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

我考虑过使用 AutoHotKey,但找不到任何方法来选择 Web 元素并填写它们的值。

<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>
4

2 回答 2

3

您将需要 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页面可以完成。

于 2013-07-03T18:33:04.057 回答
-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>

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

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

于 2013-07-02T16:51:23.327 回答