J'ai une table Web séparée à 50 pages et plus, 20 enregistrements par page. Besoin de le vérifier par rapport à sql db.Comparer les tables Web et DB: le code saute les enregistrements DB
Les pages sont représentés sous forme de liens dans le fond du tableau comme celui-ci:
Maintenant, mon code clique page suivante (page en cours + 1) correctement et vérifie les pages 1 à 10 sans problème. Mais lorsqu'il clique sur le dernier lien (...
) et passe à la page 11, il saute 20 enregistrements de la table DB et commence à vérifier l'enregistrement 201 à partir de la table Web avec l'enregistrement 221 de DB. Qu'est-ce qui va pas avec ça?
Voici le code que j'ai:
set PagesLink=description.Create
PagesLink("micclass").Value = "Link"
PagesLink("html tag").Value = "A"
Do Until DBMaintenanceRS.EOF
Set PagesCollection = .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").ChildObjects(PagesLink) 'Get links to pages. 10 links to pages are showed in bottom of table.
print PagesCollection.Count
For pc = 0 To PagesCollection.Count-1 'start pages loop
For rc = 2 to .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").RowCount-1 'start table rows loop
For cc = 2 To .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").ColumnCount(1) 'start table columns loop
wCell = .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").GetCellData(rc, cc)
dbCell = DBMa
intenanceRS.Fields(cc-2)
If trim(dbCell) = trim(wCell) Then
Print "Pass"
Else
print "FAIL::: ID="&.WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").GetCellData(rc, 2)&"-Column='"&.WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").GetCellData(1, cc)&"'-Value="&wCell&"-=-VS DB: "&dbCell
End If
Next
cc=""
wcell=""
dbcell=""
DBMaintenanceRS.MoveNext
Next
rc=""
print pc&"-=-"& PagesCollection(pc).GetROProperty("innertext")
If pc=0 Then
If NOT(PagesCollection(pc).GetROPRoperty("innertext")="...") Then
PagesCollection(pc).Click
End If
Else
PagesCollection(pc).Click
End If
.Sync
wait 1
Set PagesCollection = .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").ChildObjects(PagesLink)
Next
print "Next 10 pages"
pc=0
Set PagesCollection = .WbfGrid("html tag:=TABLE","html id:=cphBody_GridView1").ChildObjects(PagesLink)
print DBMaintenanceRS.Fields(0)
Loop
Vous avez 3 boucles 'For' imbriquées les unes dans les autres. Lorsque vous cliquez sur '...' votre code le traite comme une nouvelle page, mais sans rowcount d'objet, il n'y a rien à comparer avec les données DB, donc ces 10 enregistrements sont ignorés. – Dave
une suggestion comment éviter cela? – Salek
@Salek Lorsque vous cliquez sur le lien '...', que se passe-t-il? Le lien pour les pages 1 à 10 est-il encore visible? Ou nous seulement les liens de 10-20 suivis de '...' visible? – Gurman