document.getElementByID - проверка, был ли найден элемент или нет - PullRequest
3 голосов
/ 29 марта 2010

Вот пример кода, который открывает окно интернет-обозревателя, переходит на Google и получает некоторый элемент на странице по уникальному идентификатору:

set ie = CreateObject("InternetExplorer.Application")

ie.navigate("www.google.com")
ie.visible = true

while ie.readystate <> 4
    wscript.sleep 100
WEnd

set some_object = ie.document.getelementbyid("xjsc")

MsgBox some_object.tagname, 0

Этот пример приносит мне всплывающее окно DIV, которое полностью удовлетворяет меня.

Но на следующем шаге я хотел бы проверить, существует ли какой-либо идентификатор на странице или нет. К сожалению, я не могу просто быть, как,

set some_object = ie.document.getelementbyid("some_non_existant_id")
if some_object.tagname = "" then
...

, потому что это дает мне следующую ошибку:

ie.vbs(12, 1) Microsoft VBScript runtime error: Object required: 'some_object'

Итак, как лучше проверить, был ли найден элемент или нет?

1 Ответ

4 голосов
/ 29 марта 2010
if isObject(some_object) then 

если переменная содержит объект, то он был найден ...

[обновление] После некоторых тестов и комментариев вам нужно использовать метод isNothing.

, так как вы устанавливаете объект, он всегда будет типом переменной объекта, но если он не найден, для него ничего не устанавливается.

if isNothing(some_object) then

Я проверил вышеприведенное с вашим примером кода, и он работает как положено ..

в терминах VBScript это будет

if some_object is nothing then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...