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]'

现在,我正在尝试切换到使用 prop 方法,正如 jQuery 建议的那样:

$('#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"ordisabled="foobar"并且该元素将被呈现为禁用。

于 2012-12-19T14:27:51.083 回答