Webbrowser.document不会更新

时间:2013-06-22 17:16:00

标签: .net visual-studio

我正在尝试开发一个必须与网页互动的应用。

我使用内置的webbrowser填写第一个表单并提交。这里没问题。

单击此表单时,页面会加载不同的html代码(表单上的第二步),并显示相同的页面。它不会触发文档已完成的事件,更糟糕的是,它不会更改文档项。 documenttext项具有新代码,页面在表单上完美显示,但文档项仍保留旧代码。没有文件,我无法点击第二个按钮。

所以,2个问题。

有没有办法强制文档加载新的html代码,以便我可以点击它?

有没有办法点击该按钮而不使用Htmlelement.InvokeMember?

Private Sub login()
  Browser.Navigate("website")
  docflag.WaitOne()
  docflag.Reset()
  Dim inputs As HtmlElementCollection = document.GetElementsByTagName("input")
  Dim login As HtmlElement = Nothing
  For Each item As HtmlElement In inputs
    Select Case item.Id
      Case "nick"
        item.SetAttribute("value", TBUsuario.Text)
      Case "pass"
        item.SetAttribute("value", TBPass.Text)
      Case ""
        Dim src As String = item.GetAttribute("src")
        If src.IndexOf("/login.gif") <> -1 Then
         login = item
        End If
    End Select
  Next
  Conecta(True)
  login.InvokeMember("click")
  docflag.WaitOne()
   docflag.Reset()
  'msg(document.Body.OuterHtml) returns code of the first page
  'msg(document.documenttext) returns code of the actual page   
  document.GetelementById("identrar" + TBCodigo.Text).InvokeMember("click")
  docflag.WaitOne()
  docflag.Reset()
End Sub

Private Sub Browser_DocumentCompleted(sender As Object, e As      WebBrowserDocumentCompletedEventArgs) Handles Browser.DocumentCompleted
document = Browser.Document
docflag.Set()
msg("Pagina cargada")
End Sub

编辑包含一些代码。我在尝试解决这个问题的同时阅读,我在使用webbrowser时应该使用单个线程,但这似乎不是问题(我在单个线程上尝试过它,文档也没有改变)

1 个答案:

答案 0 :(得分:0)

首先使用webbrowser.Navigate("about:blank");