IE y los PopUps en javascript

Tus preguntas. Algoritmos o Grupos de Comandos formando Programas Escripts.
Responder
chechu
Aprendiz de Mago
Mensajes: 32
Registrado: 23 Nov 2009, 18:34

IE y los PopUps en javascript

Mensaje por chechu »

Hola a todos!

Estoy alucinando con las funciones _IE. Una de las grandes ventajas que tiene es q puede trabajar en segundo plano con el browser. Estoy aprendiendo mucho, pero claro, cuanto más aprendo, más dudas tengo.

En este caso me surge la duda con el típico mensaje pop ups de alerta en javascript. ¿Como puedo aceptarlo?

Claro, lo fácil es poner el foco y hacer un controlclick. ¿Problema? Qué no queiro poner el foco porque no quiero perder la capacidad de trabajar en segundo plano.

He probado con IE_Action pero nanai. :smt018

¿Alguna sugerencia?
Gracias


EDITO: para decir que creo que lo más sencillo sería usar el _IEHeadInsertEventScript un objeto q mire si salta el mensaje y si salta, que acepte. ¿voy bien?
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: IE y los PopUps en javascript

Mensaje por Chefito »

Mira este post que puede que te ayude: http://www.emesn.com/autoitforum/viewto ... 2770#p4757
chechu escribió:para decir que creo que lo más sencillo sería usar el _IEHeadInsertEventScript un objeto q mire si salta el mensaje y si salta, que acepte. ¿voy bien?
No creo que vayas bien encaminado con esto :smt001 . Esta función sirve para insertar código dhtml en la página y decirle que salte este código cuando se genere un determinado evento.
Lo que a tí te haría falta es detectar paralelamente el evento del objeto que hace que salte el alert, y cuando este evento es detectado decirle que cliquee el botón "Aceptar" del alert. En el post que te pongo arriba te dice más o menos como cliquear ese alert sin necesidad de darle el foco.

Para capturar la acción de ese mismo evento de la web que hace que salte el alert (si es que salta a partir de un evento generado por un objeto....esto lo tendrías que mirar en el código de la página) debes hacerlo con la función objevent. Mira este post el cual capturo el evento onclick del botón "Buscar en google" (salta cuando se cliquea el botón) de la página de google: http://www.emesn.com/autoitforum/viewto ... 2013#p7865

Cuando encuentres el objeto y el evento que hace que salte el alert, capturalo como te he dicho antes, y en la función _Event_el_evento_que_sea, introduce la parte del código para cliquear el botón "Aceptar" del alert y ya está :smt003 .

Todo esto te lo he explicado para hacerlo a una página que no sea tuya. Si la página es tuya es más facil de hacer.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
chechu
Aprendiz de Mago
Mensajes: 32
Registrado: 23 Nov 2009, 18:34

Re: IE y los PopUps en javascript

Mensaje por chechu »

Hola Chefito

Muy buena tú explicación, :smt023 pero como siemrpe, hay un problema!

El botón que hace salta el evento con el alert no es un objeto (creo). Te pego el código que figura en la pagina web.

Código: Seleccionar todo

</center></div>
</body>
<body link="#FDF2DF" vlink="#FDF2DF" alink="#FF1515">
<BR>
<div align="center"><center>
<table border="0">
    <tr> 
        <td><A HREF="javascript:Revisar//'" onMouseOver="window.status='Consultar ';return true" onMouseOut="window.status=' '"><img src="images/Con5.jpg" border="0" width="107" height="28"></A></td>
<td>
    </tr>
</table>
</center></div>
</body>
</html>

Y el código en javascript al que hace referencia

Código: Seleccionar todo

function Revisar{
    var err = 0; 
       f = document.theForm;
       if (!FechaOk(f.Fecha,false))
          return;       
       if (!RangoOk(f.Ref1,f.Ref2))
          return;
       alert("Se va a ejecutar la consulta");
       f.submit();
}

En este caso, me pierdo, pues no hay objeto que encontrar ¿no? :smt009
¿cómo hacerlo entonces?
Gracias!!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: IE y los PopUps en javascript

Mensaje por Chefito »

Mira los links que te pongo e intenta hacer algo. Ese tipo de ventanas (ventanas emergentes) suelen tener una clase #32770. Los generados por alert creo que tienen el título "Mensaje de página web" y el botón es clase button e instancia 1. Sabiendo esto puedes atacar directamente al botón con controlclick. Mira el primer enlace.

Puede que este enlace reciente también te interese. Ataca el botón de una ventana emergente: http://www.emesn.com/autoitforum/viewto ... 8252#p8252.

Y sí, son todo objetos....para tu información :smt003 .
Intenta hacer algo.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
chechu
Aprendiz de Mago
Mensajes: 32
Registrado: 23 Nov 2009, 18:34

Re: IE y los PopUps en javascript

Mensaje por chechu »

Hola Chefito

Efectivamente es justo como has dicho la ventana de popup es

Código: Seleccionar todo

Microsoft Internet Explorer
#32770
Button
[CLASS:Button; INSTANCE:1]

pero como decía quiero cerrar este popup sin necesidad de darle el foco. Entiendo entonces que no se puede usar controlclick. Así que el primer ejemplo no valdría (por cierto muy buena la función adlibEnable, no la conocía :smt023 )

Por otro lado no veo como referenciar el botón de consulta (el que hace que salga el popup). No veo en ninguna parte del código nombre o id de ese botón ¿será porque está en javascript?

¿se puede referenciar entonces?

Se me ocurre q se podria crear un código para listar todos los objetos que hay en el brower. Este ejecutarlo con el popup e pantalla ¿saldría referenciado el objeto entonces?

IE_Action ([Objeto_maldito], "click"] :smt013


Por otro lado navegando por ahí encontré que es posible desactivar todos los alerts mediante javascript.

function alert() {}

¿se podría meter esta parte del código mediante _IEHeadinsertEventScript? ¿sabéis algo de esto?

Llevo horas dándole vueltas y estoy por olvidar y darme a la botella :smt010 :smt030

Gracias
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: IE y los PopUps en javascript

Mensaje por Chefito »

chechu escribió:pero como decía quiero cerrar este popup sin necesidad de darle el foco. Entiendo entonces que no se puede usar controlclick. Así que el primer ejemplo no valdría (por cierto muy buena la función adlibEnable, no la conocía )
Yo te estoy indicando códigos para hacerlo sin dale el foco a esta ventana. Si se puede hacer con la función controlclick, pero a veces a este tipo de ventanas hay que llamar varias veces a esta función para que cliquee.
AdlibEnable ya no existe. Ha sido sustituída por AdlibRegister en la nueva versión.
chechu escribió:Por otro lado no veo como referenciar el botón de consulta (el que hace que salga el popup). No veo en ninguna parte del código nombre o id de ese botón ¿será porque está en javascript?
Si te refieres a esta parte del código:
><A HREF="javascript:Revisar//'" onMouseOver="window.status='Consultar ';return true" onMouseOut="window.status=' '"><img src="images/Con5.jpg" border="0" width="107" height="28"></A>
no es un botón, es un link asociado a una images (supongo que tenga forma de botón). Debes utilizar las funciones _IE.... para trabajar con links.
chechu escribió:Se me ocurre q se podria crear un código para listar todos los objetos que hay en el brower. Este ejecutarlo con el popup e pantalla ¿saldría referenciado el objeto entonces?
Sí, se podría listar todos los objetos y encontrar el tuyo por gracias a alguna propiedad, valor, texto, texto html, etc. Hay muchas posibilidades.

Si nos das la página web y nos dices el botón que hace que salte el alert te podremos ayudar mucho mejor. Si no nos das nada, no creo que podamos ayudarte mucho más.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
chechu
Aprendiz de Mago
Mensajes: 32
Registrado: 23 Nov 2009, 18:34

Re: IE y los PopUps en javascript

Mensaje por chechu »

Hola Chefito, leyéndote parece q es posible hacer cualquier cosa en auotit (pero claro con tus conocimientos jeje) :smt024

Te pongo una web q ocurre exactamente lo mismo

https://www.travelclub.es/enrolamiento.cfm?PATROS=RPS

Entramos en la web, pulsamos (directamente sin rellenar nada) el botón Enviar, y aparece el alert "Hay datos incompletos. Revisa el formulario"

¿cómo hacer que se autopulse el Enter en ese mensaje? ¿es posible? :smt001

Gracias !!
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: IE y los PopUps en javascript

Mensaje por Chefito »

Puffffffff. Esto es bastante dificil.
Además, aunque te parezcan iguales las páginas no lo son.
He podido pulsar el botón enviar pero no he podido cliquearlo. Cuando sale el alert se para el script :smt017 . No se.
El código para cliquearlo es este:

Código: Seleccionar todo

#include <ie.au3>
$oIE=_IECreate("https://www.travelclub.es/enrolamiento.cfm?PATROS=RPS")
$oElementos=$oIE.document.getElementsByTagName("input")
$oElementos(51).click
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
chechu
Aprendiz de Mago
Mensajes: 32
Registrado: 23 Nov 2009, 18:34

Re: IE y los PopUps en javascript

Mensaje por chechu »

Muchas gracias chefito! voy a probarlo y te cuento.
:smt023
Responder