【问题标题】:Redirected url after filling the form programatically以编程方式填写表单后重定向 url
【发布时间】:2015-04-14 10:27:17
【问题描述】:

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

举例

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。因为它在单击登录按钮后重定向到新页面。如果可能的话,请帮我解决这个问题 谢谢

【问题讨论】:

    标签: asp.net vb.net webforms webbrowser-control


    【解决方案1】:

    您可以使用WebBrowser.URL 来获取它正在导航的网页。但是,如果您在导航开始之前尝试获取新 URL(这意味着您将获得 当前 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
    

    这将触发“无”异常,并同时适用于多个元素。或者,也许更适合您的一个单独的按钮,使用:

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

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

    【讨论】:

    • 感谢您的回复。实际上 ele.GetAttribute("href") 是空的。
    • 它是空的还是只是“#”?这将表明有 javascript 或其他涉及。
    • 所以 WebBrowser.URL 是旧的 url
    • 实际上有一些使用电子邮件ID和密码的计算然后它会生成一个授权码。因此它使用参数中的授权代码重定向到新的 url。我需要访问该身份验证代码
    • 如果这个 auth.代码在URL参数中,页面加载后仍然可以得到它,对吗?如果不是,那么您将被转介到其他地方,并且很难找到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 2018-10-23
    • 1970-01-01
    相关资源
    最近更新 更多