簡體   English   中英

QTP UFT- Web元素行計數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM