Множественная форма отправки и анализа данных со страницы результатов

У меня есть веб-страница, которая имеет несколько форм. Каждая отправленная форма открывает новую страницу. Я пытаюсь получить данные с этих страниц. С помощью приведенного ниже кода я могу открывать страницы, но данные извлекаются со страницы формы, а не со страниц, которые появляются после отправки.

Я посмотрел это решение, но оно не работает в моем случае.

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
Другие вопросы по тегам