Qu'est-ce qu'un bon outil pour effectuer des captures d'écran avec le support Javascript? [fermé]

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

  •  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. :)

Était-ce utile?

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:

  • PhantomJS est un navigateur Webkit sans tête.
    • pjscrape est un framework de grattage basé sur PhantomJS et jQuery.
    • CasperJS est un script de navigation & amp; Utilitaire de test bsaed sur PhantomJS, si vous devez faire un peu plus que pointer sur les URL à effacer.
  • Zombie pour Node.js

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.

Vous pouvez essayer le grattoir d'écran open source de Scrape.it

.

Mise à jour: à partir du 4 avril 2013, Scrape.it Screen Scraper est un logiciel libre sur github. .

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.

https://stackoverflow.com/questions/81566#83387

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