2012-12-19 7 views
7

In meiner Rails 3 app, ich habe jQuery attr() Methode unter Verwendung von wie diese Dinge zu tun:Wie verwende ich Capybara, um zu testen, dass ein Formularelement deaktiviert ist, wenn Sie die prop-Methode von jQuery verwenden?

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

würde ich Test/Einheit, Capybara und Capybara-Webkit, dies zu testen, mit:

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

nun, ich versuche zu mit der Stütze Methode zu wechseln, wie jQuery empfiehlt:

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

Aber jetzt ist die obige Behauptung nicht, auch wenn die Javascript funktioniert immer noch die Gleiches im Browser.

Wie kann ich eine Behauptung basierend auf einer Eigenschaft eines Elements (anstelle eines Attributs) mit Capybara machen?

Antwort

7

Versuch der Existenz eines disabled Attribut als dass nur die Überprüfung ist, dass alle wirklich einen Eingang deaktivieren erforderlich:

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

Beachten Sie, dass der Wert eines disabled Attribut strittig ist. Sie könnten disabled="false" oder disabled="foobar" einstellen und das Element würde als deaktiviert dargestellt werden.