Sto usando webrat con cetriolo e vorrei testare se un pulsante radio è già controllato quando sono su una pagina. Come posso farlo? Non ho trovato alcun passaggio in webrat che possa farlo.Come posso determinare se un pulsante di opzione è già selezionato?
risposta
input("#my_box").should be_checked
Ci sono casi in cui non è possibile fare affidamento su caselle con id o etichette o dove il testo dell'etichetta cambia. In questo caso è possibile utilizzare il metodo have_selector
da webrat.
Dal mio codice di lavoro (dove non ho id sulle caselle di controllo).
response_body.should have_selector 'input[type=radio][checked=checked][value=information]'
Spiegazione: prova restituirà true se il corpo del documento contiene un pulsante di opzione (input[type=radio]
) che è controllato e che ha il valore di "informazioni"
È possibile utilizzare il matcher casella di controllo integrato in web_steps .RB:
And the "Bacon" checkbox should be checked
Tuttavia, è necessario avere un etichetta sulla casella di controllo che corrisponde all'ID del campo di input casella di controllo corrispondente. L'helper f.label in Rails utilizza una stringa da utilizzare come ID nel primo argomento. Potrebbe essere necessario costruire una stringa che include il nome del campo e il nome casella di controllo:
f.label "lunch_#{food_name}, food_name
f.radio_button :lunch, food_name
In ogni caso, usare questa direttiva per vedere che hai il codice HTML corretto:
Then show me the page
And the "Obvious choice" checkbox should be checked
Anche se potrebbe essere un pulsante di scelta, ma il codice funzionerà. Sta solo controllando i campi etichettati con quel testo.
appena cambiato una casella di controllo web_step al pulsante di scelta
Aggiungere il seguente passo per web_steps.rb
Then /^the "([^"]*)" radio_button(?: within "([^"]*)")? should be checked$/ do |label, selector|
with_scope(selector) do
field_checked = find_field(label)['checked']
if field_checked.respond_to? :should
field_checked.should be_true
else
assert field_checked
end
end
end
e si può scrivere la seguente per verificare se il pulsante di Raido data è selezionata o meno
And the "Bacon" radio_button within "div.radio_container" should be checked
Avvolto Jesper Rønn-Jensen sua funzione + nome aggiunto che viene utilizzato dai binari:
Then /^I should see that "([^"]*)" is checked from "([^"]*)"$/ do |value, name|
page.should have_selector "input[type='radio'][checked='checked'][value='#{value}'][name='#{name}']"
end
find_field("radio_button_name").should be_checked
o in nuova sintassi:
expect(find_field("radio_button_name")).to be_checked
- 1. JQuery: come determinare se un pulsante di opzione è stato selezionato?
- 2. Quale pulsante di opzione è selezionato in un TRadioGroup?
- 3. come posso ottenere il valore selezionato del pulsante di opzione?
- 4. È selezionato un solo pulsante di opzione alla volta
- 5. Come verificare se un pulsante di opzione in ogni gruppo è selezionato in jQuery?
- 6. Come sapere quale pulsante di opzione è selezionato in jQuery?
- 7. controllare se un pulsante di opzione è selezionata jQuery
- 8. Come determinare se un motore TTS specifico è selezionato (abilitato)?
- 9. Utilizzando jQuery, nascondi una casella di testo se è selezionato un pulsante di opzione
- 10. Evento per il pulsante di opzione selezionato?
- 11. Assegnare un valore iniziale al pulsante di opzione come selezionato
- 12. Come determinare se un evento è già stato sottoscritto
- 13. client socket.io: come determinare se un gestore è già installato
- 14. Come posso determinare se viene visualizzato un pulsante Indietro?
- 15. Come verificare se il pulsante di opzione è selezionato o meno in Selenium WebDriver?
- 16. Ottiene il pulsante di opzione selezionato in un gruppo (WPF)
- 17. jQuery: Controlla se il pulsante è selezionato
- 18. Come ottenere il pulsante di opzione selezionato da ToggleGroup
- 19. Come sapere se una casella di controllo o un pulsante di opzione è selezionata in Dart?
- 20. Come determinare se il canale remoto è già registrato
- 21. impostato il pulsante di opzione php selezionato per impostazione predefinita
- 22. jQuery convalidare solo se viene selezionato un pulsante di opzione specifica
- 23. Android ottiene il valore del pulsante di opzione selezionato
- 24. Verifica di un pulsante di opzione con jQuery quando il pulsante di opzione è runat = "server"?
- 25. Ottieni l'indice del pulsante di opzione selezionato nel gruppo
- 26. Pulsante radio selezionato?
- 27. Utilizzo di JQuery per verificare se non è stato selezionato alcun pulsante di opzione in un gruppo
- 28. Come posso sapere quale pulsante è stato selezionato?
- 29. Come posso determinare se un metodo astratto è implementato?
- 30. Come posso determinare se un file è bloccato usando VBS?
sembra che questo metodo non funziona più. Sto usando Capybara 2.4.1. Il metodo 'find_field' suggerito da @evedovelli ha fatto il trucco. –
Suggerirei di non utilizzare "dovrebbe essere_controllato", ma invece: aspettare (find_field ("my_boxt")). Per essere_chiappato – Tommyixi