чтение элементов 2-й страницы после отправки нажмите - PullRequest
0 голосов
/ 23 января 2019

Я работаю над заполнением веб-формы с использованием данных ячеек Excel, и проблема заключается в том, что после заполнения текста на первой странице с использованием идентификатора элемента при нажатии кнопки «Отправить» загружается новый IE.

Теперь я не могу заполнить текст с использованием идентификатора элемента и т. Д., Поскольку он (VBA) не идентифицирует его или не учитывает его.

IE страница загружается правильно, здесь нет проблем.

Sub Test1()
    Dim IE As Object
    Dim doc As HTMLDocument
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate "https://xyzfrmTarget=New&Text_ident=002719&frmOption=CREATE"
    Do While IE.Busy
        Application.Wait DateAdd("s", 1, Now)
    Loop
    Set doc = IE.document
    'IE.document.getElementById().Value="test"
    'doc.getElementById("ui-new_widget-1_new_company_12").Value = ThisWorkbook.Sheets("Data").Range("A2").Value
    doc.getElementById("ui-new_widget-1_monitor_12").Value = ThisWorkbook.Sheets("Data").Range("A2").Value
    doc.getElementById("new_date").Value = "2019-01-19"
    'ThisWorkbook.Sheets("Data").Range("c2").Value
    doc.getElementById("new_no_mail").Click
    IE.document.forms(0).submit
End Sub

Отправляет 1-ю страницу с текстовыми данными из Excel, но выдает 2-ю страницу, которая загружает

1 Ответ

0 голосов
/ 23 января 2019

Попробуйте использовать правильные ожидания после навигации и .click и отключите .document.Это должно обновляться с новым содержанием после .click

Option Explicit
Public Sub PerformActions()
    Dim IE As InternetExplorer
    Set IE = New InternetExplorer

    With IE
        .Visible = True
        .Navigate2 "https://xyzfrmTarget=New&Text_ident=002719&frmOption=CREATE"

        While .Busy Or .readyState < 4: DoEvents: Wend

        .document.getElementById("ui-new_widget-1_monitor_12").Value = ThisWorkbook.Sheets("Data").Range("A2").Value
        .document.getElementById("new_date").Value = "2019-01-19"
        .document.getElementById("new_no_mail").Click

         While .Busy Or .readyState < 4: DoEvents: Wend

         '.document ''< do whatever references off .document here
         'other code
         '.quit
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...