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!
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.
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
Essaye ça:
Navigateur ("B"). Page ("P"). WebTable ("W"). Object.rows (rownum-1) .cells (colnum-1) .Click