有更好的方法做到这一点

| 所以我在vb.net中有一个循环,可加载网页,填写表格并点击提交 我目前正在分别将这些用于等待网页加载,填写表格并单击提交
   Do While Not browser.ReadyState = WebBrowserReadyState.Complete

            System.Windows.Forms.Application.DoEvents()
        Loop
        browser.Document.GetElementById(\"text\").SetAttribute(\"value\", message)
  For Each element As HtmlElement In browser.Document.GetElementsByTagName(\"input\")


        If element.GetAttribute(\"type\") = \"submit\" Then

            element.InvokeMember(\"click\")

        End If
    Next
但是我的问题是,在第五次运行循环之后,循环在具有set属性的行上运行了srrors。而且我有一种感觉,它在尝试填写表单之前没有等待网页加载,这就是为什么它会出错。 有谁知道更好的方法吗?     
已邀请:
        您可以使用DocumentCompleted事件,此事件可确保您的文档准备就绪,并已加载所有必需的节
Private Sub browser_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles browser.DocumentCompleted
    \' YOUR FORM FILLING CODE HERE


End Sub
对于表单提交,您可以使用像这样的forms'Submit()方法
browser.Document.GetElementById(\"text\").DOMElement.form.submit()
    
        元素\“ text \”可能尚未加载或不在页面上? 您可以制作一些JavaScript来完成该任务,然后将其注入页面。 这是在javascript中制作\“ click \”的方法: https://developer.mozilla.org/en/DOM/document.createEvent     

要回复问题请先登录注册