¿Existe un equivalente de la herramienta * expect * de Don Libes para la interacción de secuencias de comandos con páginas web?

StackOverflow https://stackoverflow.com/questions/609177

Pregunta

En los viejos tiempos de las aplicaciones de consola interactivas, Don Libes creó una herramienta llamada Expect , que habilitó escribir guiones Tcl que interactuaran con estas aplicaciones, como lo haría un usuario. Esperar tenía dos enormes beneficios:

  • Era posible escribir interacciones que de otra forma habrían tenido que repetirse a mano, tediosamente. Un ejemplo clásico fue el acceso telefónico a Internet (desde los días anteriores a PPP).

  • Era posible escribir scripts para probar las propias aplicaciones interactivas, mediante programación, como parte de un conjunto de regresión.

Hoy la mayoría de las aplicaciones interactivas están en la web, no en la consola. De ahí mi pregunta: ¿hay alguna herramienta que brinde la capacidad de interactuar con páginas web y formularios web mediante programación, de la misma manera que Expect brinda la capacidad de interactuar con aplicaciones de consola mediante programación?

(Lo más cercano que conozco es Chickenfoot .)

¿Fue útil?

Solución

Quizás esté buscando Selenium

Otros consejos

He usado Selenium RC junto con Python para impulsar las interacciones de la página web mediante programación . Esto me ha permitido escribir pruebas de usuario bastante extensas en las que se controlan los formularios y las entradas y se miden sus resultados.

Consulte el Selenium IDE en Firefox (como se mencionó anteriormente). Le permite grabar pruebas en el navegador y reproducirlas, ya sea utilizando el propio IDE o la aplicación de control remoto.

Perl Mechanize funciona bastante bien para este problema exacto.

HTTPS y algunos problemas de autenticación son difíciles a veces. Voy a publicar un par de preguntas sobre eso en el futuro.

Hice un montón de trabajo de Expect en una vida anterior y siempre pensé que el libro Expect de Don Libes era uno de los libros técnicos mejor escritos y más esclarecedores que jamás haya visto.

Sin duda, diría que la biblioteca WWW :: Mechanize de Perl es lo que quieres. Noté anteriormente que estaba teniendo problemas para encontrar documentación. ¡Hay buena documentación para ello! Busque la distribución del módulo en search.cpan.org y vea qué incluye todo. Hay preguntas frecuentes, libro de cocina con ejemplos, etc. Además, siempre he podido obtener ayuda en la web. Si no puede obtenerlo aquí, intente en use.perl.org o perlmonks.org. WWW :: El autor de Mechanize, Andy Lester, está presente en Stack Overflow . (También es un tipo amable y servicial).

Creo que WWW :: Mechanize también tiene un programa análogo al programa autoexpect de Expect: configura un proceso proxy que ejecuta este programa como servidor, apunta su navegador como proxy, realiza las acciones que desea automatizar , y luego el programa proxy le ofrece un programa WWW :: Mechanize para que lo use como base para su proyecto. (Si funciona como autoexpect, seguramente querrás hacer modificaciones desde allí).

Como se mencionó anteriormente, WWW :: Mechanize es un navegador (para ser más exactos, es un cliente web o cliente http) que resulta programable. La última vez que miré, incluso había trabajo en progreso para que admitiera JavaScript.

Además de Selenium, si estás haciendo lo de Ruby / Rails, hay Webrat .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top