hmanhha Ответов: 1

Как проверить, если элемент не существует в VBA


Всем Привет.

Я пытаюсь удалить данные с веб-сайта.

В некоторых случаях, если данные были удалены, веб-сайт меняется.

Поэтому Я Использую
appIE.document.getElementsByClassName("alert-block")


Но я не знаю, как определить, если класс
("alert-block")
выходы или нет.

Я прочитал статью здесь


[^][^]

И они говорят, что

If MyObject Is Nothing Then  ' <--- This check always returns False


Что я уже пробовал:

If appIE.document.getElementsByClassName("alert-block") Is Nothing Then

Не something1.
еще
'something2 сделать здесь.
за endif

1 Ответов

Рейтинг:
0

Jochen Arndt

getElementsByClassName возвращает коллекцию. Если элемент не найден, возвращается коллекция без элементов. Но это все еще объект коллекции, так что проверка на наличие Nothing всегда будет терпеть неудачу. Вместо этого проверьте, пуста ли коллекция или нет, используя Count собственность:

Set element = appIE.document.getElementsByClassName("alert-block")
If element.Count > 0
' Element exists and is not empty
Endif


hmanhha

Если пользователь что-то сделал, то данные были удалены, то IE будет иметь класс "alert-block", А если пользователь не удалил, то IE не будет иметь этого класса.

Поэтому нельзя использовать getElementByClassName("alert-block")

Jochen Arndt

Я не понял, что вы хотите мне сказать.
Мой код сообщает вам, существует ли элемент (или нет в случае Else). Так в чем же проблема?

hmanhha

Я имею в виду вот что. Обычно веб-сайт имеет элемент с именем класса ("alert-block")
но обномал он не имеет и ваш код будет иметь ошибку. и как я могу обнаружить эту обномальную ситуацию, когда getelementbyClassName и getElementbyID.

Jochen Arndt

Какая ошибка?