Quelle est la meilleure façon de faire de script web/web macros?
Je suis en train de rationaliser certaines de nos tâches à mon lieu de travail, et il semble que beaucoup de nos développeurs de temps est consacré à des semi-mécanique des tâches sur le web (en particulier, l'édition de magasins en ligne qui utilisent des interfaces web). En tant que tel, j'ai été à la recherche dans un certain nombre de solutions qui permettront à ces tâches par des scripts depuis que j'chiffre qui pourrait nous sauver un peu de temps par tâche. Donc, avant que j'ai vraiment commencé à creuser dans l'un de ces, je me demandais juste si le Débordement de la Pile de la communauté a eu des recommandations sur le web, les scripts/macro solution serait la meilleure.
Voici les conditions:
- Doivent être capables d'interagir avec des formulaires web (et pas seulement de téléchargement d'une page et en raclant le fichier script doit modifier des contrôles dans un formulaire web, puis soumettre ce formulaire)
- Les formulaires que nous avons à modifier sont de sécuriser les formes, de sorte que la solution de script doit être capable de gérer cela (c'est à dire qu'il est inutile pour nous d'avoir un incroyablement puissante solution de script si un être humain aura à s'asseoir et à le surveiller et de le réactiver manuellement la connexion toutes les quelques minutes)
- Il serait vraiment, vraiment, vraiment préférable si elle pouvait lire les fichiers locaux et de faire un peu de base de la chaîne de remplacement/de manipulation sur eux (par exemple, il serait agréable d'avoir une liste de variables ou d'un code HTML dans un fichier texte et ensuite le script de remplacer le jeton "STORENAME" avec le nom de l'enseigne avant d'insérer le code dans le formulaire)
Voici les solutions de scripting qui sont sur mon radar jusqu'à présent (je n'ai pas vraiment regardé en tout de ces, bien que j'ai joué un peu avec Chickenfoot):
- Chickenfoot
- iMacros pour Firefox
- libwww-perl
- libwww pour unix et C (lors de la recherche pour libwww pour perl je suis tombé sur ce, dont j'ignorais l'existence jusqu'à maintenant)
- plus "générale" macro solution comme AutoHotKey
A quelqu'un ici sur un Débordement de Pile essayé l'une de ces solutions? Si oui, qu'avez-vous aiment ou n'aiment pas parler d'eux? Quelqu'un peut-il recommander un qui n'est pas sur la liste? (Ce n'est pas une exclusivité ou une liste exhaustive). Je vraiment l'amour pour automatiser beaucoup de nos procédés mécaniques, et j'espère que le Débordement de la Pile de la communauté qui peut nous aider pour que nous espérons éviter qu'une grande partie de l'esprit-engourdissement de la partie de l'oeuvre :).
edit: Re: la plate - forme, Nous avons principalement WindowsXP bornes au travail, mais 1) nous avons un peu de Mac Pc tests, afin qu'OS X est une option viable, et 2) si elle signifierait l'automatisation d'un grand nombre de ces tâches, je vais construire une Linux box, si c'est nécessaire. Afin de plate-forme est un peu un non-problème.
Vous devez vous connecter pour publier un commentaire.
Une autre option est d'utiliser AutoIT + Firefox + mozrepl + FF.au3. C'est puissant comme AutoIT opère en dehors du navigateur (c'est un fantastique outil d'automatisation en lui-même), de sorte que vous pouvez travailler à la présentation de plusieurs formulaires de navigateur sans perdre contexte. Alors les FF.au3 script vous permet tout simplement de contrôle de Firefox par AutoIT3.
Je suis un grand fan de Sélénium
http://www.seleniumhq.com
conçu pour gérer automatisé de test du navigateur mais avec l'aide de scripts (plusieurs langues), vous pouvez concevoir des modèles de macro qui va remplir les formulaires et les tels sur la base de variables
aussi: quelqu'un connait un bon macro qui fonctionne avec le Flash?? Ne semble pas javascript est capable de traverser cette ligne
iMacros pour Firefox est gratuit et c'est tout ce dont vous avez besoin! Il automatise toute l'activité du navigateur et fonctionne, tout simplement! Il peut également lire/écrire des données externes à remplir des formulaires, et beaucoup de beaucoup plus. Je suis un grand fan de cet add-on Firefox!
J'aime vraiment le watir cadre (en cours d'exécution sur ruby) -- programmable, facile, utilise IE pour automatiser le Web (et donc, vous bénéficiez d'une véritable comportement du navigateur). Bien sûr, c'est Windows uniquement, vous n'avez pas spécifié si c'est ce que vous utilisez.
Nous avons utilisé watir automatiser les tests d'une webapp, et nous en sommes très satisfaits.
Quelques suggestions:
Edit: je suis en supposant que ces agirait sur les pages web contenant les données que vous souhaitez soumettre à l'formes.
@Asaf Bartov, en fait, Watir n'est pas seulement sur Windows. Il y a aussi des FireWatir qui fonctionne sur Windows, Linux et Mac, et SafariWatir qui fonctionne sur Mac.
http://wtr.rubyforge.org/
http://wiki.openqa.org/display/WTR/FireWatir
http://safariwatir.rubyforge.org/
En fait, je suis un grand fan de Chickenfoot, que j'ai commencé à utiliser beaucoup récemment pour fournir des fonctionnalités de scripting pour Zotero, une autre extension de Firefox.
Utilisation:
Firefox + iMacros pour récupérer:
Accédez à la page que vous souhaitez (e.g yahoo.com), apporter iMacro en bref, atteint un niveau record et de recherche pour
un peu de texte. Lors de la première page affiche, Enregistrez la page dans un fichier.
Vous avez maintenant une page que vous voulez.
Vous avez terminé la corvée à ce point.
Enregistrer la macro et lui donner un nom.
La prochaine fois, il vous suffit d'exécuter la macro que vous venez d'enregistrer.
Vous ensuite de nettoyer le code html que vous avez obtenu à l'aide de cette:
Maintenant, vous avez une propre page html avec une ligne, un long.
Maintenant, vous pouvez couper et trancher comme vous le souhaitez en utilisant une expression régulière.
Choses à savoir:
Vous pouvez démarrer la macro dans firefox via une tâche cron (ligne de commande) si vous avez besoin d'une automatisation complète.
Si vous utilisez libwww-perl, alors ne vous arrêtez pas là. Utilisez WWW::Mechanize, qui est un wrapper autour de LWP qui ne le navigateur interaction que vous souhaitez. L'inconvénient: Il ne gère pas le JavaScript (encore).
WWW::Mechanize page d'accueil
nous utilisons le iMacros outil que vous avez mentionné avec un bon succès:
Firefox + iMacros
Noter qu'il est également libre IE addon! La grande chose à ce sujet est que exactement les mêmes macros fonctionnent dans les deux navigateurs. À mon humble avis, très utile pour une installation rapide et facile des tests de site web et web en général d'automatisation.
Tim
mon impression de IMacros est vous besoin de payer de débloquer un grand nombre de goodies, je suis donc allé avec Chickenfoot. Malheureusement, le Chickenfoot liste de diffusion est très calme ces derniers temps, alors je ne suis pas confiant sur son avenir...
WatiN, .la version net de Watir. Je l'aime beaucoup.
Je suis en utilisant iMacro/.net pour une extraction de données du projet. J'aime la facilité de script pour iMacros, ce qui est important puisque l'application peut avoir jusqu'à 60+ sites web pour extraire des données à partir de. Pour ce projet, les frais généraux d'exécution iMacros est la valeur de l'sauvé de temps de développement. Ce n'est pas la solution idéale, mais c'est une façon de faire l'interface avec un autre site web de données, en supposant qu'ils ne fournissent pas une interface appropriée. Neat, c'est que j'ai créé un petit cluster de serveurs de iMacros grattoirs pour aider répartir la charge. Droit maintenant, les utilisateurs peuvent accéder à l'application des serveurs par le biais d'un site web pour les demandes ad hoc, mais finalement, je tiens à le faire évoluer vers quelque chose de plus streaming ligne.
Il y en a plusieurs options pour python:
Voici un court et claire blog (bien qu'un peu daté) comparant la façon dont la même tâche simple qui peut être accompli à l'aide de différentes libs:
http://blog.spritecloud.com/2010/01/posting-forms-with-python/
Noter que
Clientform
également mentionné qu'il y avait une partie de mécaniser aujourd'hui.