网页自动填表、自动登录模拟操作代码汇总
一、创建简单的WEB窗口(winform)
web.form是一个类,其构造函数可以在现有窗口对象中插入浏览器控件.
窗口对象可以是一个win.form对象,也可以是窗体上的控件,例如static控件.
现版默认代码:
第二个参数可以使用一个或多个_UIFLAG_ 前缀的常量自定义外观,多个常量之间用位或操作符( | ) 连接.
第三个参数可使用_DLCTL_前缀的常量以控制下载行为,多个常量之间用位或操作符( | ) 连接.
具体参数参阅帮助
旧版默认代码:
例:在static控件显示WEB窗体浏览
*让自己的程序窗口最大化最小化,其他程序可加上窗口句柄。
::ShowWindow(winform.hwnd,0x3/*_SW_MAXIMIZE*/)//最大化
::ShowWindow(winform.hwnd,0x6/*_SW_MINIMIZE*/)//最小化
关于最大化,最小化,winform已经提供了很多函数来支持。
*禁止点击链接在新窗口打开
a.
//在wb.wait()后 添加下面代码,在所属的窗口禁止弹出
for(k,ele in wb.eachLinks()){
ele.target = "_self"
}
b. 写在事件里,这样每次打开页面就自动修改,不需要写在wb.wait后面了.全局开始禁止弹出窗口
二、自动模拟登录
1.自动填表
(1)简单,没框架
/*寻找所属节点的属性,然后输入新的属性值
当知道属性ID或NAME时可采用下面语句*/
ele=wb.waitEle("_"//双引号里填属性ID或name)
ele.value = _//修改属性默认值;
ele.fireEvent("_"//当有事件执行函数时需事件发生器,如onchange onsubit)
web.form是一个类,其构造函数可以在现有窗口对象中插入浏览器控件.
窗口对象可以是一个win.form对象,也可以是窗体上的控件,例如static控件.
现版默认代码:
//创建web窗体 var wb = web.form( winform ,//可输入_UIFLAG_ 前缀的常量自定义外观 ,//可输入_DLCTL_ 前缀的常量以控制下载行为 ); |
第三个参数可使用_DLCTL_前缀的常量以控制下载行为,多个常量之间用位或操作符( | ) 连接.
具体参数参阅帮助
旧版默认代码:
//创建web窗体 var wb = web.form(winform.static,web/*无边框*/ /*,web.DLCTL_NO_SCRIPTS禁用脚本*/ ) |
//创建web窗体(没最大小化按钮) wb = web.form(webform) |
例:在static控件显示WEB窗体浏览
//创建web窗体 var wb = web.form( winform.static //这是winform窗体上的一个静态文本框控件 ,0x4/*_UIFLAG_NO3DBORDER*/ | 0x8/*_UIFLAG_SCROLL_NO*/ //禁用边框,禁用滚动条 ,0x10/*_DLCTL_DLIMAGES*/ | 0x40000000/*_DLCTL_SILENT*/ //允许下载图片,但是禁用组件对话框、脚本错误对话框等 ); |
*让自己的程序窗口最大化最小化,其他程序可加上窗口句柄。
::ShowWindow(winform.hwnd,0x3/*_SW_MAXIMIZE*/)//最大化
::ShowWindow(winform.hwnd,0x6/*_SW_MINIMIZE*/)//最小化
关于最大化,最小化,winform已经提供了很多函数来支持。
//点击最大化,但是这个函数如果发现最大化会还原窗口,并返回一个值表示当前是否最大化 |
*禁止点击链接在新窗口打开
a.
//在wb.wait()后 添加下面代码,在所属的窗口禁止弹出
for(k,ele in wb.eachLinks()){
ele.target = "_self"
}
b. 写在事件里,这样每次打开页面就自动修改,不需要写在wb.wait后面了.全局开始禁止弹出窗口
wb.DocumentComplete=function( pDisp, url) { /*当整个文档完成时触发,刷新页面不触发*/ for(k,ele in wb.eachLinks()){ ele.target = "_self" } } //打开目标网站 wb.go("http://www.ecranesoft.com/") |
//打开一个网址 wb.go(网址,自定义http请求头,目标窗口="_self") |
二、自动模拟登录
1.自动填表
(1)简单,没框架
/*寻找所属节点的属性,然后输入新的属性值
当知道属性ID或NAME时可采用下面语句*/
ele=wb.waitEle("_"//双引号里填属性ID或name)
ele.value = _//修改属性默认值;
ele.fireEvent("_"//当有事件执行函数时需事件发生器,如onchange onsubit)
说明:
ele = wb.getEle( HTML节点的ID名name, 框架名 ) 调用wb.getEle之前必须调用 wb.wait() 等待网页下载完毕. 而使用 wb.waitEle() 则实现等待该节点下载并返回该节点的功能,而无须等待整个网页下载完. |
(2)多个属性名相同
tele = wb.getEles( HTML节点的name属性, 框架名 ) tele(1).setAttribute("属性名字", "修改第一个节点属性值") |
可以通过第二个参数指定框架窗口,该参数可以省略.
2.自动点击及提交表单
ele.form.submit()//自动提交表单
或
for(k,ele in wb.eachAll( "button") ){ ele.click(); }; |
-
-
.