Qu'est-ce qu'un bon outil pour effectuer des captures d'écran avec le support Javascript? [fermé]
-
02-07-2019 - |
Question
Existe-t-il une bonne suite de tests ou un bon ensemble d'outils capables d'automatiser la navigation sur les sites Web - avec la prise en charge de Javascript - et de collecter le code HTML des pages?
Bien sûr, je peux gratter du code HTML droit avec BeautifulSoup. Mais cela ne me convient pas pour les sites qui nécessitent Javascript. :)
La solution
Vous pouvez utiliser Selenium ou Watir pour piloter un vrai navigateur.
Il existe également des navigateurs sans tête basés sur JavaScript:
Personnellement, je connais le mieux Selenium, qui prend en charge l’écriture de scripts d’automatisation dans un grand nombre de langues et dispose d’outils plus sophistiqués, tels que l’excellent Selenium IDE pour Firefox, qui peut être utilisé pour écrire et exécuter des cas de test et exporter des scripts de test dans de nombreuses langues.
Autres conseils
L'utilisation de HtmlUnit est également une possibilité.
HtmlUnit est un navigateur sans interface graphique pour Programmes Java " ;. Il modélise HTML documents et fournit une API qui vous permet d'invoquer des pages, de remplir formulaires, liens de clic, etc ... tout comme vous faites dans votre " normal " navigateur.
Il supporte assez bien JavaScript (qui s'améliore constamment) et est capable de travailler même avec assez complexe Bibliothèques AJAX, simulant soit Firefox ou Internet Explorer selon sur la configuration que vous souhaitez utiliser.
Il est généralement utilisé pour les tests fins ou pour récupérer des informations à partir de sites Web.
Selenium encapsule maintenant htmlunit afin que vous n'ayez plus besoin de démarrer un navigateur. La nouvelle API WebDriver est également très facile à utiliser. Le premier exemple utilise le pilote htmlunit
Il serait très difficile de coder une solution qui fonctionnerait avec n’importe quel site arbitraire. Chaque mise en œuvre du menu de navigation peut être assez unique. J'ai beaucoup travaillé avec les scrapers et, si vous connaissez le site que vous souhaitez cibler, voici comment je l'aborderais.
Généralement, si vous analysez le javascript utilisé dans un menu de navigation, il est assez facile d’utiliser des expressions régulières pour extraire l’ensemble complet des variables utilisées pour créer le menu de navigation. Je n'ai jamais utilisé Beautiful Soup, mais d'après votre description, il semblerait que cela ne fonctionne que sur des éléments HTML et ne puisse pas fonctionner à l'intérieur des balises de script.
Si vous rencontrez toujours des problèmes, ou si vous avez besoin d'émuler des formes de formulaire ou ajax, installez Firefox et installez le LiveHttpHeaders plug-in. Ce plugin vous permettra de parcourir manuellement le site et de capturer les URL en cours de navigation, ainsi que les cookies éventuellement transmis au cours de votre navigation manuelle. C’est ce dont vous avez besoin de la part de votre serveur Scraperbot pour lui demander d’obtenir une réponse valide du ou des serveurs Web cibles. Cela capturera également tous les appels ajax effectués et, dans de nombreux cas, les mêmes appels doivent être implémentés dans votre racleur pour obtenir les réponses souhaitées.
Mozenda est également un excellent outil à utiliser.
Gardez à l'esprit que la fantaisie javascript gêne le modèle DOM interne du navigateur et ne fait rien pour le code HTML brut.
J'utilise Selenium pour cela et je trouve que cela fonctionne très bien. Selenium fonctionne dans le navigateur et fonctionnera avec Firefox, Webkit et IE. http://selenium.openqa.org/
@insin Watir n’est pas IE uniquement.