Отслеживание HTML Элемент класса с VBA - PullRequest
0 голосов
/ 11 февраля 2020

Я искал в Интернете ответ, но пока не нашел ничего полезного. Вопрос так же прост, как и название. У меня есть некоторые элементы на веб-странице, и я хотел бы, чтобы мой макрос выполнял действия только тогда, когда у них есть / нет определенный класс c.

Чтобы быть более точным, эти элементы скрываются скрытым классом добавлены к ним всякий раз, когда вы перемещаетесь по странице, и поскольку они все еще могут быть найдены getelementbyid, я не могу проверить, является ли этот элемент видимым (скрытый класс удален) или нет.

Я не думаю, что какой-либо код нужен? Это просто несколько простых элементов, переключающих скрытый класс, и мне любопытно, могу ли я проверить это с помощью vba.

Заранее большое спасибо!

1 Ответ

0 голосов
/ 11 февраля 2020

Я решил, что выложу sh это для вас в ответе, поскольку оставленный мною комментарий не слишком информативен.

Set IE = CreateObject("InternetExplorer.Application")
Dim URL as String
URL = 'your URL here

Dim HTMLdoc As HTMLDocument

With IE
    .Silent = True
    .Visible = True
    .Navigate URL

    Do Until .readyState = 4
        DoEvents
    Loop

    Set HTMLdoc = .Document
End With

Dim hiddenElements As HTMLElementCollection
Set hiddenElements = HTMLdoc.getElementsByClassName("your class name") 'add this to a watch or inspect your locals
'Alternatively, you can print them all to the immediate window
Dim hiddenElement as Variant
For Each hiddenElement in hiddenElements
    Debug.Print hiddenElement.Value 'or .innerHTML or whatever you want here
Next hiddenElement

Это хорошо работает, если вы шагаете по коду, но использование HTMLDocument и readyState может быть громоздким при обновлении веб-страницы в реальном времени, поэтому MSXML.XMLHTTP60 предпочтительнее. .

...