VBA вы можете получить элементы по источнику (GetElementBySrc)

0

В VBA, возможно ли иметь команду GetElementBySrc?

Мой макрос вводит данные в текстовое поле веб-страницы и нажимает поиск.

У меня есть функция Do, которая зацикливается до тех пор, пока Internet Explorer не будет в состоянии готовности, но Internet Explorer попадает в состояние готовности до завершения загрузки/загрузки страницы результатов.

Там отображается изображение "processing.gif", которое появляется на странице поиска в ожидании результатов. Я думаю, что мне больше повезет, если я смогу написать команду "If... Then", которая будет ждать, пока изображение больше не будет на странице поиска.

Тег, который я пытаюсь найти, скажет

<img alt="search" src"images/processing.gif" />

ДОПОЛНИТЕЛЬНАЯ МЫСЛЬ

Я думал о чем-то подобном.

Do
  If IE.Document.GetElementsByTagName("img").Attributes("src").Value = "images/processing.gif" Is Nothing Then
      Exit Do
  Else
      DoEvents
  End If
Loop
Теги:
excel-vba
excel
getelementsbytagname

2 ответа

3
Лучший ответ

Вот то, что я использовал в подобных обстоятельствах...

Do Until InStr(1, ie.Document.body.innerhtml, "images/processing.gif", vbTextCompare) = 0
  DoEvents
Loop
  • 0
    Это прекрасно работает и именно то, что я хотел сделать. К сожалению, GIF обработки не отображается в источнике. В итоге я нашел элемент HTML, уникальный для моей страницы результатов, и сделал цикл, пока этот элемент не существует. Спасибо, хотя, это определенно пригодится.
1

Вы можете захватить элементы img и просто прокрутить до тех пор, пока не получите внутренний текст.

dim imgElm

for each imgElm in ie.Document.getElementsByTagName("img")
    if imgElm.innertext = "images/processing.gif" then
    'do something
    exit for
    end if
next

Ещё вопросы

Сообщество Overcoder
Наверх
Меню