以编程方式填写表单后重定向 url

Redirected url after filling the form programatically

我有一个关于重定向的问题 url。我正在自动填写一个 for 。填写表格后,我提交表格并单击按钮。之后它重定向到一个新页面。我需要重定向 url.

例如

webBrowser1.Navigate("myurl.com")

        For I As Integer = 0 To 500
            If webBrowser1.ReadyState = WebBrowserReadyState.Complete Then Exit For
            Threading.Thread.Sleep(1)
            Application.DoEvents()
        Next

        Dim elementLogin = webBrowser1.Document.GetElementById("login_identifier")
        If Not IsNothing(elementLogin) Then
            webBrowser1.Document.GetElementById("login_identifier").SetAttribute("Value", "myemail")
        End If
        Dim elementPassword = webBrowser1.Document.GetElementById("login_password")
        If Not IsNothing(elementLogin) Then
            webBrowser1.Document.GetElementById("login_password").SetAttribute("Value", "mypassword")
        End If
        webBrowser1.Document.GetElementById("login_btn").Enabled = True
        webBrowser1.Document.GetElementById("login_btn").InvokeMember("click")

我需要点击按钮后的重定向 url。因为它在单击登录按钮后重定向到新页面。如果可能的话,请帮我解决这个问题 谢谢

您可以使用 WebBrowser.URL 获取它导航到的网页。但是,如果您尝试在导航开始之前获取新的 URL(意味着您将获取 current URL),这可能会导致问题。

相反,尝试遍历匹配按钮 ID 的 WebBrowser.Document 的所有元素,最后得到按钮的 href

Dim NextURL As String() = ""
For Each ele As HtmlElement In webBrowser1.Document.All
    If ele.GetAttribute("id") = "login_btn" then
        NextURL = ele.GetAttribute("href")
        Exit For
    End If
Next

这将触发 "no" 异常并且将同时对多个元素起作用。或者,也许更适合您的单独按钮,使用:

Dim NextURL As String = webBrowser1.Document.GetElementById("login_btn").GetAttribute("href")

编辑:由于按钮的 href 标签似乎是空的,最好在重定向后订阅 WebBrowser.DocumentCompleted 事件处理程序以通过 WebBrowser.URL 获取新网址。祝你好运!