0

Web ページに移動し、要素が読み込まれるのを待ってから、新しいページから要素を収集するスクリプトを作成しようとしています。現状では、このスクリプトは次の場所で待機する必要があるときにまっすぐ実行されています。

Do Until AxWebBrowser1.ReadyState = WebBrowserReadyState.Complete 

処理後:

htmldoc.getElementsByName("GetCase").item(0).click() 'click the submit button

実際にはページの読み込みがまだ完了していないときに、2 番目のサブのメッセージ ボックス ポップアップがすぐに表示されます。これを考慮して、ページの準備が整うまでスクリプトを待機させてから、htmldoc = axwebbrowser1.document を作成するにはどうすればよいですか

Private Sub GetCase()

    htmldoc = AxWebBrowser1.Document.frames("top").document 'set the top frame to be searched for

    setval = htmldoc.getElementsByName("caseNum").item(0) 'grab the input name for contracts

    setval.value = TextBox1.Text 'set the textbox value into the web form input
    TextBox1.Clear()

    htmldoc.getElementsByName("GetCase").item(0).click() 'click the submit button


    Do Until AxWebBrowser1.ReadyState = WebBrowserReadyState.Complete 'do events until it is complete
        Application.DoEvents()
    Loop


    If ComboBox1.Text = "MM" Then
        Gather()

    End If

End Sub



Private Sub Gather()
    Do Until AxWebBrowser1.ReadyState = WebBrowserReadyState.Complete 'do events until it is complete
        Application.DoEvents()
    Loop

    htmldoc = AxWebBrowser1.Document
    MessageBox.Show("got elements")


End Sub
4

1 に答える 1

0

click() の後、ReadyState を確認する前に、クリック イベントに対するブラウザの応答を許可するために、しばらく (つまり 2 秒) 待つ必要があります。何かのようなもの:

for i as integer = 0 to 10
    Sleep(200)
    Application.Doevent()
next

次に、準備状態を確認します

于 2012-10-26T14:38:22.380 に答える