3

我有以下按钮组,我无法让 Capybara w/ 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 代码至少应该可以工作。

谁能阐明我在这里做错了什么?

4

3 回答 3

9

我找到了解决方案,因为输入标签没有关闭我需要使用 Capybara 并找到标签。

以下代码能够工作:

page.find('label', text: 'Stocky body').click

希望这可以帮助其他尝试将 Capybara 与 Bootstrap 样式的选择器一起使用的人!

于 2013-09-19T21:12:19.307 回答
0

click_button不是一个函数吗?所以click_button('Stocky body')改为使用。然后“Stocky body”不是一个按钮。至少不是 html 指定的一个。

此外,您的 html 是 mall 格式的,可​​能会导致您的 xpath 出现问题。您的输入标签未关闭。

于 2013-09-17T08:40:07.510 回答
0

FWIW,最有可能成为未来的我,Capybara 的选择可能不起作用的一个原因是因为您的标签不是内联的。

在我使用 Capybara、Simple Form 和 Bootstrap的情况下,这篇文章描述了问题和解决方案

于 2014-04-29T20:41:35.313 回答