Rspec 水豚

Rspec 水豚,rspec,capybara,ambiguous,Rspec,Capybara,Ambiguous,嘿,伙计们,我这里有一段漂亮的代码,我想做的是在规范范围内单击值为“Personal data change erstellen”的提交按钮。唯一的问题是,我像其他5个提交按钮一样具有相同的值,我试图在一个方法中涵盖所有这些。有没有人建议如何让它运行,这个模棱两可的错误简直要了我的命。请参阅下面的代码 <legend>Handynummer</legend> <div class="form-group">

嘿,伙计们,我这里有一段漂亮的代码,我想做的是在规范范围内单击值为“Personal data change erstellen”的提交按钮。唯一的问题是,我像其他5个提交按钮一样具有相同的值,我试图在一个方法中涵盖所有这些。有没有人建议如何让它运行,这个模棱两可的错误简直要了我的命。请参阅下面的代码

      <legend>Handynummer</legend>


        <div class="form-group">
          <label for="banking_personal_data_change_value_adr_mobile">Adr mobile</label>
          <input class="form-control" value="49160002774531" name="banking_personal_data_change_value[adr_mobile]" id="banking_personal_data_change_value_adr_mobile" type="text">
        </div>

        <div class="form-group">
          <input name="banking_personal_data_change[send_email]" value="0" type="hidden"><input value="1" checked="checked" name="banking_personal_data_change[send_email]" id="banking_personal_data_change_send_email" type="checkbox">
          <label for="banking_personal_data_change_send_email">E-Mail an den Kunden</label>
        </div>

      <div class="form-actions">
        <input name="commit" value="Personal data change erstellen" class="btn btn-primary" type="submit">
      </div>
handynumer
移动电话
给登·昆登发电子邮件

它很脆弱,但您可以使用XPath查找第n个元素

(//input[@value=“Personal data change erstellen”])[5]


或者类似的东西。

您没有显示足够的HTML,我们无法看到其他按钮之一并确定确切的作用域,但是看到您使用的是
图例
标记,我假设每个按钮周围至少有一个
字段集
。有了它,您应该能够使用以下内容查看字段集(我假设它有唯一的图例)

within_fieldset('Handynummer') do
  click_button('Personal data change erstellen')
end
还是一行

find(:fieldset, 'Handynummber').click_button('Personal data change erstellen')

您可以为这5个按钮中的每个按钮指定一个唯一的id,然后根据该id查找它,而不是根据值查找它。或者,给包含5个表单组的div/部分提供一个id,然后在中使用
来查找特定按钮。@JanKlimo我肯定想到了这个解决方案,唯一的问题是,它不是我的代码,我只是被雇来测试它的功能,这就是为什么我拼命寻求帮助显示足够的html,以便我们可以看到“个人数据更改”的另一个实例,并建议您可以使用哪个节点来确定正确的按钮。谢谢@ThomasWalpole这解决了我的大量问题