三个按钮具有相同的文本 'select'。有什么办法可以找到每个按钮吗?

Three buttons has the same text 'select'. Is there any way I can locate each button?

我有三个按钮,其中包含文本 'select'。

我可以编写与这些 select 按钮交互的代码吗?他们没有任何 ID 或名称。

我在这里放置了两个按钮:

<button class="btn btn-default ng-scope" type="button" data-ng-click="onBtnSelectClicked(coverage)" translate="l_choose">Select</button>

<button class="btn btn-default ng-scope" type="button" data-ng-click="onBtnSelectClicked(coverage)" translate="l_choose">Select</button>

如果您告诉我其他与此按钮交互的方式,那也很好。

编辑

我找到了这个问题的答案,这里是答案

b.buttons(:text,'Select')[1].click

我不同意以上评论。在 UI 测试中,我们经常遇到富应用程序的此类场景。 [Angular/Dojo 等]

他们也可能故意设置模糊属性,以便用户可以根据需要动态地重新排列和/或增加减少 frames/panels。在这部分我和开发人员有过激烈的争论——即使现在他们解释了多少对我来说也没有多大意义。

其次-如果不考虑实时的实际应用,用户不能对问题本身投反对票,这是不对的。他正确地标记了它,即 Watir ,这个问题对我来说似乎很公平,这是我在最初几天一直难以理解的事情。只是我觉得他不能正确分析他的应用程序 direction/details 似乎更少。

考虑一下 - 你可能想打开某种文档并并排比较,并且你在两个框架中有相同的元素 - 所以假设打开一个框架并将其分成两部分并说比较/查找/ select etc etc 可能是一些常见的objects 有人可以设计。

所以我猜测 - 如果在任何情况下开发人员有意决定使用相同的属性 - parent 或任何祖先应该绝对不同。所以你需要缩小范围然后去做。这是正确的方法,因为除非 intent/functionality 专门更新,否则您的测试不会中断。

如果不是,那么这是一个糟糕的应用程序设计,您可以让开发人员知道一些文本差异。