Cucumber / Capybara从特定班级中选择按钮?

时间:2015-12-16 17:22:08

标签: cucumber capybara

所以我遇到了一个问题,我试图点击一个按钮......不幸的是有相同的文字(IE页面上有两个按钮,相同的文字,基本上是一个保存按钮)

让我们假装按钮文字只是“保存”。

我注意到他们有不同的课程。

<button data-action="submit" class="btn btn-primary btn-save">Save</button>

而另一个按钮是:

<button name="button" type="submit" class="btn btn-primary set-right">
      <i class="glyphicon glyphicon-floppy-disk"></i> Save
</button>

我知道glypicon只是一个图标集....但它们似乎都属于同一个类?但是有不同的班级名字? (对不起,我不熟悉Rails)

我选择哪一个并不重要,因为它们都具有相同的功能。我已经看到你可以在哪里使用xpath?但是我们不应该现在使用css选择器吗? (就像那个最新的方式?)我可能错了......

我可以使用类似的东西:

find(:xpath, '//button[@class="btn-save"]').click

我试图避免使用“rails”解决方案,因为我测试的所有网站都不是基于rails的。

2 个答案:

答案 0 :(得分:4)

您有各种可能性:

1)按

找到按钮
find(button.btn.btn-primary.btn-save).click

2)通过 css选择器 xpath 找到按钮(您可以使用Google Chrome复制它们:右键单击 - &gt;检查 - &gt;右键单击您的元素 - &gt;复制css或xpath)

find(:css, "your button css selector").click

find(:xpath, "your button xpath").click

答案 1 :(得分:2)

如果两个按钮真的做同样的事情那么你总是可以做

first(:button, 'Save', minimum: 1).click

与使用xpath选择器相比,页面结构更改时不易破损。最小:1选项只会让#first稍等一下,直到页面上至少有一个按钮(就像查找一样) - 根据您的测试结构可能没有必要