0

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

我使用内置的网络浏览器填写第一个表单并提交。这里没问题。

单击此表单时,该页面会在同一页面上加载不同的 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 时使用单线程,但这似乎不是问题(我在单线程上尝试过,文档也没有改变)

4

1 回答 1

0

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

于 2013-06-22T17:20:31.557 回答