Sto scrivendo alcuni test delle funzionalità utilizzando Capybara, per le pagine che prevedono molti aggiornamenti di javascript (l'URL rimarrà lo stesso quando un utente fa clic su "continua" pulsante, ma i contenuti nascosti verranno mostrati, e il contenuto mostrato sarà nascosto, in modo che ci sia una quantità enorme di testo/selettori/ecc in qualsiasi punto dato "sulla" pagina ma nascosto dall'utente).Impossibile inserire elementi nascosti in Capybara quando ignore_hidden_elements è true
Per provare questa funzionalità, voglio opzione ignore_hidden_elements configurazione di Capybara per essere vero, perché che meglio rappresenta l'esperienza dell'utente.
Ma ci sono anche alcuni plugin jQuery nella pagina che usano grafica di fantasia per riempire elementi HTML di base che sono nascosti, e vorrei usare Capybara per selezionare solo i valori corretti per quegli elementi, piuttosto che provare ad usare Javascript per simulare manualmente un utente che interagisce con l'elemento.
In particolare, sto cercando di testare Selezionare le caselle che sono impostati a display: none e sono riempiti da un plugin jQuery quando un utente interagisce con essi. Mi piacerebbe essere in grado di farlo:
select('value', from: 'select_box')
ma la casella di selezione è nascosta.
Così ho provato questo:
select('value', from: 'select_box', visible: false)
, ma che non ha funzionato neanche. Sono riluttante a trasformare ignore_hidden_elements in falso, perché questo simula in maniera più approssimativa un utente, e dovrei tornare indietro e aggiungere "visible: true" a molte linee di test.
Qualche idea su come procedere? C'è un'opzione che annulla in modo più preciso ignore_hidden_elements?
EDIT - Dopo la risposta di Andrey, ho girato ignore_hidden_elements false, e poi ha fatto lo stesso capibara selezionare test come prima:
select 'value', from: 'select_box_id'
e, come per magia, ha funzionato. Quando ho di nuovo cambio ignore_hidden_elements alla vera e provare questa linea:
select 'value', from: 'select_box_id', visible: false
ottengo questo errore:
Failure/Error: select 'value', from: 'select_box_id', visible: false
Capybara::ElementNotFound:
Unable to find select box "select_box_id"
Qualche possibilità questa non è un bug? Dovrei segnalarlo?
Se 'select ('valore', da: 'select_box', visible: false)' non funziona di 'select ('valore', da: 'select_box')' con 'Capybara.ignore_hidden_elements = false' non funzionerà anche. Se funziona, dovrebbe essere considerato un bug in Capybara. L'opzione 'ignore_hidden_elements' e' visible' influenzano lo stesso parametro –
Quindi penso che questo sia un bug. Dettagli sopra. – Sasha
Qual è la tua versione di Capybara? –