Capybara:不会选择bootstrap按钮组

时间:2013-09-17 07:53:29

标签: twitter-bootstrap xpath selenium capybara capybara-webkit

我有以下按钮组,我无法让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代码至少应该有效。

有人能说清楚我在这里做错了吗?

3 个答案:

答案 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描述了问题和解决方案