2011-11-09 6 views
1

、ハイパーリンクを使用してサーフする必要があります。名前(およびキャプション)は「次」です。私は自分のアプリケーションから追加し、「クリック」メソッドを使用しました。初めての作業であるため、ブラウザは2ページ目に移動してそこにくっついていました。私のコードは以下の通りです:ハイパーリンクにアクセスするには、名前やキャプションを使用して

Do 
    Set msgList = Browser("Incoming — Gmail").Page("ВIncoming — Gmail").ChildObjects(msgDesc) 
    msgCount = msgCount + msgList.Count() 

    Reporter.ReportEvent micPass, "MessagesCount", "Messages: " & msgCount 

    'MsgBox msgList.Count() ' in a purpose of debugging 

Loop While SurfNextPage(Browser("Incoming — Gmail").Page("Deliver successfull")) 

'Function surfs to the next page, if it possible 
' currPage -- current page 
'Return: TRUE, if link to the next page is available, otherwise ELSE 
Function SurfNextPage(currPage) 
Dim bResult 

    Set hlDesc = Description.Create 
    hlDesc("name").Value = "next" 

    Set hlList = currPage.ChildObjects(hlDesc) 
    For i = 0 to (hlList.Count()-1) 
     Set urlNextMail = hlList(i)  'there would be the only element in list 

    Next 

    bResult = urlNextMail.Exist 

    If bResult Then 
     urlNextMail.Click 'surfs to the next page 

    End If 

    SurfNextPage = bResult 

End Function 

ウェブページが困難な構造となっている - DIVとJavaの多くを、私は、このリンクが属するフレームまたはテーブルに正確に言うことはできませんが、全く別の存在しません同じ名前のリンク。

答えて

1

コメントの前後にいくつかの後に、nextリンクは最後のページにがありますが、クリックすると何も表示されません。

リンクを識別するために使用している説明を変更して、次のページに移動するリンクと一致するようにし、最後のページには表示されない(ただしそこにはない)リンクは一致させないでください。


オリジナルの答え: あなたは常に(言っページの下のオブジェクト・リポジトリ内の"next"リンクがあると仮定した場合)、このメソッドは動作するはずSurfNextPageを呼び出すために同じページを使用しているので。

異なるページを使用する場合は、記述的なプログラミングを使用する必要があります。つまり、リポジトリのオブジェクトを使用しないでください。代わりにcurrPage.Link("text:=next")のようなものを使用して、テキストプロパティとして"next"のリンクを探します。

もう一つ間違っているかもしれないことは、オブジェクトがナビゲーションの前に識別され、ナビゲーションがそのオブジェクトを無効にするということです。このような場合は、RefreshObjectメソッドを使用する必要があります(ドキュメントの説明を参照)。

これらのいずれの方法でも

+0

「stucked」なっている正確に何についての詳細な情報を提供してください助けていない場合、私は)(ChildObjectsを使用して、私のハイパーリンクを検出しました。 Exist()は常に 'True'を返します – Eugene

+0

@Eugene、 'Exist'が常にtrueならClickは成功しますか? – Motti

+0

はい、クリックに成功します。そして、ブラウザが最後のページに達すると、それは検出できません、そのリンクはunclickableです。それは無限ループを引き起こします – Eugene

関連する問題