web-dev-qa-db-fra.com

En cliquant sur une ligne spécifique dans une WebTable utilisant UFT/QTP

J'ai du mal à cliquer sur une ligne spécifique dans une table Web. Mon code trouve la bonne rangée, mais lorsque j'utilise la méthode Child Item, il se plaint que l'objet n'est pas trouvé. Voici mon code:

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

J'ai espionné la valeur dans la rangée, c'est Web Element, j'ai essayé d'utiliser Link - cela n'a pas fonctionné. Aussi, j'ai essayé deChild Item(aDesc,2,"WebElement",0)- n'a pas fonctionné non plus. J'ai utilisé 0 pour l'index car il n'y a qu'un seul élément dans la ligne - le texte simple. Je continue à avoir cette erreur dans de nombreux autres tests. Dans de rares cas, cette approche fonctionne dans certains tests, mais la plupart du temps, elle se plaint de l'absence d'objet.
Merci beaucoup pour votre aide!

3
K.G.

C'est arrivé avec moi aussi. Lors de mes recherches, j'ai découvert dans certains vieux blogs HP que la méthode ChildItem ne fonctionnait pas correctement avec WEBElement, mais que c'était pour QTP 9.0 et que j'utilisais 12.02. en utilisant ce qui suit -

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

Sur une note de côté, pour vérifier qu’un élément Web/un lien existe dans une ligne et une colonne données, utilisez ce qui suit.

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

Les données Getcell vous renverront tout ce qui se trouve dans la rangée et la colonne désirées, quel que soit le résultat (lien, élément Web, etc.) et par conséquent, votre hypothèse selon laquelle une boucle échouera.

4
EvereBuddy

J'essayais de cliquer sur le premier lien de ma table et ce code a cliqué sur l'élément

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

ou

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

clique avec succès sur le lien dont j'avais besoin

0
William Humphries

Essaye ça:

Navigateur ("B"). Page ("P"). WebTable ("W"). Object.rows (rownum-1) .cells (colnum-1) .Click

0
Trimble Epic