Я работаю над проектом библиотеки классов VB.Net, и у меня есть элемент управления веб-браузером (в пределах формы), который я использую, чтобы несколько раз переходить к одному URL-адресу в это определенная последовательность:Управление веб-браузером - перейдите по ссылке один за другим
Давайте предположим, что URL-адрес является: https://www.google.com/submitForm
Loop Start
- Перейдите к URL
- Document Complete Event из с навигацией URL
- Выполнять манипуляции DOM и отправить форму
- Закрыть веб-браузер формы
Loop End
Код:
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
Выпуск: Каждый раз, когда я пытаюсь запустить этот цикл, он открывает несколько форм веб-браузера, но закрывает только первый и сохраняет остальные. Кроме того, он выполняет навигацию несколько раз, но на самом деле выполняет последнюю навигацию.
Ожидаемое поведение: Я хотел бы, чтобы форма на самом деле пройти через процесс, упомянутый выше, пройти через каждое завершенное событие, закройте форму, а затем приступить к созданию формы, навигации и закрыть форму еще раз.
Вы должны показать нам соответствующий код формы, а также. Вы дали нам слишком мало, чтобы воспроизвести это. –
Привет @VisualVincent: Я добавил соответствующий код для формы. Пожалуйста, дайте мне знать, есть ли способ достичь этого? – Neophile
Предполагая, что submit invoke является последним, что должна делать форма .... следуйте за ней со мной.close –