水豚选择方法适用于单选按钮,旁边有标签标签,带有所需文字,如下所示:
<input id="rGEQr-real" type="radio" name="_pgcr6g7j"/>
<label id="rGEQr-cnt" class="z-radio-content" for="rGEQr-real">Web IDE Support</label>
page.choose('Web IDE Support')
可以正常使用。
但对于这样的事情:
<form action="">
<input type="radio" value="male" name="sex"/>
MALE
<br/>
<input type="radio" value="female" name="sex"/>
FEMALE
</form>
没有标签标签,简单choose
无法设置单选按钮。
我们如何在Capybara实现这一目标?
答案 0 :(得分:1)
如果您需要通过名称,ID或标签文本以外的任何其他方式选择单选按钮,则需要:
find
和CSS或XPath。set
方法在这种情况下,您需要使用XPath,因为CSS选择器不支持按文本定位。 XPath需要检查以下兄弟文本节点是否为指定文本。这可以通过以下方式完成:
# Select MALE
page.find(:xpath, '//input[following-sibling::text()[1][normalize-space(.) = "MALE"]]').set(true)
# Select FEMALE
page.find(:xpath, '//input[following-sibling::text()[1][normalize-space(.) = "FEMALE"]]').set(true)