第一种方法
randomize'更新反回的数据 funcation rand(k,n) n="int((k-1)*rnd+1) rand=n end funcation |
第二种方法
n="randomnumber.value(1,255) |
2 当运行到表中的某一行,自动导出表中的所有数据
row=datatable.getcurrentrow if row="5" then datatable.export("d:\data.xml") end if |
3 参数化密码
webedit("txtpass").setsecure"sdsdf...."
如果参数化密码,可以直接在数据表中写入未加密的密码,它会自动识别,即不用把setsecure改为set
4 如果弹出对话框就获取上面提示信息并与表中的信息对比,不统一证明弹出的提示出错,主要用来验证
if browser("web_name").dialog("dialog_name").exist(1) then'如果不出现="false error_message=browser("web_name").dialog("diaglog_name").static("用户密码错误!".getRoproperty("text") if error_message<>(datatable.value("error_info"))then msgbox(error_message) end if browser("web_name").dialog("diaglog_name").close end if |
这里我总结了两点技巧:
一是:对于dialog中,虽然提示信息对象名称是"用户密码错误",但如果信息对象名称是“该用户不存在”,不用更改会自动识别,我想主要是录制第一遍时,“用户密码错误”只是让运行时能找到这个控制,而不管它是什么内容,因为在对象仓库中,text不是决定该对象的属性
二是:如果对于提示信息比较长的,可以用mid(error_message,n,m)取一部份特征提示信息进行验证,这样我想可以节省处理时间,又可以避免长度以及空格等字符的处理
5 datatable.value("num")只在global形式下的一种省略形式;完整形式是:
datatable.value("num",dtlocalsheet) -----向某一列的单元格赋值: datatable.value("column_name",dtlocalsheet)="nanjing" -----取得某一行具体值: datatable.setcurrentrow(n) msgbox(datatable.getsheet("global").getparameter("column_name").Rawvalue) 或者kk=datatable.Rawvalue("column_name","action1") ----在run-time时,动态添加表格与数据 kk=datatable.addsheet("sheet_name").addparameter("column_name","value").name; |
7 wintreeview一些操作
选择一个条目:wintreeview.select(item)'根是0
根的名称:wintreeview.getitem(0)
sub database_check set con="createobject(""adodb.connection") con.open "Descrīption="IBM_ODBC;DRIVER=SQL" Server;SERVER="IBM;UID=sa;""&_ "PWD="123456;APP=Quick"TestPro;WSID="IBM;DATABASE=IBM_table"" 'access方式:con.open "DRIVER="{Microsoft" Access Driver (*.mdb)};DBQ="d:\test.mdb"" 'Orocle方式:con.open "DRIVER="{Oracle" in OraHome92};SERVER="CESHI;UID=CND_TEST;PWD=CND;DBQ=CESHI;DBA=W;APA=T; EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=Lo;BA M=IfAllSuccessful;MTS=F;MDI=Me;CSR=F;FWC=F;PFC=10;TLO=O;"" |
9 换行符
vbcr----chr(13)回车符// vblf----chr(10)换行符 vbcrlf----chr(13)+chr(10)结合//type(chr(13)就相当于按了一上键盘上的enter |
10 Run from step有两种方式:
在Keyword View模式会从本步骤运行到所有action结束
在expert view模式仅会将本action运行结束
11 由于对象属性原因,无法识别对象
-----对于对象属性是变化的,可以参数化/或者用正则表达式
-----报匹配多个对象错误,可以spy查看对象,添加一个该对象另一个唯一标识属性
-----有时可以删除对象的变化的属性来解决识别问题
------对于多个完全相同的对象,可以采用添加index,location,createtime等特殊属性来识别
(index:按照程序源码,绘制对象的先后标识对象,所以与其它相同对象是相互依赖,当其它对象发生
变化后,原先的所有对象index属性要发生变化,开始是0;如index:="0; location:根据对象的位置进行确定,从上到下,从左到右;
CreateTime:按照对象被浏览器打开的先后标识对象)
------另外换一种思维方式,采取等效的方法;比如用键盘代替鼠标或用操作系统本身特性去解决问题
12 对系统文件的操作
-------从系统的文件中获取信息及删除文件 get_file_infor("c:\she.mpg") function get_file_infor(url) dim fso,f set fso="createobject(""scrīpting.filesystemobject") set f="fso.getfile(url)" f.name:f.size:f.type:f.datacreated'///获取文件信息 fso.deletefile(url)'/////删除文件 end function --------获取文件夹里所有文件信息 get_folder_infor("c:\kai") function get_folder_infor(folder) dim fso,f,f1,n set fso="createobject(""scrīpting,filesystemobject") set f="fso.getfolder(folder) set fc="f.files for each f1 in fc select case f1.name case"kai.mpg","she.mpg","dd.mp3"'//检查文件夹里是否含有这些文件 end select next end function |
13 等待某个对象出现方法
y="......waitproperty(""visible",true,10000) |