7

Rails 3 アプリでは、jQuery の attr() メソッドを使用して次のようなことを行いました。

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

これをテストするには、Test/Unit、capybara、capybara-webkit を使用します。

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

jQuery が推奨するように、prop メソッドの使用に切り替えようとしています。

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

しかし、javascript がブラウザーで同じように機能するにもかかわらず、上記のアサーションは失敗します。

カピバラを使用して、要素のプロパティ (属性ではなく) に基づいてアサーションを作成するにはどうすればよいですか?

4

1 に答える 1

8

disabled入力を無効にするために本当に必要なのは属性の存在を確認するだけです。

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

disabled属性の値は意味がないことに注意してください。disabled="false"またはを設定するdisabled="foobar"と、要素は無効としてレンダリングされます。

于 2012-12-19T14:27:51.083 に答える