2011-04-25 7 views
6

Próbuję zrobić kilka testów bez głowy za pomocą skryptu ruby. Zasadniczo wykonuję Xvfb na ekranie: 1, a następnie uruchamiam Watir::Browser.new(:firefox) używając watir-webdrivera.Uruchamianie Selenium :: WebDriver :: Firefox wewnątrz Xvfb z ruby ​​jako użytkownik bez uprawnień root

Działa to świetnie, jeśli uruchamiasz skrypt jako root - mogę uruchomić x11vnc i obserwować, jak skrypt uruchamia przeglądarkę i współdziała z nią.

Problem polega na tym, że muszę mieć możliwość wywoływania tego skryptu ruby ​​z aplikacji Rails, a NIE uruchamiania go jako root ... jeśli spróbuję uruchomić skrypt z wiersza poleceń jako zwykły użytkownik, Xvfb odpala 1: jak zwykle, ale Watir nie uruchomi przeglądarki ... w końcu skończy się po 60 sekundach. Połączenie za pomocą VNC pokazuje czarny ekran z kursorem myszy.

Mogę wykonać całą partię z wiersza poleceń - uruchom Xvfb, następnie uruchom firefox --display=:1 i uruchom przeglądarkę, więc musi to być problem Selenium, prawda?

W skrócie: Selenium/Webdriver odmawia uruchomienia przeglądarki w Xvfb, chyba że uruchomię skrypt jako root.

+0

+1 do dodawania rozwiązanie kiedy masz to prawo –

+0

@ user724205 Twoja odpowiedź powinna być dodana jako odpowiedź, nie zostały skopiowane do pytania. –

Odpowiedz

3
  • ROZWIĄZANIA - EDIT * - Niestety nie mogę odpowiedzieć na to pytanie, ale widocznie moje konto jest zbyt nowy, aby to zrobić jeszcze.

Rozwiązany! Niesamowite, jak takie rzeczy mają tendencję do rozwiązywania się po tym, jak zadał pytanie ...

Dla tych, którzy chcą wiedzieć, dlaczego, istnieje kilka rzeczy muszę zrobić ...

1) Upewnij się, dany użytkownik ma działający katalog domowy (dane www nie były domyślnie ... jego katalog domowy był własnością root)

2) Uruchom Xvfb z wiersza poleceń, a następnie uruchom firefox z wiersza poleceń (NIE z poziomu skryptu) - spowoduje to zapełnienie katalogu domowego zwykłymi folderami .dbus, .gconf itd.

3) Jeśli pojawi się duże opóźnienie i pl komunikat o błędzie w postaci "błędu, który wystąpił podczas ładowania lub zapisywania informacji o konfiguracji dla firefox-bin", usunięcia folderu .dbus w katalogu domowym użytkownika

4) Spróbuj ponownie # 2 - jeśli masz konfigurację błąd przed, powinien już zniknąć.

5) Spróbuj ponownie uruchomić skrypt.

To zadziałało jak dla mnie urok, więc jeśli masz podobne problemy z uruchomieniem Xvfb i watir-webdriver z aplikacji internetowej, spróbuj.

Podziękowania dla wszystkich za przyczynianie się do tego, co jest najlepsze - Najlepsza Q & Witryna w sieci ... to miejsce uratowało mój tyłek więcej razy, niż chciałbym wspomnieć.

Uwaga: użytkownik pierwotnie wprowadził to zmienione na swoje pytanie, ponieważ nie mógł wymyślić, jak opublikować to jako odpowiedź.Zostało to później usunięte z pytania przez jakąś osobę o dobrych intencjach, ale nigdy nie zostało dodane jako odpowiedź.

1

Witam, nie wiem, czy ta link może być dla ciebie pomocna. Bardzo mi to pomogło. Musiałem uruchomić program watir-webdriver automatycznie przy starcie/restarcie - działało to dla mnie (czytaj również komentarze).

Powiązane problemy