我的页面上有两个字段集。他们都没有任何身份或类别。 现在我想填写第二个字段集中的特定字段。
目前我正在做类似这样的事情:
within_fieldset('fieldset') do
fill_in 'app_answers_attributes_0_answer', with: 'My First Answer'
end
click_on 'Submit'
这是错误的:
Capybara :: ElementNotFound:无法找到fieldset" fieldset"
关于如何做到这一点的任何想法?
答案 0 :(得分:1)
within_fieldset
会获取字段集的ID或图例文字 - http://www.rubydoc.info/gems/capybara/Capybara/Session#within_fieldset-instance_method - 所以within_fieldset('fieldset')
并不令您感到惊讶<fieldset>
<legend>Something</legened>
...
</fieldset>
<fieldset>
<legend>Other thing</legened>
...
</fieldset>
。如何做你想做的事实取决于你的HTML结构。例如,如果你的字段集有图例
within_fieldset('Other thing') do
...
end
你可以做到
<div id="first_section">
...
<fieldset>...</fieldset>
<div>
<div id="second_section">
<fieldset>...</fieldset>
</div>
如果你没有传说,但有包装元素
within('#second_section fieldset') do
...
end
然后您可以使用CSS将范围扩展到正确的字段集
<div>
<fieldset>...</fieldset>
<fieldset>...</fieldset>
</div>
如果相反,字段集是兄弟姐妹
within("fieldset + fieldset") do
...
end
然后您可以使用CSS同级选择器
扩展到第二个字段集throw()