2017-09-18 8 views
1

Webtableは50ページ以上、ページあたり20レコードに分かれています。それはSQLデータベースに対してそれを確認する必要があります。WebテーブルとDBテーブルを比較します。コードはDBレコードをスキップします

ページはこのようなテーブルの下にリンクとして表現されます。

enter image description here

さて、私のコードは正しく、次のページ(現在のページ+ 1)をクリックすると、何の問題もなく10ページ1を検証します。しかし、最後のリンク(...)をクリックして11ページに行くと、DBテーブルから20レコードをスキップし、DBからのレコード221を持つウェブテーブルからレコード201の検証を開始します。何が問題なの?ここで

は、私が持っているコードです:

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 
+1

3つの 'For'ループがお互いにネストされています。 '...'をクリックすると、あなたのコードはそれを新しいページとして扱いますが、オブジェクトの行数がないと、DBデータと比較するものはないので、それらの10個のレコードはスキップされます。 – Dave

+0

これを避ける方法はありますか? – Salek

+0

@Salekリンク '...'をクリックすると、どうなりますか?ページ1〜10のリンクは引き続き表示されていますか?あるいは、10から20までのリンクとそれに続く '...'だけのリンクが表示されますか? – Gurman

答えて

0

あなたの行カウント変数(rc)グローバル行を数えますが、Webページのみの行の現在の(21..40が含まれています例)行21は実際には現在の最初の行であると考えていますWbfGrid

DB行とWbfGrid行に対して別々のカウンターが必要です。

+0

どのような提案を避けるには? – Salek

+0

@Salekは2つの別々の変数を持ち、 '...'をクリックすると1つの変数がゼロになります。 – Motti

関連する問題