所以我遇到了一个问题,我试图点击一个按钮......不幸的是有相同的文字(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的。
答案 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稍等一下,直到页面上至少有一个按钮(就像查找一样) - 根据您的测试结构可能没有必要