[英]QTP UFT- Web Element Row Count
我想在下面找到這個行數。 我嘗試通過下面的代碼使用HTML TAG = A來使用它
Set oDesc = Description.Create()
oDesc("micclass").Value = "WebElement"
Set Elements = Browser("creationtime:=0").Page("index:=1").Object.GetElementsByTagName("a")
Msgbox "Total links: " & Elements.Length
我得錯了行數,因為這些web元素中很少有不同的html標簽'DIV'。 下圖。 請幫我查一下行數。
如果您只想獲取網格的行數,而不是使用A
標記,則可以使用每行的DIV
標記。
為此,您應該首先檢查您的網格並找到父div(包含所有網格內容但沒有標題的那個)並獲取其HTML類
之后,您會找到每行的DIV(可能是您的A
標記元素的直接父級,如果不是上面的一個級別),也可以使用其HTML類。 您會注意到每行的類是相同的。 如果沒有,你可以很容易地找到一個模式,並想出一個適合他們的正則表達式。
要檢查元素,我建議使用瀏覽器檢查,因為有一些UFT Spy功能無法找到的元素。 如果你不能使用瀏覽器檢查工具,你可以使用UFT Spy功能,但檢查你想要的元素會有點困難。 密切關注這一點。
使用父div類和行div類,您可以創建兩個描述對象並使用它們。 這是一個簡短的例子
Dim parent : Set parent=Description.Create
parent("micclass").Value="WebElement"
parent("html tag").Value = "DIV"
parent("class").Value="ui-grid ng-binding ng-scope your-parent-div-class" ' change the class accordingly
Dim rows : Set rows = Description.Create
rows("micclass").Value = "WebElement"
rows("html tag").Value = "DIV"
rows("class"). Value = "ui-grid ng-binding ng-scope your-rows-div-class" ' change the class accordingly
Dim objParent : Set objParent = Browser("CreationTime:=0").Page("title:=.*").ChildObjects(parent)
If objParent.count > 0 then
Dim objRows : Set objRows = objParent(0).ChildObjects(rows)
MsgBox objRows.Count
Else
MsgBox "Something wrong with your parent description object"
End If
此特定代碼未經過測試,所需的類更改是必需的! 我離UFT很遠,所以我現在無法測試,但解決方案不應該遠離這個。 我必須實現一個函數來抓取我的項目的整個網格,所使用的技術是Angular ui-grid。 我的部分代碼正是讓行對象正常工作。
通過查看截圖,您看起來在頁面中實現了相同的技術,因此這應該適合您。 請記住,如果開發人員在網格中實現了無限滾動,則必須向下滾動才能獲得正確的行數,因為HTML中的行在滾動時加載到DOM中(類似於Facebook行為),這是相當多的實現復雜(但也可以做到)
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.