使用Capybara单击Bootstrap分割按钮中的链接

时间:2014-07-27 20:00:49

标签: twitter-bootstrap capybara

使用Capybara(最新版本,2.4。X),如何点击以下Bootstrap(最新3.2)拆分按钮中的'最后100个已关闭帐户' 链接?忽略ng-click,因为它是AngularJS指令。

<div class="btn-group">
<button ng-click="recent(50)"  class="btn btn-default">
    <i class="fa fa-refresh"></i> Refresh
</button>
    <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
        <span class="caret"></span>
        <span class="sr-only">Toggle Dropdown</span>
    </button>
    <ul class="dropdown-menu" role="menu">
        <li><a ng-click="recent(200)" >Last 200 Opened Accounts</a></li>
        <li><a ng-click="recent(300)" >Last 300 Opened Accounts</a></li>
        <li class="divider"></li>
        <li><a ng-click="closed(100)" >Last 100 Closed Accounts</a></li>
    </ul>
</div>

2 个答案:

答案 0 :(得分:0)

经过大量的拔毛后,我终于想出了如何让Capybara在分割按钮中选择最后一个列表选项。首先,我将id="refresh_list"添加到切换按钮。我还为目标列表id="last_100_closed_accounts"添加了一个ID。以下顺序完成了诀窍(注意id的a前缀),这实际上是两个步骤:

click_button "refresh_list"
find("a#last_100_closed_accounts").click

<div class="btn-group">
<button ng-click="recent(50)"  class="btn btn-default">
    <i class="fa fa-refresh"></i> Refresh
</button>
    <button class="btn btn-default dropdown-toggle" data-toggle="dropdown" id="refresh_list">
        <span class="caret"></span>
        <span class="sr-only">Toggle Dropdown</span>
    </button>
    <ul class="dropdown-menu" role="menu">
        <li><a ng-click="recent(200)" >Last 200 Opened Accounts</a></li>
        <li><a ng-click="recent(300)" >Last 300 Opened Accounts</a></li>
        <li class="divider"></li>
        <li><a id="last_100_closed_accounts" ng-click="closed(100)" >Last 100 Closed Accounts</a></li>
    </ul>
</div>

干杯!希望这个答案可以让其他人免于失去头发: - )

答案 1 :(得分:-1)

我为链接分配了一个类,然后能够:

all('.change_account_links').last.click

你不能使用capybara的查找,因为它会给你一个模棱两可的匹配错误。