为了账号安全,请及时绑定邮箱和手机立即绑定

如何访问具有相同类名的第二个元素

如何访问具有相同类名的第二个元素

泛舟湖上清波郎朗 2023-03-31 16:50:35
当尝试自动化我们的应用程序时,有两个同名的按钮。我找不到识别这些的方法。请让我知道在 java 中的 selenium webdriver 中识别这些元素的任何方法
查看完整描述

3 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

使用 xpath 或 css(首选)来定位所需的按钮,如下所示。


让我们考虑下面的示例 html。


<html><head></head><body>

    <button class="same_class">follow</button>

    <button class="same_class">follow</button>

</body></html>

现在您可以使用 css,nth-of-type如下所示

button.same_class:nth-of-type(2)

CSS 截图:

//img1.sycdn.imooc.com//64269f190001950204160249.jpg

您也可以使用 xpath 实现相同的目的。

(//button[@class='same_class'])[2]

XPath 截图:

//img1.sycdn.imooc.com//64269f2400019e0c04060247.jpg

change the index in parenthesis as required (index starts with 1 not 0)



查看完整回答
反对 回复 2023-03-31
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

您可以在为元素构造 XPath 时使用该数组。如果 UI 上有两个具有相同类名的按钮元素。例如 .//*[@class='XYZ']

.//*[@class='XYZ']因此,如果上面的 XPath 标识了两个元素,您可以使用 ( )[1]定位第一个,然后使用 ( .//*[@class='XYZ'])[2]定位第二个

让我知道这是否解决了您的查询。


查看完整回答
反对 回复 2023-03-31
?
HUX布斯

TA贡献1876条经验 获得超6个赞

假设您<button>在 DOM 中定义了 2 个标签,如下所示:

<button name="foo">foo</button>
<button name="foo">foo</button>

您可以使用 XPath position()函数匹配您想要的任何按钮

  • 第一个按钮://button[@name='foo' and position() = 1]

  • 第二个按钮://button[@name='foo' and position() = 2]

使用函数的好处position()是浏览器不再寻找更多的匹配项,因此它不会找到所有按钮并将它们过滤到所需的按钮,而是找到具有给定位置的按钮并停止减少执行时间和资源需求。


查看完整回答
反对 回复 2023-03-31
  • 3 回答
  • 0 关注
  • 320 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信