0
我正在研究一個VB.Net類庫項目,並且我有一個Web瀏覽器控件(在一個表單中)用於多次導航到相同的URL這個特殊的序列:Web瀏覽器控件 - 一個接一個地導航到URL
假設的網址是:https://www.google.com/submitForm
環路啓動
- 瀏覽URL,
- 文檔完備事件導航的URL的
- 執行DOM操作,並提交形式
- 關閉Web瀏覽器形式
循環結束
代碼:
Public Sub customNavigation()
For j = 0 To listOfUrls.Count - 1
testWebBrowserForm = New WebBrowserForm(Me)
Dim browserSize As System.Drawing.Size = New Size(100, 100)
testWebBrowserForm.Size = browserSize
testWebBrowserForm.FormBorderStyle = FormBorderStyle.FixedSingle
testWebBrowserForm.Show()
testWebBrowserForm.SendToBack()
testWebBrowserForm.Location = New Point(100, 100)
testWebBrowserForm.Navigate(New Uri("https://google.com/submitForm"))
Next
End Sub
// Once the document has completely loaded
Public Sub documentLoadComplete()
Dim submitButton As HtmlElement = Nothing, formEl As HtmlElement = Nothing
Dim attachmentInputElements As Windows.Forms.HtmlElementCollection = testWebBrowserForm.webBrowser.Document.GetElementsByTagName("input")
Dim formElements As Windows.Forms.HtmlElementCollection = testWebBrowserForm.webBrowser.Document.Forms
Dim form As Windows.Forms.HtmlElement = testWebBrowserForm.webBrowser.Document.Forms(0)
For y = 0 To formElements.Count - 1
Dim formelement As HtmlElement = formElements(y)
If formelement.GetAttribute("name").Equals("theForm") Then
formEl = formelement
End If
Next
For i = 0 To attachmentInputElements.Count - 1
Dim inputElement As HtmlElement = attachmentInputElements(i)
If inputElement.GetAttribute("type").Equals("submit") Then
submitButton = inputElement
End If
Next
testWebBrowserForm.webBrowser.Document.InvokeScript("doSomething")
submitButton.InvokeMember("click")
testWebBrowserForm.Close()
End Sub
問題: 每次我嘗試運行此循環時,它都會打開多個Web瀏覽器窗體,但只會關閉第一個窗體並將其他窗體打開。另外,它確實執行了多次導航,但實際上只進行了最後一次導航提交。
預期的行爲: 我想爲形式實際上經過上述過程中,通過每完成的事件,關閉窗體,然後再次啓動形式,導航和關閉形式的創作。
你必須向我們展示的形式相關的代碼。你給我們太少,無法重現這一點。 –
Hi @VisualVincent:我也爲表單添加了相關的代碼。請讓我知道是否有辦法實現這一目標? – Neophile
假設提交調用是表單最後要做的事情....按照me.close –