我必须提交表单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>
答案 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>
我没试过那个,但你可以尝试一下......只是一个想法虽然因为我没有尝试过。
如果错误,请更正我的代码。(对于其他观众)。