2012-07-20 9 views
8

Ho problemi con l'utilizzo di capibara per testare la forma di stagno. Sto usando tinymce-rails e ho 7 editori nel mio modulo. Inoltre sto usando il plugin asciimath con tinymce.Come riempire l'editor di tinymce-rails con capibara e selenio?

Tutto funziona correttamente, ma non riesco a scrivere test per compilare l'editor di tinymce.

Ecco come il mio codice di definizione passo sembra, molto simile a quanto descritto here:

within_frame("content_ifr") do 
    editor = page.find_by_id('tinymce') 
    editor.native.send_keys 'test' 
end 

Il problema è quando ho eseguito il seguente:

editor.native.clear   # works, clear the editor area, I'm testing this with pry 
editor.native.send_keys :tab # works, moves focus to next input 
editor.native.send_keys 'test' # returns "", nothing happens, nothing in editor 

Così clear e send_keys :tab lavoro come previsto. Ma non posso inviare alcuna stringa. La funzione send_keys restituisce sempre una stringa vuota e non accade nulla quando eseguo il test utilizzando la leva.

Cosa sta succedendo qui? e come posso eseguire il debug/investigare il problema?

Grazie.

risposta

2

Passare al cromo come descritto here ha risolto il mio problema.

Ovviamente il problema è correlato a un errore nel driver di firefox.

Ancora penso che sia una domanda valida per Firefox.

+0

Vedi http://code.google.com/p/selenium/issues/detail?id=3569 –

+0

Grazie per il tuo aiuto Andrey. Ho visto anche quella pagina e ho deciso di passare al chrome dopo. –

0

tenta di passare a un iframe che contiene ingresso TinyMCE textarea, e poi send_keys:

# +session+ is an instance of Capybara::Session class 
browser = session.driver.browser 
browser.switch_to.frame(iframe_id) 
editor.native.send_keys(text) 
browser.switch_to.default_content 
+0

Grazie. Ma questo non ha aiutato. posso navigare negli iframe, selezionare editor, cancellare il loro input senza alcun problema .. O anche io posso inviare: tasto tab. Il mio problema è che non posso inviare 'stringa' in Firefox. Inoltre ora tutto funziona con Chrome. –

4

So che questa è una vecchia questione, ma ho appena trovato durante il tentativo di risolvere questo problema pure.

Anche se la domanda iniziale diceva che ha 7 tinymce sulla stessa pagina, penso che la mia soluzione potrebbe funzionare anche per lui, ma so che funzionerà se c'è una tinymce come era il mio caso.

Nella mia richiesta spec ho usato questo:

page.execute_script ('$ (tinymce.editors [0] .setContent ("i miei contenuti qui"))')

La page.execute_script con digli di eseguire la funzione jQuery. Trova quindi il primo editore di tincimi e imposta il contenuto.

Ha funzionato come un incantesimo per me. Penso che se ci sono più di uno stagno può essere chiamato dalla sua posizione.

Problemi correlati