我对重定向的网址有疑问。我正在自动填写。填写表格后,我提交表格并单击按钮。之后,它会重新显示到新页面。我需要重定向网址。
例如
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")
点击按钮后我需要重定向的网址。在单击登录按钮后重定向到新页面。如果可能,请帮我解决这个问题 感谢
答案 0 :(得分:0)
您可以使用WebBrowser.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
获取新的网址。祝你好运!