Página 1 de 1

Duda: al ejecutar script "clickFormButton" en Perl

NotaPublicado: 2012-06-18 22:37 @984
por daviande7
Hola a todos, como ya sabrán soy nuevo en el foro y también en el manejo del Perl :D

Navegando por la lista de tutoriales me interesó mucho el de "crear robots que naveguen
en Internet". Empecé a hacer el tutorial, copié y pegué el código que se mostraba tal
cual en mi Perl.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!c:/perl/bin
  2.  
  3. #Iniciamos nuestros módulos
  4. use Win32::OLE;
  5. use Win32::SAM;
  6.  
  7. #Obligamos a hacer flush
  8. $| = 1;
  9.  
  10. #Indicamos como manejar errores
  11. $Win32::OLE::Warn = 3;
  12.  
  13. #Iniciamos nuestro navegador
  14. StartIE();
  15.  
  16. #Cargamos la página de Google
  17. my $segundos = Navigate("http://google.com/");
  18. print "Google tardo $segundos segundos en cargar.\n";
  19.  
  20. #Llenamos el campo de búsqueda
  21. SetEditBox("q","Perl en Español");
  22.  
  23. #Hacemos submit de la forma
  24. $segundos = ClickFormButton("btnG");
  25. print "La página de resultados tardo $segundos segundos en cargar\n";
  26.  
  27.  
  28. #Salimos del programa
  29. exit(1);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Cuando ejecuté el código todos los procesos se realizaron correctamente excepto uno:
el script que dice clickFormButton.

Por favor, ¿podrían decirme a qué se debe esto? Seguí todas las instrucciones tal cual, copié y pegué el código, ¿qué está mal?

Por si acaso: uso Windows 7 y el último Internet Explorer.

Espero que me puedan resolver mi duda, gracias de ante mano.

PD: ya me aseguré que el nombre del botón submit es el mismo que se indica
en el script.

Re: Duda: al ejecutar script "clickFormButton" en Perl

NotaPublicado: 2012-06-19 04:42 @238
por explorer
Bienvenido a los foros de Perl en Español, daviande7.

Ha pasado tiempo desde que se hizo el programa, y la página de Google ha cambiado bastante: más controles, más JavaScript. El botón de envío ya no es un campo <input>, sino un <button>... quizás esta sea la razón.

Te aconsejo que pruebes el programa con otra página que tenga un formulario más sencillo, y luego vas probando con otros más complicados.

O quizás exista un método en Win32::OLE que nos permita pulsar lo que queramos, no solo un botón dentro de un formulario, sino también cualquier otro tipo de elemento.