1. 程式人生 > >qtp 學習心得(持續更新中)

qtp 學習心得(持續更新中)

目前在學習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                   '需要定位的行數