Am găzduit Dreamhost în comun și încerc să rulez Firefox 3.0 pe el fără cap pentru a fi folosit cu Selenium.
Când încerc să-l rulez (~/local/bin/firefox/firefox
), primesc următorul mesaj de eroare:
error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
Cum pot rulați Firefox pe Linux fără a necesita acest fișier de obiect partajat?
Răspuns
Știu că este o întrebare destul de veche, dar am vrut pentru a adăuga un răspuns mai recent, așa cum am fost îndrumat de Google și a trebuit să caut un timp pentru a găsi răspunsul.
Începând cu Firefox 57, puteți rula în modul fără cap, pur și simplu instalând Firefox și executând:
firefox -headless http://test.com/
Consultați aici documentele pentru Firefox.
Comentarii
- Vă rugăm să rețineți că la primele versiuni, modul fără cap Firefox a necesitat încă GTK3 instalat. Această problemă este rezolvată până acum, din câte știu.
Răspuns
Nu puteți rula Firefox fără toate bibliotecile Gtk pe care le necesită, dar asta se rezolvă ușor instalând bibliotecile. În mod normal, ați instala Firefox printr-un sistem de gestionare a pachetelor și acest lucru ar atrage toate bibliotecile necesare.
Pentru a rula Firefox în mod normal, aveți nevoie de un server X (care este partea care afișează ferestrele și conținutul acestora, spre deosebire de lucruri precum Gtk care sunt biblioteci pe care aplicația le folosește pentru a construi conținutul). Acest lucru nu este de obicei rulat pe un server. Există foarte puține lucruri pe care le puteți face în Firefox fără un server X, nu știu dacă Selenium este unul dintre ele.
Pentru a rula Firefox pe serverul dvs., rulați un server X „virtual”. Unul simplu este Xvfb ( v irtual f rame b uffer X server). Se află în distribuția serverului X.org . Exemplu de utilizare:
Xvfb :19 -screen 0 1024x768x16 & export DISPLAY=:19 firefox &
Comentarii
- Excelent, bravo Gilles, asta am făcut. De asemenea, am găsit aceste articole utile pentru ca Xvfb să ruleze: alittlemadness.com / 2008/03/05 / running-selenium-headless și blog.kabisa.nl/2010/05/24/…
Răspuns
Nu poți; este legat de bibliotecile client X și Gtk + și nu cred că este posibil chiar să-l construiesc fără ele.
Chiar și în versiunea fără cap a Firefox, GTK + este încă necesar .
Răspuns
Deoarece Selenium este un instrument de testare GUI, aș face îți este greu să crezi că poate funcționa fără X.
Deci, cel mai bine presupun că serverul tău fără cap necesită o instalare X, precum cea sugerată de Gilles. Există o serie de alternative similare.
Răspuns
Puteți
- utiliza un Firefox într-un framebuffer virtual:
xvfb-run -a firefox
- utilizați SlimerJS (un Gecko încorporat / motor de redare de la Firefox) cu xcfb,
- utilizați PhantomJS ca WebKit încorporat fără a fi nevoie de afișare și suport de seleniu prin GhostDriver – dacă WebKit este OK pentru dvs.
Comentarii
- Cred că vrei să spui ' xvfb-run -a … ' și nu xvfb, nu?
- Mulțumesc 🙂 Poate s-a schimbat între timp?