2010-03-29 6 views
2

Voici un exemple de code, qui ouvre une fenêtre d'Internet Explorer, navigue à Google, et obtient un élément sur la page par son identifiant unique:document.getElementById - vérifier si un élément a été trouvé ou non

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 

Cet exemple m'apporte un popup DIV, ce qui me satisfait complètement.

Mais à l'étape suivante, je voudrais vérifier si certains ID existe dans la page, ou non. Malheureusement, je ne peux pas être juste, comme,

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

parce qu'il me donne l'erreur suivante:

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

Alors, quelle est la meilleure pratique pour vérifier si un élément a été trouvé ou non?

Répondre

4
if isObject(some_object) then 

si la variable contient un objet puis il a été trouvé ...

[mise à jour] Après quelques essais et quelques commentaires, vous devez utiliser la méthode isNothing ..

puisque vous définissez un objet, il sera toujours un type de variable d'objet, mais s'il n'est pas trouvé, il est défini sur rien.

if isNothing(some_object) then 

J'ai vérifié ci-dessus avec votre exemple de code, et il fonctionne comme prévu ..

en termes vbscript il serait

if some_object is nothing then 
+0

ouais, mais il retruns'on' pour moi dans les deux cas , même quand rien n'a été trouvé! –

+0

@be ici maintenant, vérifiez 'isNull' (ou même' isEmpty'). Selon les spécifications, il retourne null si rien n'est trouvé .. –

+0

Je l'ai fait, ils semblent tous sortir faux indépendamment de l'élément a été trouvé ou non. –

Questions connexes