QTP调用外部api
'例1:运行一个exe文件
Extern.WinExec "d:\1.exe ", 1 |
'例2:Beep
'它让我的机器在办公室里狂响不止!
Extern.Declare micLong, "Beep", "kernel32.dll", "Beep", micLong Extern.Beep 500 |
QTP 获取对话框中的信息
如果弹出对话框就获取上面提示信息并与表中的信息对比,不统一证明弹出的提示出错,主要用来验证
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)取一部份特征提示信息进行验证,这样我想可以节省处理时间,又可以避免长度以及空格等字符的处理
QTP获取对象属性名称用法:
GetRoProperty----从应用程序界面上获取对象属性(即,是脚本运行时,获取的对象动态属性值)
例如:获取对象库中index属性值,似乎只能用GetToProperty,因为应用程序界面上对象没有该属性,只是QTP为识别该对象创立的描述属性;
GetToproperty----从对象库中描述对象的属性,静态值
GetToProperties----获取用于标识对象的属性集;对于这个集合,有count等属性方法
QTP在执行过程中往excel中写入值
DataTable.GlobalSheet.AddParameter "Name", "liuxuedong" |
取datatable特定行的数据可以这样使用
DataTable.GetSheet("Action1").GetParameter("test\").ValueByRow(1) |