Jai lhébergement mutualisé Dreamhost, et jessaie dexécuter Firefox 3.0 dessus sans tête pour lutiliser avec Selenium.
Lorsque jessaye de lexécuter (~/local/bin/firefox/firefox
), jobtiens le message derreur suivant:
error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
Comment puis-je exécuter Firefox sous Linux sans avoir besoin de ce fichier objet partagé?
Réponse
Je sais que cest une question assez ancienne, mais je voulais pour ajouter une réponse plus récente car je me suis fait diriger ici par Google et jai dû chercher un moment pour trouver la réponse.
À partir de Firefox 57, vous pouvez exécuter en mode sans tête simplement en installant Firefox et en exécutant:
firefox -headless http://test.com/
Consultez la documentation des développeurs Firefox ici.
Commentaires
- Veuillez noter que sur les premières versions, le mode sans tête de Firefox nécessitait toujours linstallation de GTK3. Ce problème est maintenant résolu, pour autant que je sache.
Réponse
Vous ne pouvez pas exécuter Firefox sans toutes les bibliothèques Gtk dont il a besoin, mais cela est facilement résolu en installant les bibliothèques. Normalement, vous installez Firefox via un système de gestion de paquets et cela extrait toutes les bibliothèques requises.
Pour exécuter Firefox normalement, vous avez besoin dun serveur X (cest la partie qui affiche les fenêtres et leur contenu, par opposition à des choses comme Gtk qui sont des bibliothèques que lapplication utilise pour construire le contenu). Cest quelque chose que vous nexécuteriez pas habituellement sur un serveur. Il y a très peu de choses que vous pouvez faire dans Firefox sans serveur X, je ne sais pas si Selenium en fait partie.
Pour exécuter Firefox sur votre serveur, exécutez un serveur X «virtuel». Un simple est Xvfb ( v irtual f rame b uffer X serveur). Il « fait partie de la distribution du serveur X.org . Exemple dutilisation:
Xvfb :19 -screen 0 1024x768x16 & export DISPLAY=:19 firefox &
Commentaires
- Excellent, bravo Gilles, cest fait. Jai également trouvé ces articles utiles pour faire fonctionner Xvfb: alittlemadness.com / 2008/03/05 / running-selenium-headless et blog.kabisa.nl/2010/05/24/…
Réponse
Vous ne pouvez « t; il est lié aux bibliothèques clientes X et Gtk +, et je ne pense pas quil soit même possible de le construire sans eux.
Même dans la version sans tête de Firefox, GTK + est toujours nécessaire .
Réponse
Puisque Selenium est un outil de test GUI, je le ferais Jai du mal à croire quil puisse fonctionner sans X.
Donc, ma meilleure estimation est que votre serveur headless nécessite une installation X telle que celle suggérée par Gilles. Il existe plusieurs alternatives similaires.
Réponse
Vous pouvez
- utiliser un Firefox dans un framebuffer virtuel:
xvfb-run -a firefox
- utilisez SlimerJS (un moteur de rendu / Gecko intégré de Firefox) avec xcfb,
- utilisez PhantomJS comme WebKit intégré sans avoir besoin dun support daffichage et de sélénium via GhostDriver – si WebKit vous convient.
Commentaires
- Je pense que vous voulez dire ' xvfb-run -a … ' et pas xvfb, non?
- Merci 🙂 Peut-être que cest changé entre-temps?