版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 获取页面所有多选框 Description.CreateDim oDesc'''''''''''创建Description对象Set oDesc = Description.Create'''''''''''''选择 oDesc("micclass").value = "WebEdit" 'oDesc("class").value=
2、"leve.*switch.*close"'''''''''''''''''创建对象集合Set objoDescs=objPage.ChildObjects(oDesc)nCount=objoDescs.countFor i=0 to nCount-1objoDescs(i).set "123"NextFor i=0 to nCount-1objoDescs.Item(i).ClickNext2. GetROProper
3、ty、GetTOProperty、GetTOProperties、SetTOPropertyGetTOProperty():取得仓库对象的某个属性的值GetTOProperties():取得仓库对象的所有属性的值GetROProperty():取得实际对象的某个属性的值例:Browser("登陆").Page("登录").Frame("mainFrame").WebEdit("dispatchDoc.dispatchDocTitle").SetTOProperty "name","di
4、spatchDoc.dispatchDocTitle"这种方法不会修改对象库中对象的属性值,但运行时也不会报错。GetROProperty:得到运行时对象的值Browser("北京市建设行业信息化系统_2").Page("提交问题 - MantisBT").WebList("reproducibility").GetROProperty("items count")GetTOProperty:得到对象库里面对象的值Browser("北京市建设行业信息化系统_2").Page("
5、;提交问题 - MantisBT").WebList("reproducibility").GetTOProperty("value")GetTOProperties:得到所有属性的key and valueset a=Browser("北京市建设行业信息化系统_2").Page("提交问题 - MantisBT").WebList("reproducibility").GetTOProperties3. GetCellData,ChildItem,GetRowWithCellText
6、GetCellData,获取制定单元格(指定行,指定列)的值object.GetCellData(Row,Column)ChildItem,子对象Object.ChildItem(Row,Column,MinClass,index)MinClass 对象空键的类名,index,一般为0GetRowWithCellText,查找文本所在行GetRowWithCellText(text,col,row)4. datatable使用1、'qtp的datatable里面增加一个sheet,名称为:testdatatable.AddSheet("test")'导入当前
7、目录下aaa.xls的sheet到test中datatable.ImportSheet pathfinder.Locate(".qtptestaaa.xls"),"sheet1","test"'获取这个test的总行数Rowcount = DataTable.GetSheet("test").GetRowCountFor i=1 to Rowcount'设置当前行datatable.GetSheet("test").SetCurrentRow(i)'找到test1这个列的
8、值a=DataTable("test1","test")'a=datatable.value("test1","test")msgbox aNext2.把值插入datatable里例: datatable.setcurrentrow(i) datatable.value("name","Global")="name" da
9、tatable.value("passwd","Global")="passwd"5. 弹框消息处理,Set objDlg = MakeDialogIf objDlg.WinButton("text:=确定").Exist(2) then objDlg.WinButton("text:=确定").ClickEnd ifSet objDlg = MakeDialog objDlg.WinButton("text:=确定").Click''''
10、39;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
11、39;'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
12、39;'''''''''''''''''''''''''''''''''扩展函数部分:弹出的选择框的判断Function MakeDialog()'窗口时还没有弹出来 如分配策略时wait 3Set objDlg = Window("regexpwndclass:=Alternate Modal Top Most&q
13、uot;).Dialog("regexpwndclass:=#32770")If objDlg.Exist(1) ThenSet MakeDialog = objDlgElseSet objDialog = objBrowser.Dialog("regexpwndclass:=#32770")Set MakeDialog = objDialogEnd IfEnd Function6. ExecuteFile函数 作用:ExecuteFile可以直接执行vbs文件,而不需要将其导入resource中
14、; ExecuteFile FileName 例:ExecuteFile("F:test.vbs")7. Strcomp函数 作用:比较文本 例:dim strtext1,strtext2,str,str1,comp1 strtext1 = "xxx" strtext2 = "xxx" str =VbWindow("xxx")
15、.VbWindow("xxx").VbLabe1("xxx").GetTOProperty("text") str1=VbWindow("xxx").VbWindow("xxx").VbLabel("xxx").GetTOProperty("text") comp1=strcomp(strtext1,str,0) If comp=0 Then &
16、#160; msgbox “这两个串相等” else msgbox str End If 8. CaptureBitmap 作用:捕获屏幕9. 超时设置Setting("DefaultTimeout") =100000010. 取随机数字RandomizeDim crancran=randomnumber(0,100)msgbox cran11. 打开关闭ie,比如:SystemU
17、til.Run ("C:Program FilesInternet ExplorerIEXPLORE.EXE"),”SystemUtil.CloseProcessByName("iexplore.exe")3.用代码来启动浏览器 Browser1 = "IE" StartURL = "" IF Browser1 = "IE" THEN set IE = CreateObject("Interne
18、tExplorer.Application") IE.Visible = true IE.Navigate StartURL END IFie8定位不了页面SystemUtil.Run ("C:Program FilesInternet ExplorerIEXPLORE.EXE"),""12. 1退出ExitTest -退出整个TEST。ExitAction - 退出当前操作,无论其循环属性如何。ExitActionIteration - 退出操作的当前循环。ExitRu
19、n - 退出测试,无论其循环属性如何。ExitGlobalIteration - 退出当前全局循环。Exit Function -退出函数13. 结束进程3种方法Function KillProcess(ProcessName)strComputer = "."Set objWMIService = GetObject("winmgmts:/" & strComputer & "/root/cimv2")Set colProcessList = objWMIService.ExecQuery("Select
20、* from Win32_Process Where Name = '" & ProcessName &"'")For Each objProcess in colProcessListobjProcess1.Terminate()NextEnd functionsystemutil.CloseProcessByName "notepad.exe"Function KillProcess2(processname)Dim wShellSet wShell = CreateObject( "WScript
21、.Shell" )wShell.Exec "TASKKILL /F /IM " & processnameset wShell = nothingEnd Function14. 防止程序中断的方法在回放脚本的时候,有时因为错误导致运行的脚本中断,不能自动运行。为了能达到真正无人职守的状态可以在脚本的最前面加上如下的代码: On error resume next 遇到错误返回到脚本的下一行继续执行。On error goto 0 错误处理的控制权,平时是由QTP控制的(这个叫默认的),当有on error resume ne
22、xt 时,是交给on error处理,当on error goto 0时,就换给QTP15. 同步点的设定等待某一对象出现后继续执行,为了防止qtp找不到对象而设定同步点。有2种方法:1种是用wait加等待的时间,如wait 5(qtp等待5秒钟后继续执行)。另一种方法是等待要执行对象的出现,如果出现就继续执行,否则一直等待,代码如下:y=.waitproperty("visible",true,10000)If y=true then 执行下一条语句 else 对象不出现就一直等待,直到过了1000
23、0秒后程序找不到对象报错End if16. 获取对象方法(1) 普通方法:Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "test"(2) Dom对象:Browser("百度一下,你就知道").Page("百度一下,你就知道").Object.getElementById("kw").value="test"(3) 描述性编程:Browser("百度一下,你就
24、知道").Page("百度一下,你就知道").WebEdit("name:=wd").Set "test"(4) 对象自身接口:Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Object.value="ddddddd"(5)循环遍历各个对象进行获取见第二个知识点17. 上传type=file类型的上传,可以封装成方法 Browser("Browser").Page(&
25、quot;Page").WebFile("dispatchDocWord").Object.outerHTML="<INPUT type=file name=dispatchDocWord" & " value=D:技术.rar unselectable= "&"off " & ">"Browser("Browser").Page("Page").WebFile("dispatchDocWord&qu
26、ot;).Set "D:技术.rar"18. 日期控件举例set test=browser("name:=(房价查询)*").page("title:=(房价查询)*")test.webedit("name:=apprDate").object.value=DataTable("start_date", dtLocalSheet)set test=browser("name:=(房价查询)*").page("title:=(房价查询)*")test.web
27、edit("name:=depDate").object.value=DataTable("start_date2", dtLocalSheet)19. 右键一般情况默认设置是1的。(1 表示使用浏览器事件运行鼠标操作。 2 代表使用鼠标运行鼠标操作)代码为:Setting.WebPackage(”ReplayType”) = 2Browser("百度一下,你就知道").Page("百度搜索_中国人").Link("欢迎来到ChinaRen校友录!").FireEvent "oncli
28、ck",,micRightBtn(Click的事件有三种:micLeftBtn 0 代表鼠标左键。 micRightBtn 1 为鼠标右键。 micMiddleBtn 2 为鼠标中键)object.Click ax,ay,1dblClick 双击 0左击,1右击20. qtp 连接数据库Dim StrConDim Res,CmdSet Res = CreateObject("ADODB.Recordset")Set Cmd = CreateObject("ADODB.Command")'以下为建立连接'StrCon ="
29、;DRIVER=oracle.jdbc.driver.OracleDriver;Server=;UID=dqjs4_test3;PWD=dqjs4_test3;dbq=dqjs;"StrCon ="DRIVER=Oracle in OraClient10g_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=IfAllSucces
30、sful;NUM=NLS;DPM=F;MTS=T;MDI=Me;CSR=F;FWC=F;FBS=60000;TLO=O;"Cmd.activeconnection=StrConCmd.CommandType =1'以下为执行sql ,根据实际情况替换之Cmd.CommandText="select HT_CODE from HT_JBXX where JY_TYPE_NAME='勘察' and HT_JBXX_ID='28BEB060163C11E1B060C555E3FFBE59'" Set Res = Cmd.Execu
31、te()'展示结果Do while not Res.eofMsgbox(Res(0)Res.MoveNextLoop'以下为关闭数据库连接Set Res=nothingSet Cmd.activeconnection=nothingSet Cmd=nothing10.连接sql数据库 例im res,cmd,sql Set Res=createobject("adodb.recordset") Set Cmd=createobject("mand") &
32、#160; Cmd.activeconnection="rovider=SQLOLEDB.1assword=111111ersistSecurity Info=True;User ID=sa;Initial Catalog=xhq;DataSource=42"这句话是连接数据库的数据源,要做修改 Cmd.CommandType = 1 sql="selec t* from 表 where name=username" Cmd.CommandText = s
33、ql Set res =Cmd.Execute() Set res =nothing Setcmd.ActiveConnection = nothing Set Cmd=nothing21. 数组Dim jylx()ReDim jylx(6)Dim lengthjylx(0) = "勘察"jylx(1) = "设计"jylx(2) = "审查"jylx(3) = "施工总承包"jylx(4) = "监理
34、"jylx(5) = "质量检测"jylx(6) = "造价咨询"length = UBound(jylx) '返回指定数组维数的最大可用下标select case Select Case jylx(i)case jylx(0)dw=kcdwCase jylx(1)dw=sjdwCase jylx(2)dw=scdwCase jylx(3)dw=sgzcbdwCase jylx(4)dw=jldwCase jylx(5)dw=zljcdwCase jylx(6)dw=zjzxdwend select22. txt文件读取'读取文
35、件Const ForReading=1,ForWriting=2,ForAppending=8Set fso = CreateObject("Scripting.FileSystemObject")Set openfile=fso.OpenTextFile("C:/test.txt",ForReading,True)Do Until openfile.AtEndOfStream str=openfile.ReadLine a=Split(str,"",-1,1) For i=0 to Ubound(a) Msgbox a(i) Nex
36、t Loopopenfile.CloseSet fso=Nothing'写文件Const ForReading=1,ForWriting=2,ForAppending=8Set fso = CreateObject("Scripting.FileSystemObject")set openfile=fso.OpenTextFile("C:/test.txt",ForWriting,true)For i=1 to 4 openfile.WriteLine("hello") openfile.WriteBlankLines(0)N
37、extopenfile.CloseSet fso=nothing'追加Const ForReading=1,ForWriting=2,ForAppending=8Set fso = CreateObject("Scripting.FileSystemObject")set openfile=fso.OpenTextFile("C:/test.txt",ForAppending,true)openfile.WriteLine("hello world")openfile.CloseSet fso=nothingVBS 常用函数D
38、ate/Time 函数函数描述CDate把一个有效的日期或时间表达式转换为日期类型。Date返回当前的系统日期。DateAdd返回已添加指定时间间隔的日期。DateDiff返回两个日期之间的时间间隔数。DatePart返回给定日期的指定部分。DateSerial返回日期的指定年、月、日DateValue返回日期Day返回代表一月中一天的数字 (介于并包括1至31之间)FormatDateTime返回以日期或时间格式化的表达式。Hour返回可代表一天中的小时的数字 (介于并包括0至23之间)IsDate返回可指示计算表达式能否转换为日期的布尔值。Minute返回一个数字,代表小时的分钟 (介于并
39、包括0至59)Month返回一个数字,代表年的月份 (介于并包括1至12之间)。MonthName返回指定月份的名称。Now返回当前的系统日期和时间。Second返回一个数字,代表分钟的秒 (介于并包括0至59之间)Time返回当前的系统时间。Timer返回自 12:00 AM 以来的秒数。TimeSerial返回特定小时、分钟和秒的时间。TimeValue返回时间。Weekday返回一个数字,代表星期的一天(介于并包括1至7)WeekdayName返回星期中指定的一天的星期名。Year返回一个代表年份的数字。TopConversion/数据类型 函数函数描述Asc把字符串中的首字母转换为 A
40、NSI 字符代码。CBool把表达式转换为布尔类型。CByte把表达式转换为字节(Byte)类型。CCur把表达式转换为货币(Currency)类型。CDate把有效的日期和时间表达式转换为日期(Date)类型。CDbl把表达式转换为双精度(Double)类型。Chr把指定的 ANSI 字符代码转换为字符。CInt把表达式转换为整数(Integer)类型。CLng把表达式转换为长整形(Long)类型。CSng把表达式转换为单精度(Single)类型。CStr把表达式转换为子类型 String 的 variant 。Hex返回指定数字的十六进制值。Oct返回指定数字的八进制值。TopFormat
41、/类型转换 函数函数描述FormatCurrency返回作为货币值进行格式化的表达式。FormatDateTime返回作为日期或时间进行格式化的表达式。FormatNumber返回作为数字进行格式化的表达式。FormatPercent返回作为百分数进行格式化的表达式。TopMath/数学运算 函数函数描述Abs返回指定数字的绝对值。Atn返回指定数字的反正切。Cos返回指定数字(角度)的余弦。Exp返回 e(自然对数的底)的幂次方。Hex返回指定数字的十六进制值。Int返回指定数字的整数部分。Fix返回指定数字的整数部分。Log返回指定数字的自然对数。Oct返回指定数字的余弦值。Rnd返回小于
42、1但大于或等于0的一个随机数。Sgn返回可指示指定的数字的符号的一个整数。Sin返回指定数字(角度)的正弦。Sqr返回指定数字的平方根。Tan返回指定数字(角度)的正切。TopArray数组 函数函数描述Array返回一个包含数组的变量Filter返回下标从零开始的数组,其中包含基于特定过滤条件的字符串数组的子集。IsArray返回一个布尔值,可指示指定的变量是否是数组。Join返回一个由数组中若干子字符串组成的字符串。LBound返回指定数组维数的最小下标。Split返回下标从0开始的一维数组,包含指定数目的子字符串。UBound返回指定数组维数的最大下标。TopString字符串 函数函数
43、描述InStr返回字符串在另一字符串中首次出现的位置。检索从字符串的第一个字符开始。InStrRev返回字符串在另一字符串中首次出现的位置。检索从字符串的最末字符开始。LCase把指定字符串转换为小写。Left从字符串的左侧返回指定数目的字符。Len返回字符串中的字符数目。LTrim删除字符串左侧的空格。RTrim删除字符串右侧的空格。Trim删除字符串左侧和右侧的空格。Mid从字符串返回指定数目的字符。Replace使用另外一个字符串替换字符串的指定部分指定的次数。Right返回从字符串右侧开始指定数目的字符。Space返回由指定数目的空格组成的字符串。StrComp比较两个字符串,返回代表
44、比较结果的一个值。String返回包含指定长度的重复字符的字符串。StrReverse反转字符串。UCase把指定的字符串转换为大写。Top其他函数函数描述CreateObject创建指定类型对象。Eval计算表达式,并返回结果。GetLocale返回当前区域设置 ID 值。GetObject返回对文件中 automation 对象的引用。GetRef允许您把 VBScript 子程序连接到页面上的一个 DHTML 事件。InputBox可显示对话框,用户可在其中输入文本,并/或点击按钮,然后返回结果。IsEmpty返回一个布尔值,指示指定的变量是否已被初始化。IsNull返回一个布尔值,指示
45、指定的变量是否包含无效数据 (Null)。IsNumeric返回一个布尔值,指示指定的表达式是否可作为数字来计算。IsObject返回一个布尔值,指示指定的表达式是否是一个 automation 对象。LoadPicture返回一个图片对象。仅用于32位平台。MsgBox显示消息框,等待用户点击按钮,并返回指示用户点击了哪个按钮的值。RGB返回一个表示 RGB 颜色值的数字。Round对数进行四舍五入。ScriptEngine返回使用中的脚本语言。ScriptEngineBuildVersion返回使用中的脚本引擎版本号。ScriptEngineMajorVersion返回使用中的脚本引擎的主
46、版本号。ScriptEngineMinorVersion返回使用中的脚本引擎的次版本号。SetLocale设置地区 ID ,并返回之前的地区 ID。TypeName返回指定变量的子类型。VarType返回指示变量子类型的值。Cbool函数将变量转换成布尔值;Cbyte函数将变量转换为0到255之间的整数。Ccur函数、Cdbl函数和Csng函数将变量转换为浮点数值,前者只精确到小数点后四位,后两者要更加精确,数值的范围也要大的多。Cdate函数将变量转换为日期值。Cint函数和Clng函数将变量转换为整数,后者的范围比前者要大的多。Cstr函数将变量转换为字符串。19 获取web下拉框中数据的
47、行数和数据值1.获取行数:首先将webtable添加到对象库中,查看对象库里有该webtable的属性后count=Browser("").Page("age").Frame("").WebTable(".").RowCount Msgbox count 查看行数2.获取数据值, for i=1 to count value=Browser("").Page("age")
48、.Frame("").WebTable(".").getcelldata(i,1) msgbox value next获取到列表中的数值后,qtp的对象库中没有这个WebElement的对象,一般采用描述性编程的方法获取对象,比如:用getcelldata获取的表中数据的innertext属性是“普通岗”,那么就可以用如下代码:for i=1 to count value=Browser("").Page
49、("age").Frame("").WebTable(".").getcelldata(i,1) Browser(“”).Page(“Page”).Frame(“”). WebElement(“innertext:=“&value,”index:=1”).clicknext20 对象获得焦点判断某个webedit输入框是否获取了焦点,如果没有获取就给它焦点,然后输入数值。代码如下:if not browser("*").page(“*").webedit(“*")
50、.object.isdisabled then .object.focus .object.set "输入数值“21 获取对象当前属性值用GetROProperty可以获取对象的当前属性值,比如一些对象的属性经常发生变化,用getroproterty就能定位对象当前的属性状态来执行相应的操作。Dim propro= browser("*").page(“*").webedit(“
51、160; *“). GetROProperty(“property”,value)Msgbox pro 弹出窗口,查看获取的属性。22 Systemutil对象的应用利用systemutil可以实现的功能:回放qtp脚本时禁止鼠标和键盘的输入;打开应用程序或web;通过句柄关闭进程;通过进程名关闭进程等。下面的代码是打开百度网页: systemutil.run “iexplore.exe”,“ 打开百度的首页,最后面的参数“3” 代表打开ie后最大化 SystemUtil.Cl
52、oseProcessByName(“iexplore.exe”) 关闭ie 23 Action的使用action分为内部调用和外部调用2种方法:内部调用使用split划分;外部调用时被调用的action设置成share,并共享对象库。 split action:RunAction "action", oneIteration24. 随机数在测试中有时会用到随即数,有多种方法:第一种 :n=randomnumber.value(1,255)
53、60;n的值从1到255之间随即产生第二种 :randomize 更新反回的数据 dim n n=int (10*rnd() msgbox n n为10以内的整数25 “is+*”类型功能 isarray'是否是数组 isconnected'判断QTP是否连接到TD isdate'是否是合法的日期类型 isempty'判断是否初始化 isNull'判断是否为空值 isNumeric'判断是否是数字型 isobject'判断是否一个功能对象 isready'判断设备是否准备就绪 isRootFolder'是否是根目录2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黄磷生产工风险评估与管理知识考核试卷含答案
- 家庭照护员诚信品质测试考核试卷含答案
- 水工混凝土维修工岗后评优考核试卷含答案
- 碳排放管理员操作规程知识考核试卷含答案
- 期末复习 课件 2020-2021学年人教版七年级生物下册(51张)
- 园艺工安全生产基础知识水平考核试卷含答案
- 期末Unit6单元复习课件41张2021-2022学年人教版八年级英语上册
- 七年级上册第三单元课外古诗词诵读 峨眉山月歌 课件(共16张)
- 2025年社会组织调研报告
- 2025年内蒙古自治区公需课学习-辐射环境监测技术规范
- 中小学(幼儿园)安全稳定工作任务清单
- 急性ST段抬高型心肌梗死总(内科学课件)
- TD-T 1041-2013 土地整治工程质量检验与评定规程
- 荧光探针技术测定细胞内离子浓
- 主副斜井掘进工程施工组织设计
- GB/T 32764-2016边鸡
- 临电电工安全技术交底
- GB/T 224-2019钢的脱碳层深度测定法
- 2022年10月上海市闵行区招录2023级定向选调生和储备人才上岸冲刺题3套【600题带答案含详解】
- 电视原理(全套课件)
- 2022年环境监测技能知识考试参考题500题(含各题型)
评论
0/150
提交评论