1. 生产随机数列
第一种方法:
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("kai",dtlocalsheet)="nanjing"
datatable.value("num")只在global形式下的一种省略形式;完整形式是datatable.value("num",dtlocalsheet)
——取得某一具体行的值:
datatable.setcurrentrow(n);
msgbox(datatable.getsheet("global").getparameter("kai").Rawvalue)
或者
kk=datatable.Rawvalue("kai","action1")
-------------
for i=1 to 3
DataTable.SetCurrentRow(i)
DataTable.Value("A","Global")=I //DataTable.SetNextRow
next
-------------
——在run-time期间,添加一个action和参数
kk=datatable.addsheet("name").addparameter("kai","ddd"). name'/value
6.
with dialog("name") //可以省好多代码,看着也简洁
content=.wintreeview
end with
7.
wintreeview.select(item) (根是0,列表第一个也是0)
wintreeview.getcontent
wintreeview.getitem(整行)+";"+
winlistview.getitem(行中的第一个字符段)
wincheckbox("").set"off"'/on
8. 数据库检查点:
sub getdata
set con=createobject("adodb.connection")
con.open("descrīption=mod;driver=sqlserver;server=hp\sqlserver;uid=sa;"&_
"pwd=11111;APP=qtp;WSID=hp;database=MOD31"
//用sqlserver方式
Con.open "DRIVER = {Microsoft Access Driver (*.mdb)};DBQ=D:\Testdb.mdb"
//用access方式
set record=createobject("adodb.recordset")
sql="select * from m3_program"
//选择具体满足一条件的:sql="select* from m3_program where "
record.open sql,con
if(record("p_name")="kai") then
num=num+1;
end if
if(not record.eof) then
record.movenext
msgbox("p_name")
end if
record.close
set record=nothing
con.close
set con=nothing
end sub //如果没有查到内容,在结果中不会报错,也不会弹出窗口
9.
vbcr----chr(13)回车符
vblf----chr(10)换行符
vbcrlf----chr(13)+chr(10)结合
10. 从stel run has two ways
11. 对于时间,日期等的格式检查(一种是正则表达式,另一种是输出对比,如果不好对比,用mid截取一部分对比)
12. 对于一些列表框或树结构,如果发生结点名称发生变化,此时如果报没有彼配的对象,此时可以把更改后面的名称如_2
13. 对于动态变化的对象,要分清是对像还是属性;对于属性可以用gettoproperty("ddd");得到,而对于由于动态无法识别对像可以用描述性脚本,如:
Set ōbject= Descrīption.Create()
Object("regexpwndclass").Value="HtmlButton"
Object("regexpwndtitle").Value="登陆"
browser("ss").page("a").button(Object).click
14. 对于属性是变化的,有时可以把该属性从识别对象里删除
15. 从系统的文件中获取信息及删除文件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)
msgbox(f.datecreated)
f.name:f.size:f.type
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 infc
select case f1.name
case"kai.mpg","she.mpg","dd.mp3"
end select
next
end function
16. 四舍五入可以在后面+0.5,进行自动解决
17. y=-------waitproperty("visible",true,10000)
18.
on error resume next
on error goto o
19. window("").wintreeview("systreeview32").type micctrldown+"p"+micctrlup
20. 定义数组name=array(1,2,"aa","bb");name(0)=1
21. 进行日期YYYY-MM-DD的格式检查:
Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches //Create variable.
Set regEx = New RegExp //Create a regular expression.
regEx.Pattern = patrn //Set pattern.