15

我正在使用 rails 3,目前正在使用 selenium 驱动程序编写 capybara 测试,我有以下问题

在一种形式中,我有 3 个名为“保存并添加另一个”、“保存并继续编辑”和“保存”的按钮现在,如果我尝试通过 capybara 保存表单,如下所示

click_button 'Save'

然后这会引发错误,称为“保存”按钮,找不到 id、title 或 value 现在如果我删除上面的 2 个按钮然后我尝试然后它可以工作

仅供参考,我的 3 个按钮的 html 如下,

<input class="btn" type="submit" value="Save and add another" name="_addanother" data-disable-with="Save and add another">

<input class="btn" type="submit" value="Save and continue editing" name="_continue" data-disable-with="Save and continue editing">

<input class="btn" type="submit" value="Save" name="_save" data-disable-with="Save">

如果有人有想法,请告诉我。

4

4 回答 4

10

我认为问题在于所有值都返回匹配项,因为它们都包含“保存”。

尝试为每个人分配一个独特的 id 并改用它。

于 2012-04-09T10:05:23.010 回答
3

Matching With Exactness - 来自 GitHub 文档。与更改模板相比,使用精确性可能会产生较小的影响。

click_button('Save', exact: true)

这只会找到完全匹配并跳过“保存等等”操作。

于 2015-03-16T23:52:33.640 回答
0

click_button 方法需要按钮的 id、名称、值。下面将起作用。

click_button 'Save and add another'
click_button 'Save and continue editing'

最后一个按钮可以正常工作,因为它的值为“保存”

click_button 'Save'
于 2012-04-09T09:43:39.147 回答
-1

我想出了以下解决方案

模块 ValidUserRequestHelper

# for use in request specs
def sign_in_as_a_valid_user
  before(:each) do
    user = FactoryGirl.create :user
    visit user_session_path
    fill_in 'user_email', :with => 'name@email.com'
    fill_in 'user_password', :with => 'foobar'
    click_button 'Einloggen'
  end
end
于 2014-01-22T14:37:12.660 回答