VBA + IE Автоматизация - невозможно получить идентификатор элемента - PullRequest
1 голос
/ 25 марта 2020

Я пытаюсь почерпнуть некоторую информацию с внутреннего сайта компании. Мой код может запустить новое окно IE и успешно перейти на страницу, но когда я пытаюсь ввести данные в поле, я получаю ошибки.

Я переключил разные вещи, основываясь на сообщениях, которые я прочитал, но всегда получаю какую-то ошибку.

Для кода, размещенного ниже, эта ошибка в последней строке:

Переменная объекта или блок не установлен

enter image description here

Вот мой код:

Sub PerformancePull()

    Dim appIE As Object
    Dim sURL As String
    Dim StartDate As Variant
    Dim MyDoc As HTMLDocument

    Set appIE = New InternetExplorerMedium


    sURL = "website"

    With appIE
        .navigate sURL
        .Visible = True
    End With

    Do While appIE.readyState <> READYSTATE_COMPLETE
        DoEvents
    Loop

    Set MyDoc = appIE.document

    Set StartDate = MyDoc.getElementById("ct100_assoc_tbEndDate")
    StartDate.Value = "3/25/2020"

End Sub

Редактировать:

Вот фрагмент кода HTML, который идентифицирует идентификатор, который я пытаюсь захватить : HTML SnipIt

Ответы [ 2 ]

1 голос
/ 25 марта 2020

Я пытался проверить ваш код на моей стороне, и он работал нормально, без каких-либо ошибок. Ниже приведен результат тестирования.

enter image description here

Я предлагаю вам попытаться получить доступ к элементу и назначить значение, как показано ниже, чтобы проверить, работает он или нет.

appIE.document.getElementById("ct100_assoc_tbEndDate").Value = "3/25/2020"

Сообщите нам о результатах тестирования, если проблема не исчезнет, ​​и мы постараемся предоставить дополнительные предложения.

0 голосов
/ 25 марта 2020

Попробуйте следующее

Удалите это

Set StartDate = MyDoc.getElementById("ct100_assoc_tbEndDate")
StartDate.Value = "3/25/2020"

И замените его следующим:

With MyDoc
    .getElementById("ct100_assoc_tbEndDate").Value = "3/25/2020"
End With
...