2012-12-19 12 views
7

Nei miei Rails 3 app, ho usato attr di jQuery() per fare le cose in questo modo:Come utilizzare Capybara per verificare che un elemento del modulo sia disabilitato quando si utilizza il metodo prop di jQuery?

$('#application_dust_type_id').attr('disabled', 'disabled'); 

userei test/unit, capibara e capibara-webkit per testare questo con:

assert page.has_selector? 'select[id=application_dust_type_id][disabled=disabled]' 

ora, io sto cercando di passare ad usare il metodo prop, come jQuery raccomanda:

$('#application_dust_type_id').prop('disabled', true) 

Ma ora l'asserzione di cui sopra non riesce, anche se il javascript funziona ancora il lo stesso nel browser.

Come posso fare un'asserzione basata sulla proprietà di un elemento (anziché su un attributo) usando capibara?

risposta

7

provare solo verificando l'esistenza di un attributo disabled come questo è tutto ciò che è realmente necessario per disattivare un ingresso:

assert page.has_selector? 'select[id=application_dust_type_id][disabled]' 

noti che il valore di un attributo disabled è discutibile. È possibile impostare disabled="false" o disabled="foobar" e l'elemento sarebbe reso come disabilitato.

Problemi correlati