CLICK DENTRO DE UNA PAGINA WEB

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
xmaurox
Mensajes: 8
Registrado: 24 Abr 2015, 11:51

CLICK DENTRO DE UNA PAGINA WEB

Mensaje por xmaurox »

Amigos tengo un gran problema que espero que alguien me pueda tender una mano.
necesito mediante autoit dar click en botones de una página web. algo así como controlclick pero en una url.
tenía pensado hacerlo mediante la herramienta de ayuda que trae autoit "autoit window info" pero me di cuenta que no es posible, yo la he usado para escribir en las ventanas de programas desatendidos, pero en una web ni idea como hacerlo.
bueno lo único que se me ocurrió fue enviar los comandos con las pulsaciones del teclado.
algo así como tab tab enter tab enter.... etc
pero me gustaría mediante el script conocer el nombre del botón y oprimirlo. y así con los demás. no me funcionaría con click mediante el mouse porque la página se actualiza a medida que carga y no sería la misma ubicación en la pantalla.
otra cosa que también deseo saber, si es posible indicarle al programa que espere a que un botón cambie de 0 a 1 y ahí lo oprima. algo así como lo que ocurre con las descargas de un servidor de internet cuando tienes que esperar los 5 segundos y ahí te da la opción para oprimirlos y descargar el archivo. No me serviría usar el comando sleep porque no lo pretendo usar para eso, pero el caso es similar.
Busqué dentro del foro algo similar, pero no encontré algo que me sirviera.
bueno espero que alguien me pueda ayudar u orientar en que comandos podría utilizar.

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

Re: CLICK DENTRO DE UNA PAGINA WEB

Mensaje por Chefito »

Te recomiendo que mires la udf ie.au3 para empezar. Es de lo más fácil de utilizar y para empezar a trabajar con páginas web está bien. Luego puedes utilizar otros objetos más complicados pero para mi forma de ver más efectivos con winhttp, inet, etc. El último mensaje que he escrito trata de estas cosas: http://www.emesn.com/autoitforum/viewto ... =12&t=4377

Para ver el tema de ie.au3, mira en la ayuda las funciones que empiezan por _ie .

Por ejemplo, te puede interesar las funciones _IELinkClickByIndex y _IELinkClickByText, entre otras.
xmaurox escribió: Busqué dentro del foro algo similar, pero no encontré algo que me sirviera.
No me lo creo. En el foro hay un montón de información sobre estos temas. No has buscado lo que tienes que buscar :smt003 :smt024 .
Ya te he dado nuevas funciones a buscar. Empieza :smt003 .
Además, hace ya mucho tiempo, recuerdo haber puesto en el foro precisamente un código que controlaba un contador de segundos de una página web, para que cuando acabase esa cuenta, hiciese algo. Pero hace mucho de eso y no recuerdo de que iba el tema exactamente :smt033 .

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 ;).
xmaurox
Mensajes: 8
Registrado: 24 Abr 2015, 11:51

Re: CLICK DENTRO DE UNA PAGINA WEB

Mensaje por xmaurox »

Muchas gracias por responder. :smt024
bueno la verdad es que si me sirvió tu ayuda :smt041 , pero aún el script que tengo no me soluciona el problema. :smt009
como me comentabas con el comando _IELinkClickByIndex he podido llegar a una solución a medias, pero al menos me ha ayudado para empezar.
con el comando _IELinkClickByText no me serviría porque para la tarea que deseo aplicarlo todos los botones poseen el mismo nombre. Algo similar cuando respondes una encuesta o alguna votación. Donde existen como 20 botones que dicen votar. Pero yo deseo dar click solo a alguno de ellos.
La forma que me ha dado resultado es algo similar a esto:

#include <IE.au3>
;ejemplo
Local $oIE = _IECreate("https://www.PAGINA.com")
Send("{TAB 10}")
Send("{ENTER}")
send("{TAB 3}")
send("{ENTER}")
_IELoadWait($oIE)

el problema de este ecript es que tengo que esperar a que la página se carge para que se realice la operación y ese es un gran problema porque necesito que los click se realicen lo más rápido posible.
Lo otro que tengo pensado que para ti debe ser muy fácil hacer y que yo he tratado de varias formas pero no he tenido solución. es en vez de indicar la página web y esperar el tiempo de carga. Mediante un comando if dar la condición si presiono una tecla se ejecute el script. algo como esto. que obviamente está mal porque no me funciona



if send("{x}") then ; al presionar la tecla x deberia arrancar el script

Send("{TAB 10}")
Send("{ENTER}")
send("{TAB 3}")
send("{ENTER}")

endif

me gustaría saber si existe alguna herramienta para saber mediante el comando _IELinkClickByIndex a que numero corresponde un cierto botón en una página cualquiera. A mí me funcionó pero probando con números hasta que lo encuentro

acerca de los comandos que mencionaste winhttp y inet trate de ver ejemplos pero creo que son muy avanzados para mi manejo en autoit
seguiré buscando info para ver si consigo entender su funcionamiento.

Saludos y otra vez gracias compa!
Responder