在网站上的按钮事件之间等待

问题描述 投票:0回答:1

我想在2个单击事件之间等待,因为第二个事件取决于第一个事件的结果。

我的代码清楚了:

    '**************************************************************************
    'Adding piece number to the webbrowser control
    '26/12/2019 Kris Bauwens
    '**************************************************************************
    Web.Document.GetElementById("hwbOrPiece").InnerText = txtSID.Text
    Web.Document.GetElementById("hwbOrPiece").RemoveFocus()
    SearchHWB()

Private Sub SearchHWB()
    '**************************************************************************
    'Search if the piece number exist, if so look for the history
    '27/12/2019 Kris Bauwens
    '**************************************************************************
    Dim HtmlElementcol As HtmlElementCollection = Web.Document.GetElementsByTagName("button")
    For Each elem As HtmlElement In HtmlElementcol
        If elem.InnerText = "search " Then
            elem.Focus()
            'Invoke event
            elem.InvokeMember("click")
            Thread.Sleep(3000) ''''''''''''''''''''''''-> not really working
            Do While blnFind = False
                SearchHistory()
            Loop
            Exit For
        End If
    Next
    blnFind = False
End Sub

Private Function SearchHistory() As Boolean
    '**************************************************************************
    'Look for the history
    '27/12/2019 Kris Bauwens
    '**************************************************************************
    Dim HtmlElementcol As HtmlElementCollection = Web.Document.GetElementsByTagName("button")
    For Each elem As HtmlElement In HtmlElementcol
        Debug.Print(elem.InnerText)
        If elem.InnerText = "SD History " Then
            elem.Focus()
            'Invoke event
            elem.InvokeMember("click")
            blnFind = True
            Exit For
        End If
    Next
    Return blnFind
End Function

我用'Thread'尝试过,但是速度很快。系统已经从第二个事件开始,并且不等待第一个事件。甚至不等待内部文本执行。

我该如何解决?

vb.net webbrowser-control
1个回答
0
投票

我用旧的Application.DoEvents()替换了Thread.Sleep(Visual Basic,直到1998年)我不喜欢,还有其他建议吗?

© www.soinside.com 2019 - 2024. All rights reserved.