Множественная форма отправки и анализа данных со страницы результатов
У меня есть веб-страница, которая имеет несколько форм. Каждая отправленная форма открывает новую страницу. Я пытаюсь получить данные с этих страниц. С помощью приведенного ниже кода я могу открывать страницы, но данные извлекаются со страницы формы, а не со страниц, которые появляются после отправки.
Я посмотрел это решение, но оно не работает в моем случае.
Excel VBA формы отправки и анализа данных из результата
Вот мой код;
Set formsw = IE.document.forms
For Each form In formsw
For Each elem In form.elements
If elem.Value = "Show Summary (Html)" Then elem.Click
Do Until IE.ReadyState = 4: DoEvents: Loop
Do While IE.Busy: DoEvents: Loop
Sheet1.Activate
Sheet1.Cells.ClearContents
r = 0
For Each TRelement In IE.document.getElementsByTagName("TR")
Sheet1.Range("A1").Offset(r, 0).Value = TRelement.innerText
r = r + 1
Next
End If
Next
Next
Set form = Nothing
Вот часть источника;
<input class="newInputButton" type="button" name="btnSubmit" width="100%" value="Show Summary (Html)" onclick="javascript:form1.action='/BEP/ShowApproved?w=0'; form1.target='_blank'; form1.submit();">
<input class="newInputButton" type="button" name="btnSubmit" width="100%" value=""Show Details (Html)" onclick="javascript: form1.action='/BEP/ShowApproved?w=0'; form1.target='_blank'; form1.submit();">
<input class="newInputButton" type="button" name="btnSubmit" width="100%" value="Show Summary (Html)" onclick="javascript:form2.action='/BEP/ShowApproved?w=0'; form2.target='_blank'; form2.submit();">
<input class="newInputButton" type="button" name="btnSubmit" width="100%" value=""Show Details (Html)" onclick="javascript: form2.action='/BEP/ShowApproved?w=0'; form2.target='_blank'; form2.submit();">
Любая помощь приветствуется, спасибо!
1 ответ
Похоже, вам нужно сосредоточиться IE на новой веб-странице. Следующий код подсчитывает все открытые экземпляры IE и получает их URL и заголовок. Если в URL или заголовке вашей новой веб-страницы есть характерные слова, вы можете использовать их ниже, чтобы получить макрос для управления новой страницей. В этом примере используется заголовок страницы, но вы также можете использовать URL.
Set objShell = CreateObject("Shell.Application")
IE_count = objShell.Windows.Count
For x = 0 To (IE_count - 1)
On Error Resume Next ' sometimes more web pages are counted than are open
my_url = objShell.Windows(x).Document.Location
my_title = objShell.Windows(x).Document.Title
If my_title Like "Some characteristic words from your new web page" Then 'find the new web page
Set ie = objShell.Windows(x)
Exit For
Else
End If
Next