我有一个动态生成的表单,如下所示:
Do you like Pizza?
[ ] Yes [ ] No
Run Code Online (Sandbox Code Playgroud)
HTML看起来像这样:
<form>
<div class="field">
<label>Do you like Pizza?</label>
<input
type="radio" value="true"
id="reply_set_replies_attrs_0_pizza_true"
name="reply_set[replies_attrs][0][pizza]">
</input>
<label for="reply_set_replies_attrs_0_pizza_true">Yes<label>
<input
type="radio" value="false"
id="reply_set_replies_attrs_0_pizza_false"
name="reply_set[replies_attrs][0][pizza]">
</input>
<label for="reply_set_replies_attrs_0_pizza_false">No<label>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
我想用Capybara检查那些单选按钮.我怎样才能做到这一点?我并不总是知道id单选按钮的s,因为它们中有一些,当我也问Popcorn和Chicken时,我不想依赖于了解它们的顺序.
有没有办法做某事......
field = find_label("Do you like pizza?").parent('field')
yes = field.find_label('Yes')
yes.click
Run Code Online (Sandbox Code Playgroud)
?
请注意,使用时find,该:text选项会进行部分文本匹配.因此,您可以直接找到div:
find('div.field', :text => 'Do you like Pizza?').choose('Yes')
Run Code Online (Sandbox Code Playgroud)
(还可以使用choose单选按钮进行选择.)
| 归档时间: |
|
| 查看次数: |
3586 次 |
| 最近记录: |