Aquí se muestra un ejemplo de código, que abre una ventana de internet explorer, navega a google, y se pone algún elemento de la página mediante su id único:

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

Este ejemplo me trae un DIV emergente, que me satisfaga completamente.

Pero en el siguiente paso me gustaría comprobar si algunos de identificación que existe en la página, o no. Por desgracia, creo que no puede ser, como,

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

porque me da el siguiente error:

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

Así que, ¿cuál es la mejor práctica para comprobar si un elemento se ha encontrado o no?

InformationsquelleAutor be here now | 2010-03-29

1 Comentario

  1. 4
    if isObject(some_object) then 

    si la variable contiene un objeto, a continuación, fue encontrado …

    [actualización]
    Después de algunas pruebas y algunos comentarios, usted necesita usar el isNothing método..

    ya que son la creación de un objeto siempre será un objeto de tipo variable, pero si no se establece nada ..

    if isNothing(some_object) then

    He comprobado lo anterior con su código de ejemplo, y funciona como se esperaba..

    en vbscript términos sería

    if some_object is nothing then
    • sí, pero es retruns true para mí en AMBOS casos, aun cuando no se encontró nada!
    • aquí y ahora, echa un vistazo isNull (o incluso isEmpty). De acuerdo a las especificaciones, devuelve null si no se encuentra nada..
    • Yo lo hice, todos parecen salida falsa independientemente de que el elemento se ha encontrado o no.
    • aquí y ahora, aceptar actualizado mi respuesta con la solución ..
    • Las cosas se están poniendo raro…. D:\work\_tmp\ie.vbs(12, 1) Microsoft VBScript runtime error: Type mismatch: 'isnothing' Por el camino, isNothing es un VB6 función, ¿no? Me he encontrado en VBScript refs.
    • aquí y ahora, estás en lo correcto .. yo estaba pensando en términos de vb.. equivalente de vbscript es if some_object is nothing then
    • genial, muchas gracias

Dejar respuesta

Please enter your comment!
Please enter your name here