Minulla on Dreamhostin jaettu isännöinti ja yritän suorittaa siinä Firefox 3.0: n päättömästi käytettäväksi Seleniumin kanssa.
Kun yritän suorittaa sen (~/local/bin/firefox/firefox
), saan seuraavan virhesanoman:
error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
Kuinka voin Suorita Firefox Linuxissa tarvitsematta tätä jaettua objektitiedostoa?
Vastaa
Tiedän, että tämä on melko vanha kysymys, mutta halusin lisätäksesi tuoreemman vastauksen, kun Google ohjasi minut tänne ja jouduin etsimään vastausta jonkin aikaa.
Firefox 57: stä alkaen voit ajaa ilman päätettä yksinkertaisesti asentamalla Firefoxin ja suorittamalla:
firefox -headless http://test.com/
Katso Firefoxin kehittäjien asiakirjat täältä.
Kommentit
- Huomaa, että ensimmäisissä julkaisuissa Firefoxin Headless-tila ei silti poistanut GTK3: ta asennettuna. Tämä ongelma on jo ratkaistu, sikäli kuin tiedän.
Vastaa
Et voi käyttää Firefoxia ilman kaikkia Gtk-kirjastoja se vaatii, mutta se on helppo ratkaista asentamalla kirjastot. Normaalisti asennat Firefoxin paketinhallintajärjestelmän kautta, mikä vetää kaikki vaaditut kirjastot sisään.
Firefoxin normaaliin käyttämiseen tarvitaan X-palvelin (se on osa, joka näyttää ikkunat ja niiden sisällön, toisin kuin Gtk, jotka ovat kirjastoja, joita sovellus käyttää sisällön rakentamiseen). Tätä ei yleensä suoriteta palvelimella. Firefoxissa voi tehdä hyvin vähän asioita ilman X-palvelinta, en tiedä onko Selenium yksi niistä.
Suorita ”Firefox” palvelimellasi suorittamalla ”virtuaalinen” X-palvelin. Yksinkertainen on Xvfb ( v irtual f rame b uffer X palvelin). Se on X.org-palvelinjakelussa . Esimerkkikäyttö:
Xvfb :19 -screen 0 1024x768x16 & export DISPLAY=:19 firefox &
kommentit
- Erinomainen, hurraa Gilles, se on tehty. Pidin myös näistä artikkeleista hyödyllisiä Xvfb: n käynnistämisessä: alittlemadness.com / 2008/03/05 / running-selenium-headless ja blog.kabisa.nl/2010/05/24/…
Vastaa
Et voi ”t; se on linkitetty X- ja Gtk + -asiakaskirjastoihin, enkä usko, että sitä on edes mahdollista rakentaa ilman niitä.
Jopa Firefoxin päätöntä versiota GTK + tarvitaan edelleen .
Vastaus
Koska Seleeni on graafisen käyttöliittymän testaustyökalu, haluaisin on vaikea uskoa, että se voi toimia ilman X: ää.
Joten paras arvaukseni on, että päätäsi palvelimesi vaatii Gillesin ehdottaman X-asennuksen. On olemassa useita vastaavia vaihtoehtoja.
Vastaa
Voit
- käyttää Firefoxia virtuaalisessa kehyspuskurissa:
xvfb-run -a firefox
- käytä SlimerJS (upotettu Gecko / renderointi Firefox) xcfb: n kanssa,
- käytä PhantomJS upotettuna WebKit-tiedostona ilman näyttöä ja seleenitukea ilman GhostDriver – jos WebKit on sinulle sopiva.
Kommentit
- Luulen tarkoittavan ' xvfb-run -a … ' eikä xvfb, eikö?
- Kiitos 🙂 Ehkä se muuttunut sillä välin?