Ich habe eine Webtabelle auf 50 Seiten getrennt, 20 Datensätze pro Seite. Müssen Sie es gegen SQL Db überprüfen.Vergleichen Sie Web-und DB-Tabellen: Code überspringt DB-Datensätze
Seiten werden als Links im unteren Teil des Tabelle wie folgt dargestellt:
Nun klickt mein Code nächste Seite (aktuelle Seite + 1) korrekt und überprüft die Seiten 1 ohne Probleme 10. Aber wenn es auf den letzten Link (...
) klickt und auf Seite 11 geht, überspringt es 20 Datensätze aus der DB-Tabelle und startet die Überprüfung des Datensatzes 201 von der Webtabelle mit dem Datensatz 221 aus der DB. Was ist daran falsch? Hier
ist der Code, den ich habe:
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
Sie haben 3 For-Schleifen, die ineinander verschachtelt sind. Wenn Sie auf "..." klicken, behandelt Ihr Code diese als neue Seite, aber ohne Objekt-Zeilenzählung gibt es nichts, was Sie mit den DB-Daten vergleichen könnten, sodass diese 10 Datensätze übersprungen werden. – Dave
irgendein Vorschlag, wie man das vermeidet? – Salek
@Salek Wenn Sie auf den Link '...' klicken, was passiert? Ist der Link für die Seiten 1 bis 10 noch sichtbar? Oder wir haben nur die Links von 10-20 gefolgt von '...' sichtbar? – Gurman