Mám sdílený hosting Dreamhost a snažím se na něm bezhlavě spustit Firefox 3.0 pro použití se selenem.

Při pokusu o spuštění (~/local/bin/firefox/firefox) se zobrazí následující chybová zpráva:

error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory 

Jak mohu spouštět Firefox v Linuxu, aniž byste potřebovali tento soubor sdílených objektů?

Odpovědět

Vím, že je to docela stará otázka, ale chtěl jsem přidat novější odpověď, protože jsem se sem dostal přes Google a musel jsem chvíli hledat, abych odpověď našel.

Od Firefoxu 57 můžete běžet v bezhlavém režimu jednoduše instalací Firefoxu a spuštěním:

firefox -headless http://test.com/ 

Zde si přečtěte dokumenty pro vývojáře Firefoxu.

Komentáře

  • Vezměte prosím na vědomí, že u prvních verzí je bezhlavý režim Firefoxu stále nainstalován GTK3. Pokud vím, je tento problém vyřešen.

Odpovědět

Firefox nelze spustit bez všech knihoven Gtk, které vyžaduje, ale to se snadno vyřeší instalací knihoven. Za normálních okolností byste Firefox nainstalovali prostřednictvím systému správy balíků, což by zavedlo všechny potřebné knihovny.

Chcete-li Firefox běžně spouštět, potřebujete X server (to je ta část, která zobrazuje okna a jejich obsah, na rozdíl od věcí jako Gtk, které jsou knihovnami, které aplikace používá k sestavení obsahu). To je něco, co byste na serveru obvykle nespustili. Existuje několik věcí, které můžete ve Firefoxu dělat bez serveru X, nevím, jestli je mezi nimi i Selenium.

Chcete-li na svém serveru spustit Firefox, spusťte „virtuální“ X server. Jednoduchý je Xvfb ( v irtual f rame b uffer X server). Je v distribuci serveru X.org . Ukázkové použití:

Xvfb :19 -screen 0 1024x768x16 & export DISPLAY=:19 firefox & 

komentáře

Odpověď

Nemůžete „t; je propojen s klientskými knihovnami X a Gtk + a nemyslím si, že je dokonce možné je postavit bez nich.

I ve verzi bez hlavy Firefoxu GTK + je stále potřeba .

Odpověď

Protože Selenium je nástroj pro testování grafického uživatelského rozhraní, chtěl bych je těžké uvěřit, že to bez X může fungovat.

Takže můj nejlepší odhad je, že váš bezhlavý server vyžaduje instalaci X, jakou navrhl Gilles. Existuje řada podobných alternativ.

Odpovědět

Můžete

  • použít Firefox ve virtuálním framebufferu: xvfb-run -a firefox
  • použijte SlimerJS (vložený Gecko / rendering engine od Firefox) s xcfb,
  • použijte PhantomJS jako vložený WebKit bez nutnosti zobrazení a podpory selenu pomocí GhostDriver – pokud je pro vás WebKit v pořádku.

Komentáře

  • Myslím, že myslíte ' xvfb-run -a … ' a ne xvfb, že?
  • Díky 🙂 Možná ano mezitím změněno?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *