2009-09-10 98 views
0

我正在使用webbrowser控件登錄到網站。WebBrowser控件和就緒狀態

WbBrowser.Navigate("http://www.foo.com/login.php") 

一旦頁面加載我登錄使用下面的代碼

While WbBrowser.ReadyState <> WebBrowserReadyState.Complete 
      Application.DoEvents() 
     End While 

WbBrowser.Document.GetElementById("user_login").SetAttribute("Value", "username") 
WbBrowser.Document.GetElementById("user_pass").SetAttribute("Value", "password") 
WbBrowser.Document.Forms("loginform").InvokeMember("submit") 

這工作得很好。成功登錄後,我必須導航到另一個頁面。只有登錄正確時纔會發生這種情況。這裏的問題與登錄頁面加載一樣,webbrowser控件的readystate變得完整,甚至在我登錄網站之前,下一行代碼得到執行並導致錯誤,因爲我沒有登錄。

WbBrowser.Navigate("http://www.foo.com/page2.php") 

如何讓我的應用程序等待登錄完成,然後執行上面的代碼行。有任何想法嗎?

+0

這是NUnit可以處理的QA工作,還是需要打開鏈接的控制檯應用程序? – djangofan 2009-09-10 23:38:13

+0

它是我的個人項目。它不是控制檯應用程序。 – Shoban 2009-09-11 03:24:44

回答

1

嘗試跟蹤變量中的應用程序狀態,並使用webbrowser.DocumentCompleted事件來測試登錄是否通過。