Capybara:使用webkit或poltergeist获取选定的单选按钮

时间:2015-10-02 21:52:44

标签: rspec capybara capybara-webkit poltergeist

使用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获取已选中的单选按钮?

1 个答案:

答案 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)
等等......