我有以下按钮组,我无法让Capybara / Selenium选择:
<div class="btn-group hidden-sm" data-toggle-name="user[attributes][0][customization_id]" data-toggle="buttons">
<label class="btn btn-default active">
<input type="radio" value="17">
Stocky body
</label>
<label class="btn btn-default">
<input type="radio" value="16">
Round body
</label>
</div>
我试过跟随:
click_button 'Stocky body'
find(:xpath, "//input[@value='16']").click
和
find(:xpath, "//input[@type='radio'][@value='16']").click
此时我已经准备好了一个多小时:xpath和Capybara的答案,他们都看到说:xpath代码至少应该有效。
有人能说清楚我在这里做错了吗?
答案 0 :(得分:8)
我找到了解决方案,因为输入标签未关闭我需要使用Capybara并找到标签。
以下代码能够正常运行:
page.find('label', text: 'Stocky body').click
希望这有助于其他人尝试将Capybara与Bootstrap风格的选择器一起使用!
答案 1 :(得分:0)
不是click_button a function?因此,请使用click_button('Stocky body')
。然后“Stocky body”不是一个按钮。至少不是html指定的那个。
此外,您的html是商城格式的,可能会导致您的xpath出现问题。您的输入标签未关闭。
答案 2 :(得分:0)
FWIW,最有可能是未来我,Capybara的选择可能不起作用的一个原因是因为你的标签不是内联的。
在我的案例中,Capybara,Simple Form和Bootstrap this post描述了问题和解决方案