使用rack_test
驱动程序轻松获取Capybara所选的单选按钮。
# with rack_test
page.set('input_id')
# => "checked"
page.find('[checked]')
# => #<Capybara::Node::Element tag="input" path="/html/body/p[1]/label[1]/input">
但是,这不适用于webkit或poltergeist。
# with webkit or poltergeist
page.set('input_id')
# => ""
page.find('[checked]')
Capybara::ElementNotFound: Unable to find css "[checked]"
我也尝试过使用#selected?
方法,但它似乎不适用于单选按钮。
# with any driver
page.set('input_id')
page.all('input').select(&:selected?)
# => []
如何在webkit或poltergeist中使用Capybara获取已选中的单选按钮?
答案 0 :(得分:2)
在JS支持的浏览器中,您正在遇到属性和属性之间的差异。您在机架测试中所做的工作因为它只知道属性。要在其他浏览器中查找已检查的输入,您可以
find('input:checked')
或者你可以做像
这样的事情find(:checkbox, 'input_id', checked: true)
find(:radio_button, 'input_id', checked: true)
find(:field, 'input_id', type: 'checkbox', checked: true)
等等......