web-dev-qa-db-ja.com

UFT / QTPを使用してWebTableの特定の行をクリックする

Webテーブルの特定の行をクリックするのに苦労しています。私のコードは適切な行を見つけていますが、子アイテムメソッドを使用すると、オブジェクトが見つからないと文句を言います。これが私のコードです:

_Desc = "Record to click"

If Browser("B").Page("P").WebTable("W").exist(10) Then

    totalRows = Browser("B").Page("P").WebTable("W").RowCount()
    For RowNum = 1 To totalRows
        If aDesc = Browser("B").Page("P").WebTable("W").GetCellData(RowNum,2) Then
            Browser("B").Page("P").WebTable("W").ChildItem(RowNum,2,"WebElement",0).click
        End If
    Next
End If
_

Web Elementである行の値をスパイしましたが、Linkを使用しようとしましたが機能しませんでした。また、私はChild Item(aDesc,2,"WebElement",0)-も機能しませんでした。行には単純なテキストという要素が1つしかないため、インデックスに0を使用しました。他の多くのテストでもこのエラーが発生し続けます。まれに、このアプローチが一部のテストで機能することがありますが、ほとんどの場合、オブジェクトがないことを訴えます。
手伝ってくれてありがとうございます!

3
K.G.

それは私にも起こりました。調べてみると、古いHPブログのいくつかで、ChildItemメソッドがWEBElementで正しく機能しないことがわかりましたが、それはQTP 9.0の場合で、12.02を使用していました。とにかく、なぜそれが起こったのか理解できず、終了しました。以下を使用してアップ-

Set oExcptnDetail = Description.Create
oExcptnDetail("micclass").value = "WebElement"
oExcptnDetail("html tag").value = "TD"
Set chobj=Browser("").Page("").WebTable("Code").ChildObjects(oExcptnDetail)
chobj(0).Click 

ちなみに、特定の行と列にwebelement/linkが存在することを確認するには、以下を使用します。

 Browser("B").Page("P").WebTable("W").ChildItemCount(2,2,"WebElement")

Getcellデータは、それが何であるか(link、webelementなど)に関係なく、目的の行と列にあるものをすべて返すため、ループが失敗するかどうかの仮定が返されます。

4
EvereBuddy

テーブルの最初のリンクをクリックしようとしましたが、このコードでアイテムをクリックしました

Set oDesc = Description.Create() 
oDesc("html tag").Value = "A"
Set rc = Browser("B").Page("A").WebTable("html id:=gridTable").ChildObjects(oDesc)
rc(0).Click
'num = rc.Count() 'get the number of link in a page 
'For i=0 to num-1 
'ref = rc(0).GetROProperty("href") 'get the “href”propety of the i th link
'MsgBox ref
'Next

または

Browser("B").Page("A").WebTable("html id:=gridTable").ChildItem(2,8,"Link",0).click

必要なリンクを正常にクリックします

0

これを試して:

Browser( "B")。Page( "P")。WebTable( "W")。object.rows(rownum-1).cells(colnum-1).Click

0
Trimble Epic