Existe-t-il un équivalent de l'outil * expect * de Don Libes pour l'interaction de script avec les pages Web?

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

Question

À l’époque des applications consoles interactives, Don Libes a créé un outil appelé Expect , qui permettait d’écrire des scripts Tcl qui interagissaient avec ces applications, comme le ferait un utilisateur. Expect a eu deux avantages considérables:

  • Il était possible de programmer des interactions qui, autrement, auraient dû être répétées manuellement, fastidieusement. Un exemple classique est l’enfer de la connexion Internet par modem (à partir de l’époque précédant PPP).

  • Il était possible d'écrire des scripts pour tester ses propres applications interactives, par programmation, dans le cadre d'une suite de régression.

Aujourd'hui, la plupart des applications interactives se trouvent sur le Web, pas sur la console. D'où ma question: existe-t-il un outil permettant d'interagir par programme avec des pages Web et des formulaires Web, tout comme Expect offre la possibilité d'interagir avec des applications console par programme?

(À ma connaissance, la chose la plus proche est Chickenfoot .)

Était-ce utile?

La solution

Vous recherchez peut-être Selenium

Autres conseils

J'ai utilisé la Selenium en conjonction avec Python pour générer des interactions de page Web par programme . Cela m'a permis d'écrire des tests utilisateur assez complets dans lesquels les formulaires et les entrées sont pilotés et leurs résultats mesurés.

Consultez l'IDE Selenium sur Firefox (comme indiqué ci-dessus). Il vous permet d’enregistrer des tests dans le navigateur et de les lire, soit à l’aide de l’EDI lui-même, soit de l’application Remote Control.

Perl Mechanize fonctionne plutôt bien pour ce problème précis.

HTTPS et certains problèmes d’authentification sont parfois difficiles. Je posterai quelques questions à ce sujet à l'avenir.

J'ai effectué une tonne de travaux d'Expect dans une vie antérieure et j'ai toujours pensé que le livre Expect de Don Libes était l'un des ouvrages techniques les mieux écrits et les plus instructifs que j'aie jamais vus.

Sans aucun doute, je dirais que la bibliothèque WWW :: Mechanize de Perl est ce que vous voulez. Je remarque ci-dessus que vous aviez du mal à trouver de la documentation. Il y a une bonne documentation pour cela! Recherchez la distribution du module sur search.cpan.org et voyez ce que tout contient. Il y a une FAQ, un livre de recettes avec des exemples, etc. De plus, j'ai toujours pu obtenir de l'aide sur le Web. Si vous ne pouvez pas l'obtenir ici, essayez avec use.perl.org ou perlmonks.org. WWW :: L'auteur de Mechanize, Andy Lester, est présent sur le débordement de la pile . (Il est également un gars sympathique et serviable.)

Je pense que WWW :: Mechanize a également un programme analogue au programme autoexpect d’Expect: vous configurez un processus proxy qui exécute ce programme en tant que serveur, vous pointez votre navigateur sur celui-ci, vous effectuez les actions que vous souhaitez automatiser. , puis le programme proxy vous fournit un programme WWW :: Mechanize que vous pourrez utiliser comme base pour votre projet. (Si cela fonctionne comme autoexpect, vous voudrez certainement y apporter des modifications.)

Comme mentionné ci-dessus, WWW :: Mechanize est un navigateur (pour être plus précis, il s’agit d’un client Web ou d’un client http) qui est programmable. La dernière fois que j'ai regardé, des travaux étaient en cours pour le rendre compatible avec JavaScript.

Outre Selenium, si vous utilisez Ruby / Rails, il existe Webrat .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top