web网页模拟自动化操作代码汇总

分类:

一、创建简单的WEB窗口(winform)

web.form是一个类,其构造函数可以在现有窗口对象中插入浏览器控件.
窗口对象可以是一个win.form对象,也可以是窗体上的控件,例如static控件.

现版默认代码:

//创建web窗体
var wb = web.form( winform 
    ,//可输入_UIFLAG_ 前缀的常量自定义外观
    ,//可输入_DLCTL_ 前缀的常量以控制下载行为
    );


第二个参数可以使用一个或多个 _UIFLAG_ 前缀的常量自定义外观,多个常量之间用位或操作符( | ) 连接.
第三个参数可使用_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*/)//最小化


*禁止点击链接在新窗口打开

//在wb.wait()后 添加下面代码,在所属的窗口禁止弹出
for(k,ele in wb.eachLinks()){
    
    ele.target = 
"_self"
}

写在事件里,这样每次打开页面就自动修改,不需要写在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("属性名字", "修改第一个节点属性值")

该函数返回网页上所有name属性相同的同名节点.返回值为一个com数组.注意com数组使用()括号读取成员而不是使用索引操作符[]
可以通过第二个参数指定框架窗口,该参数可以省略.

3.自动点击及提交表单

ele.form.submit()//自动提交表单

for(k,ele in wb.eachAll( "button") ){

 ele.click();

};



备注:
其实按钮有3种类型,
一种是 submit(提交按钮),点击这种按钮一般只需要提交其所在表单;
第二种是 button(普通按钮),这种按钮一般都有 onclick 事件,直接执行里面的事件即可(如一个按钮 οnclick="refresh()",只要去执行 refresh() 就可以了);
还有一种按钮是 reset(重置按钮),同样可以调用其所在表单的 reset() 函数。
关于节点的查找一般有这些方式:
1、有id型。id一般是一个网页控件独一无二的标志,一个id唯一对应一个控件。对于有id的控件,一般用 getElementById 来获取该控件,如:getElementById("mybutton"),也就是快手中的 getEle 吧。
2、有name型。name可以被重复,也就是说两个控件的name可能相同,这个时候可以用 getElementsByName 来获取该控件,如:getElementsByName("mybutton"),getElementsByName返回的是一个集合,也就是说所有name为mybutton的控件的集合。这个时候我们可以通过数组方式来访问每一个控件,如 getElementsByName("mybutton")(0) 是第一个,(1)是第二个,以此类推。在快手中,getEle 中如果填写的是name,则默认返回第一个(索引为0)的控件。快手可以用eachAll("_"//节点标签)
3、无id、无name型。这种比较麻烦,有很多方式来获取。首先,标签名(如 a、div、span、li)比较唯一的可以用 getElementsByTagName 获取,如:getElementsByTagName("li"),将返回li的所有集合,同样用数组方式访问。其次与某有id或有name属性的控件有父子关系的,也可以用 childNodes、parentElement 获取,如 getElementById("submit").parentElement 可以获取到 submit 按钮所在的 form(或 div、label),getElementById("formID").childNodes 可以获取到指定 form 内所有的子控件。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值