JS写的自动登录、自动提交的代码

JS不仅可以在浏览器端受安全限制的执行,实现绚丽的网页特效,还可以在服务器端写ASP,实现比VBS功能更强大,更容易开发的WEB程序。但是,很多人不知道的是,JS还可以写应用程序,实现对本地计算机的控制,其中一个很常见的任务就是自动登录和自动注册。通常JS脚本适合与无人看守的自动化任务,但是结合InternetExplorer.Application我们就可以结合IE的可视化界面和本地JS应用程序强大功能了。

在浏览器里执行JS,通常会收到浏览器的安全限制,例如不能读取本地文件系统,读取数据库,不能跨域访问。桌面执行的JS却拥有和普通应用程序一样的权限。但是,JS程序更简单,更容易开发。下面就以自动提交表单为例。

//创建一个IE窗口
var ie = new ActiveXObject("InternetExplorer.Application");
//显示
ie.visible = true;

//导向http://www.scriptlover.com/wish/input.asp
ie.navigate("http://www.baidu.com/gaoji/advanced.html");
//等待加载完毕
while(ie.busy){WScript.sleep(100);}

//获得window和document和表单的引用
var document = ie.document;
var window = document.parentWindow;
var form = document.forms[0];

//接下来向表单填数据,这里的数据是硬编码到程序里,你完全可以用JS读取SQL SERVER、ACCESS甚至以数据库形式读取EXCEL文件的内容
//关于如何确定表单的域的名称,最好的方法是用FIREFOX的FIREBUG插件

form.q1.value = "漂泊云间";
//暂停,以便看到效果
WScript.sleep(1000);

//rn是下拉列表,我们随机选取一个
form.rn.value = form.rn.options[Math.floor(Math.random() * form.rn.options.length)].value;
//暂停,以便看到效果
WScript.sleep(1000);

//lm依然
form.lm.value = form.lm.options[Math.floor(Math.random() * form.lm.options.length)].value;
//暂停,以便看到效果
WScript.sleep(1000);

//ct是单选框,随便选中一个
form.ct[Math.floor(Math.random() * form.ct.length)].checked = 1;
//暂停,以便看到效果
WScript.sleep(1000);

//ft是下拉列表,我们随机选取一个
form.ft.value = form.ft.options[Math.floor(Math.random() * form.ft.options.length)].value;
//暂停,以便看到效果
WScript.sleep(1000);

//q5依然
form.q5[Math.floor(Math.random() * form.q5.length)].checked = 1;
//暂停,以便看到效果
WScript.sleep(1000);


//改成当前页提交
form.target = "_self";
//暂停,以便看到效果
WScript.sleep(2000);

//提交,有两种办法,form.submit和提交按钮的click方法
form.elements[1].click();

下面是最后一步了,保存为JS文件例如1.js,然后执行。默认是用WScript.exe来执行。如果你更改了JS的文件关联,只好用命令行了。cd到1.js所在的目录,然后执行 wscript.exe 1.js

你就可以看到效果了。

3 Replies to “JS写的自动登录、自动提交的代码

  1. 这个方法还可以,只不过JS不能监听啊,当网页提交后再做后续的操作,就没办法了好像

  2. 楼主,运行提示:
    ‘document.parent’为空或不是对象。

    ‘document.forms’为空或不是对象。
    代码:800A138F

发表评论

电子邮件地址不会被公开。

*