2011-04-25 16 views
6

Sto provando a eseguire alcuni test senza head utilizzando uno script ruby. Essenzialmente sto eseguendo Xvfb sul display: 1, e poi accendendo Watir::Browser.new(:firefox) usando watir-webdriver.Esecuzione di Selenium :: WebDriver :: Firefox all'interno di Xvfb da ruby ​​come utente NON root

Questo funziona perfettamente se si esegue lo script come utente root: è possibile eseguire x11vnc e osservare lo script eseguire il browser e interagire con esso.

Il problema è che devo essere in grado di chiamare questo script ruby ​​da un'app Rails e NON eseguirlo come root ... se provo a eseguire lo script dalla riga di comando come un utente normale, Xvfb spara su: 1 come al solito, ma Watir non avvierà un browser ... alla fine scadrà dopo 60 secondi. Il collegamento tramite VNC rivela uno schermo nero con il cursore del mouse.

Posso eseguire l'intero lotto dalla riga di comando - avviare Xvfb, quindi avviare firefox --display=:1 e il browser si avvia, quindi deve trattarsi di un problema di selenio, giusto?

Nutshell: Selenium/Webdriver si rifiuta di avviare un browser all'interno di Xvfb a meno che non esegua lo script come root.

+0

+1 per aggiungere la soluzione una volta che hai capito bene –

+0

@ user724205 La tua risposta dovrebbe essere aggiunta come risposta, non copiata nella domanda. –

risposta

3
  • RISOLTO - EDIT * - mi dispiace non ho potuto rispondere alla domanda, ma a quanto pare il mio conto è troppo nuovo per farlo ancora.

Risolto! Incredibile come le cose come questa tendono a risolvere da soli dopo aver fatto la domanda ...

Per coloro che vogliono sapere perché, ci sono alcune cose che dovevo fare ...

1) Assicurarsi che il l'utente in questione ha una directory home di lavoro (www-data non di default ... la sua directory home era di proprietà di root)

2) Avviare Xvfb dalla riga di comando e quindi avviare firefox dalla riga di comando (NON dall'interno dello script) - questo popolerà la cartella home dell'utente con le solite cartelle .dbus, .gconf etc

3) Se si ottiene un ritardo enorme e it un messaggio di errore sulla falsariga di "un errore si è verificato durante il caricamento o il salvataggio delle informazioni di configurazione per firefox-bin", eliminare la cartella .dbus nella home directory degli utenti

4) Riprovare ancora # 2 - se si dispone di una configurazione errore prima, ora dovrebbe essere sparito.

5) Riprovare a eseguire lo script.

Questo ha funzionato come un vero e proprio fascino per me, quindi se hai problemi simili con Xvfb e watir-webdriver da un'app Web, provalo.

Grazie a tutti per aver contribuito a ciò che è hands-down il BEST Q & Un sito sul web ... questo posto mi ha salvato il culo più volte di quanto tengo a menzionare.

Nota: l'utente ha inserito originariamente questo emendamento alla sua domanda, poiché non è stato possibile capire come pubblicarlo come risposta.Questo è stato successivamente modificato dalla domanda da una persona ben intenzionata ma mai aggiunta come risposta.

1

Ciao, non so se questo link potrebbe essere un aiuto per voi. Questo mi ha aiutato molto. Avevo bisogno di avviare automaticamente watir-webdriver all'avvio/riavvio - ha funzionato per me (leggi anche i commenti).

Problemi correlati