Página 1 de 1

Ayuda con este script....

Publicado: 03 Abr 2010, 23:29
por markus
Buenas tardes. señores tengo un problema y quisiera que por favor me ayuden a aclararlo.
realice este script:

Código: Seleccionar todo

Func captura()
	$oFrame = _IEFrameGetObjByName ($oIE, "ctl00_cp_frmAplicacion")
	$oForm = _IEFormGetObjByName ($oFrame, "Inicio")
	$oUser = _IEGetObjById ($oForm, "txtUsuario")
	$oPass = _IEGetObjById ($oForm, "txtClave")
	$file = FileOpen("test.txt", 1)
	FileWriteLine($file, "Usuario: " & $oUser.value )
	FileWriteLine($file, "Clave: " & $oPass.value )
	if @error then Exit
	FileClose($file)
	Sleep(1200)
EndFunc
Me funciona bien ya que me guarda el dato pero al final me arroja este error:

-> IE.au3 V2.4-0 Warning from function _IEGetObjById, $_IEStatus_NoMatch (txtUsuario)
--> IE.au3 V2.4-0 Warning from function _IEGetObjById, $_IEStatus_NoMatch (txtClave)
C:\Documents and Settings\USUARIO\Escritorio\cheker.au3 (27) : ==> Variable must be of type "Object".:
FileWriteLine($file, "Usuario: " & $oUser.value )
FileWriteLine($file, "Usuario: " & $oUser^ ERROR
>Exit code: 1 Time: 21.557

Me podrian ayudar por favor... Ha y solo me funciona con Iexplorer pero no con Firefox.

Saludos...

Re: Ayuda con este script....

Publicado: 04 Abr 2010, 01:05
por Alastor
no tengo mucha experiencia con las funciones de ie
pero no te funcionará sin poner '.value' ?

Re: Ayuda con este script....

Publicado: 04 Abr 2010, 02:59
por markus
nop, no se porque pero no me captura el dato de los texbox si le quito el .value

Re: Ayuda con este script....

Publicado: 04 Abr 2010, 07:09
por XPyro
Marca error por que el resultado de .value es un objeto no una cadena de texto, trata de almacenar la variable como cadena de texto y puede que se resuelva, no se como ayudar por que no puedo hacer mucho con esta parte del código :smt015

Tengo curiosidad para que utilizaras este programa :smt017

:smt006

Re: Ayuda con este script....

Publicado: 04 Abr 2010, 12:14
por Sananda
IEGetObjById

IE significa internet explorer. por eso solo te va con el explorer.

tienes que usar el objeto el objeto correspondiente a firefox.

ahora mismo no se cual es, pero prueba con GetObjById

si fuera en javascript dentro de una pagina html seria document.GetObjById('id del objeto')

Re: Ayuda con este script....

Publicado: 04 Abr 2010, 13:54
por Sananda
otra cosa que te puede estar pasando es que estás tratando de leer el valor antes de que se haya creado el objeto, osea antes que que la página haya cargado competamente.
por esto te dice que la variable no es un objeto.


lo suyo seria que nos reportaras la pagina web de donde quieres obtener los valores de los campos.

me refiero al codigo html, de esta manera podriamos saber como hay que referenciar los objetos. :smt014

Re: Ayuda con este script....

Publicado: 04 Abr 2010, 14:29
por Chefito
Sananda escribió:otra cosa que te puede estar pasando es que estás tratando de leer el valor antes de que se haya creado el objeto, osea antes que que la página haya cargado competamente.
por esto te dice que la variable no es un objeto.


lo suyo seria que nos reportaras la pagina web de donde quieres obtener los valores de los campos.

me refiero al codigo html, de esta manera podriamos saber como hay que referenciar los objetos. :smt014
Eso es exactamente lo que le está ocurriendo :smt002 . Has acertado de lleno :smt003 .

markus, te está diciendo que no encuentra los objetos txtusuario y txtclave, y por esa razón no te funciona nada. Como dice el compañero Sananda seguramente ejecutas el código antes de que se cargen esos objetos (la página), o te has equivocado al poner su id.
Alastor escribió:no tengo mucha experiencia con las funciones de ie
pero no te funcionará sin poner '.value' ?
markus escribió:nop, no se porque pero no me captura el dato de los texbox si le quito el .value
Porque es una propiedad del objeto al que referenciais. Value te da el valor de este objeto, que en este caso sería el contenido de texto.
Los objetos tienen muchas propiedades. También tienen métodos y eventos. Es lo típico en casi todos los lenguajes. Lo que pasa que autoit se maneja con funciones que ya tienen definidas estas cosas, pero siempre puedes tirar de ellas si las necesitas :smt002 .

Amigos, os recomendaría que miraseis algo de DOM (http://es.wikipedia.org/wiki/Document_Object_Model) y html dinámico (javascript, vbs, etc). Viendo esto podreis hacer verdaderas maravillas con AutoIt aplicado a webs :smt002 .
markus escribió:Ha y solo me funciona con Iexplorer pero no con Firefox.
Sananda escribió:IE significa internet explorer. por eso solo te va con el explorer.

tienes que usar el objeto el objeto correspondiente a firefox.
Otra vez tiene razón Sananda.....estas funciones son especificar para Internet Explorer (las que comienzan por _IE...... ). Para que te funcione con firefox un compañero de habla inglesa ha creado una udf (funciones definidas por usuarios). Además, tendrías que instalar un addon y arrancarlo para que te funcionasen estas funciones (http://www.emesn.com/autoitforum/viewto ... .au3#p7584).
Haz una búsqueda en nuestro foro de "ff.au3" que es el nombre de la udf, y de "firefox", sin las comillas claro. Te saldrán muchos resultados, y muy recientes, ya que hace poco se ayudó bastante en este tema a nuestro compañero delmarote.
Te dejo un link con sus mensajes, que muchos van de este tema: http://www.emesn.com/autoitforum/search ... 2&sr=posts.

Si nos pones el código completo te podremos ayudar mejor.

Saludos.