2010-07-23 76 views
0

我的VB.NET代碼應該執行第三方Javascript代碼以嘗試填寫和提交表單。這個過程由五個步驟組成,並且當所有步驟保持分開時(即,在5個單獨的後續按鈕點擊之後),我能夠提交表格。現在,我想要的是一個按鈕來處理所有五個步驟。在VB.NET中檢測Javascript html頁面修改Webbrowser控件

問題是,調用「webbrowser.Navigate」命令後,表單最初只會出現,該命令顯然會修改該頁面的HTML代碼。我似乎無法檢測何時Javascript完成加載新的HTML以填寫和提交表單。我嘗試了一個計時器控件來等待某個HTML元素ID出現,但徒勞無功。

這個問題已經被以不同的形式問過,但至少我沒有從剛纔的答案找到太多的幫助:

InvalidCastException with WebBrowser.IsBusy or ReadyState (VB .NET)

Detect when AJAX changes HTML in a DIV in WebBrowser

http://www.techtalkz.com/vb-net/374234-vb-net-webbrowser-control-how-capture-javascript-events-statusbar-changed-mouseclick-etc.html

請幫我。

回答

1

那麼,這是它在軟件行業通常的工作方式:只有在你向其他人解釋問題之後,你是否有足夠的理解它並自己解決它。

問題是我沒有使用System.Windows.Forms.Timer(),但另一個(不太合適的)計時器類來跟蹤HTML代碼中的更改。這就是爲什麼Application.DoEvents()不起作用的原因。使用System.Windows.Forms.Timer()我能夠創建一個Timer.Tick事件,跟蹤表單提交的階段(在我的例子中爲1-5),並嘗試在Try-抓住建設。如果捕獲到異常,則執行Application.DoEvents(),而定時器確保再次嘗試執行相同的命令。

這似乎適用於我。

相關問題