qtp 學習心得(持續更新中)
阿新 • • 發佈:2019-01-30
目前在學習qtp,隨筆記錄一些內容,以防忘記。屬於初級入門階段,也許有更好更合適的方法,如果看到文章的童鞋,可以指出來,共同學習。
1、對於頁面內容顯示變化的物件,無法用名稱標識,目前採用描述性程式設計解決。
例如: 這種暱稱顯示。
用qtp物件庫抓取物件,為
,剛開始用
oExist=Browser("社群").Page("社群").WebElement("暱稱").Exist,最終可以智慧識別,但是會有一個警告,而且智慧識別是消耗時間的,
後來用
oExist=Browser("社群").Page("社群").WebElement("html tag:=SPAN","index:=0").Exist
後發現,有的時候這個index並不總是為0,
最後用spy抓取一下,發現class 為 ico-
所以,最終寫成oExist=Browser("社群").Page("社群").WebElement("html tag:=SPAN","class:=ico-").Exist
成功獲取
2、有這樣一個物件
最初是想通過背景色來區分,後來發現是用的png圖片,然後用css控制的,也無法獲取到文字,很是頭疼。
後來通過ie toolbar一點點去檢視內部的結構。發現是一個div 巢狀span ,然後有id,有class
通過描述性程式設計,用id和class來獲取了不同狀態下的物件。
但是始終沒實現:比如週一到週五,背景綠色,週六日背景黃色這個功能。因為用的都是同一個png圖片
3、使用dom
browser().page().object.getElementBy...
4、使用描述性程式設計
Dim oWebElements,oDesc Set oDesc=description.Create() oDesc("micClass").value="WebElement" oDesc("html tag").value="DIV" oDesc("class").value="fbox" set oWebElements=Browser("好友管理").Page("好友管理").ChildObjects(oDesc) oCount=oWebElements.count() msgbox oCount For i=0 To oCount-1 'msgbox Browser("好友管理").Page("好友管理").WebElement("class:=fname").GetROProperty("innertext") Set tempObj = oWebElements.Item(i) msgbox tempObj.GetROProperty("innertext") If instr(tempObj.GetROProperty("innertext") ,"lily001")>0 Then Browser("好友管理").Page("好友管理").Object.getElementsByName("checkbox")(i).checked=true End If msgbox Browser("好友管理").Page("好友管理").Object.getElementsByName("checkbox")(i).value Next
5、使用相對路徑
Dim dir
dir=Environment.Value("TestDir")
Dim testName
testName=Environment.Value("TestName")
index=instr(dir,testName)
dir=left(dir,index-10)
'msgbox dir
'oWorkBookPath = "E:\qtpTest\cntvshequ\excel\login.xls" '工作簿路徑
oWorkBookPath=dir & "\excel\login.xls"'採用相對路徑
oSheetName = "Sheet1" 'Sheet名稱'
oRowNo =3 '需要定位的行數