QTP常用函数大全.docx
- 文档编号:6346957
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:22
- 大小:128.14KB
QTP常用函数大全.docx
《QTP常用函数大全.docx》由会员分享,可在线阅读,更多相关《QTP常用函数大全.docx(22页珍藏版)》请在冰豆网上搜索。
QTP常用函数大全
Qtp
1.富文本框对象的识别代码
Browser("欢迎登录北京市城乡建设局办公自动化系统!
").Page("欢迎登录北京市城乡建设局办公自动化系统!
").Frame("Frame").WebElement("WebElement").Object.insertAdjacentText"afterBegin","你想要大是大非写的东西"
2.获取页面所有多选框(其他对象同理):
DimoWebChkDesc
SetoWebChkDesc=Description.Create
oWebChkDesc("micclass").value="WebCheckBox"
oWebChkDesc("htmltag").Value="INPUT"
'获取所有匹配描述的对象
DimallCheck,oCheckBox
SetallCheck=Browser("WebTours").Page("WebTours").ChildObjects(oWebChkDesc)
Fori=0toallCheck.Count-1
SetoCheckBox=allCheck(i)
oCheckBox.Set"ON"
Next
3.设置对象
Setobjecta=Browser("欢迎登录北京市城乡建设局办公自动化系统!
").Page("登录").Image("login_input")
4.相对路径
Browser("登录").Dialog("选择文件").WinEdit("文件名(N):
").SetPathFinder.Locate("..\党组审批单\中标通知书33.doc")'
5.键盘操作
setos=CreateoBject("wscript.shell")
wait
(2)
os.sendkeys"{tab}"
wait
(2)
os.sendkeys"{tab}"
wait
(2)
os.sendkeys"{tab}"
wait
(2)
os.sendkeys""
6.QTP10的破解方法与之前版本类似!
1、从HP官方网上下载QTP10.0并安装。
2、安装成功后,在C:
\ProgramFiles\CommonFiles\MercuryInteractive下创建文件夹:
LicenseManager
3、将破解工具mgn-mqt82.exe复制到C:
\ProgramFiles\HP\QuickTestProfessional\bin下。
4、运行mgn-mqt82.exe,ok,关闭。
5、用记事本打开LicenseManager下的lservrc文件,将第一行#前的代码Copy。
6、将代码复制到license向导中的license输入的地方,点击完成就可以了。
恭喜成功了!
需要安装:
QTP_00626.exe才能调试
7.安装qtp10的补丁QTP_00626.exe才能进行调试工具debugger的安装
8.函数:
Functionlogin(username,password)
Browser("欢迎登录北京市城乡建设局办公自动化系统!
").Navigate"http:
//192.168.100.6:
8080/OA/login.jsp"
Browser("欢迎登录北京市城乡建设局办公自动化系统!
").Page("登录").WebEdit("accountName").Setusername
Browser("欢迎登录北京市城乡建设局办公自动化系统!
").Page("登录").WebEdit("passWord").Setpassword
Browser("欢迎登录北京市城乡建设局办公自动化系统!
").Page("登录").Image("login_input").Click
EndFunction
calllogin("liuyuwei","1")
9.打印变量:
msgbox(title)
10.得到动态值:
Browser("oa").Page("oa").Frame("mainFrame_5").WebTable("请示标题").GetROProperty("text")
11.取出对象数量
setdesc=Description.Create
desc("micclass").Value="WebElement"
ocount=Browser("oa").Page("oa").Frame("mainFrame_4").ChildObjects(desc).count'取出webelement数量
msgbox(ocount)
setobj1=Browser("oa").Page("oa").Frame("mainFrame_4")
fori=0toocount-1
text=obj1.GetROProperty("innertext")
Printtext'打印所有WebElement的innertext
msgbox(text)
Next
12.读写excel
DataTable.ImportSheetPathFinder.Locate("..\施工图审查备案审批配置\施工图审查备案审批配置1.xls"),"sheet3","施工图审查备案审批配置"
Dimi,RowCount'定义变量
i=0'赋初值
Rowcount=DataTable.GetSheet("施工图审查备案审批配置").GetRowCount'主程序调用时使用
'Rowcount=DataTable.GetSheet("表单管理").GetRowCount'该脚本单独执行时使用
DoWhile(i i=i+1 DataTable.SetCurrentRow(i) Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_4").WebButton("新增审批权限").Click wait (2) Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_7").WebList("xmszd").SelectDataTable("项目所在地",dtLocalSheet) Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_7").WebList("xmtzr").SelectDataTable("项目投资人",dtLocalSheet) Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_7").WebList("tdyt").SelectDataTable("土地用途",dtLocalSheet) Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_7").WebList("blbm").SelectDataTable("审批部门",dtLocalSheet) Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe_7").WebButton("确定").Click wait (1) loop 写excel: Functioninsertexcel(row,col,value,path,sheet) SetExcelApp=CreateObject("Excel.Application") SetExcelWor=ExcelApp.Workbooks.Open(path) SetExcelShe=ExcelWor.Worksheets(sheet).UsedRange ExcelShe.Cells(row,col)=value ExcelApp.DisplayAlerts=True SetExcelShe=Nothing ExcelWor.Close(True) ExcelApp.Quit EndFunction 13.打开\关闭ie,比如: SystemUtil.Run("C: \ProgramFiles\InternetExplorer\IEXPLORE.EXE"),”” SystemUtil.CloseProcessByName("iexplore.exe") 14.利用mst(mercuryscripttemplate)生成脚本模板 新建文件ActionTemplate.mst(必须是这个名字) 用记事本打开该文件 编辑内容,如: '====================================== '模块名称 '软件名称 '作者: '日期: '====================================== 将该文件剪切到QTP的dat目录下 启动QTP,新建脚本时就能够看到该模板被自动应用了 15.描述性编程参数: Browser("北京市建设行业信息化系统").Page("北京市建设行业信息化系统").Frame("mainframe").Link("text: ="&projectName,"name: ="&projectName).Click 16.增加同步点 在录制状态下,选择Insert-->SynchronizationPoint,选择要同步的对象,设置要同步的属性,我们可以对对象的Enable,visible一类表示状态的属性做同步点,生成如下脚本 Browser("XX一下,你就知道").Page("XX一下,你就知道").WebEdit("wd").WaitProperty"visible",True,100000 这句话的意思就是在100秒的时间内,等待WebEdit这个对象的visible属性,只要它的visible属性变为true,那么就执行下面操作,最后的100000单位是毫秒,如果在100000毫秒(100秒)后还没有等到visible=true,直接执行下面操作 17.qtp连接数据库 DimStrCon DimRes,Cmd SetRes=CreateObject("ADODB.Recordset") SetCmd=CreateObject("ADODB.Command") '以下为建立连接 'StrCon="DRIVER={oracle.jdbc.driver.OracleDriver};Server=192.168.100.5;UID=dqjs4_test3;PWD=dqjs4_test3;dbq=dqjs;" StrCon="DRIVER={OracleinOraClient10g_home1};SERVER=DQJS;UID=dqjs4_test3;PWD=dqjs4_test3;DBQ=DQJS;DBA=W;APA=T;EXC=F;XSM=Default;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=Me;CSR=F;FWC=F;FBS=60000;TLO=O;" Cmd.activeconnection=StrCon Cmd.CommandType=1 '以下为执行sql,根据实际情况替换之 Cmd.CommandText="selectHT_CODEfromHT_JBXXwhereJY_TYPE_NAME='勘察'andHT_JBXX_ID='28BEB060163C11E1B060C555E3FFBE59'" SetRes=Cmd.Execute() '展示结果 DowhilenotRes.eof Msgbox(Res(0)) Res.MoveNext Loop '以下为关闭数据库连接 SetRes=nothing SetCmd.activeconnection=nothing SetCmd=nothing 18.取随机数字 Randomize Dimcran cran=randomnumber(0,100) msgboxcran 19.随机取下拉列表 dima a=Browser("北京市建设行业信息化系统_2").Page("提交问题-MantisBT").WebList("reproducibility").GetROProperty("itemscount") msgboxa randomize Dimb b=randomnumber(0,a-1) msgboxb Browser("北京市建设行业信息化系统_2").Page("提交问题-MantisBT").WebList("reproducibility").Select"#"&b 20.GetROProperty、GetTOProperty、GetTOProperties、SetTOProperty 例: Browser("登陆").Page("登录").Frame("mainFrame").WebEdit("dispatchDoc.dispatchDocTitle").SetTOProperty"name","dispatchDoc.dispatchDocTitle" 这种方法不会修改对象库中对象的属性值,但运行时也不会报错。 GetROProperty: 得到运行时对象的值 Browser("北京市建设行业信息化系统_2").Page("提交问题-MantisBT").WebList("reproducibility").GetROProperty("itemscount") GetTOProperty: 得到对象库里面对象的值 Browser("北京市建设行业信息化系统_2").Page("提交问题-MantisBT").WebList("reproducibility").GetTOProperty("value") GetTOProperties: 得到所有属性的keyandvalue seta=Browser("北京市建设行业信息化系统_2").Page("提交问题-MantisBT").WebList("reproducibility").GetTOProperties 21.回放原理 一、先根据脚本中的对象类型在对象库中查找是否存在该类型的对象。 对象类型是指在对象类型库(ObjectIdentification)中存在的类型。 二、根据脚本中对象的名称在对象库中查找是否存在该名称的对象。 三、根据对象类型库中设定的对象识别机制定位对象: 1、先根据强制属性匹配实际对象的属性值: (1)唯一匹配,找到对象,退出识别机制; (2)多个匹配,采用辅助属性辅助识别; (3)不匹配,报错; 2、根据辅助属性匹配实际对象的属性值: (1)唯一匹配,找到对象,退出识别机制; (2)多个匹配,采用顺序标识符辅助识别; (3)不匹配,报错; 3、根据顺序标识符匹配实际对象的顺序值: (1)唯一匹配,找到对象,退出识别机制; (2)多个匹配,尝试采用智能识别; (3)不匹配,报错; 其中顺序标识符中有两种识别机制: index: 控件数组的索引值。 location: 对象在GUI界面上的位置,遵循“先从上到下,再从左到右”的原则。 22.insertcalltoexistingaction 脚本中用到了【insertcalltoexistingaction】,修改了其中被调用的action,但发现引用的一直是旧的代码,修改无效。 刚开始不知道怎么回事,后来发现QTP中查找引用的action时是根据【options->folders】中配置的路径再拼接相对路径找到的,而之前我一直以为QTP会自动去我的test所在目录中找相对路径的action。 如果填了多个地址,QTP是会由上到下按照地址一个一个的去找 23.数组 Dimjylx() ReDimjylx(6) Dimlength jylx(0)="勘察" jylx (1)="设计" jylx (2)="审查" jylx(3)="施工总承包" jylx(4)="监理" jylx(5)="质量检测" jylx(6)="造价咨询" length=UBound(jylx)'返回指定数组维数的最大可用下标 selectcase SelectCasejylx(i) casejylx(0) dw=kcdw Casejylx (1) dw=sjdw Casejylx (2) dw=scdw Casejylx(3) dw=sgzcbdw Casejylx(4) dw=jldw Casejylx(5) dw=zljcdw Casejylx(6) dw=zjzxdw endselect 24.txt文件读取 '读取文件 ConstForReading=1,ForWriting=2,ForAppending=8 Setfso=CreateObject("Scripting.FileSystemObject") Setopenfile=fso.OpenTextFile("C: /test.txt",ForReading,True) DoUntilopenfile.AtEndOfStream str=openfile.ReadLine a=Split(str,"",-1,1) Fori=0toUbound(a) Msgboxa(i) Next Loop openfile.Close Setfso=Nothing '写文件 ConstForReading=1,ForWriting=2,ForAppending=8 Setfso=CreateObject("Scripting.FileSystemObject") setopenfile=fso.OpenTextFile("C: /test.txt",ForWriting,true) Fori=1to4 openfile.WriteLine("hello") openfile.WriteBlankLines(0) Next openfile.Close Setfso=nothing '追加 ConstForReading=1,ForWriting=2,ForAppending=8 Setfso=CreateObject("Scripting.FileSystemObject") setopenfile=fso.OpenTextFile("C: /test.txt",ForAppending,true) openfile.WriteLine("helloworld") openfile.Close Setfso=nothing 25.验证码(扯) DimInput Input=InputBox("Enteryourpicno: ") Browser("调查博客").Page("调查博客").WebEdit("ident_code").SetInput 26.action参数传递 (1)在主action中: RunAction"Driver_TestCase",oneIteration,table,testCaseSheetName,caseName (2)被调用action中 testCaseFile=parameter("testCaseFile") testCaseSheetName=parameter("testCaseSheetName") caseName=parameter("caseName") 按照顺序传递 27.(脚本中直接调用vbs文件)脚本中加载vbs文件,有类的vbs需要这样使用 ExecuteFile"..\aa\bb.vbs" 该vbs文件的格式必须是ANSI的 28.自定义环境变量 SetoReport=NewExcelReport Environment("oReport")=oReport 通过环境变量也能传递参数 29.QTP使用外部共享对象库有2种方法 1,通过菜单Resources->AssociateRepositories,关联外部对象库到指定的Action。 2,通过RepositoriesCollection对象,在运行时灵活的加载,自动关联到当前Action。 1.加载外部对象库 2.执行脚本 3.移除加载的对象库 'Uploadobjectrepository RepositoriesCollection.Add"../test.tsr" 'steps........... '.................... 'Removeobjectrepository OR_Index=RepositoriesCollection.Find("../test.tsr") RepositoriesCollection.RemoveOR_Index 30.ie8定位不了页面 SystemUtil.Run("C: \ProgramFiles\InternetExplorer\IEXPLORE.EXE"),"" 31.退出整个for循环exitfor Fori=0to4 msgboxi If(i=3)Then Exitfor EndIf Next 32.datatable使用 'qtp的datatable里面增加一个sheet,名称为: test datatable.AddSheet("test") '导入当前目录下aaa.xls的sheet到test中 datatable.ImportSheetpathfinder.Locate("..\qtptest\aaa.xls"),"sheet1","test" '获取这个test的总行数 Rowcount=DataTable.GetSheet("test").GetRowCount Fori=1toRowcount '设置当前行 datatable.GetSheet
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- QTP 常用 函数 大全
![提示](https://static.bdocx.com/images/bang_tan.gif)