猿问

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

当尝试自动化我们的应用程序时,有两个同名的按钮。

我找不到识别这些的方法。请让我知道在 java 中的 selenium webdriver 中识别这些元素的任何方法


泛舟湖上清波郎朗
浏览 321回答 3
3回答

慕的地8271018

使用 xpath 或 css(首选)来定位所需的按钮,如下所示。让我们考虑下面的示例 html。<html><head></head><body>&nbsp; &nbsp; <button class="same_class">follow</button>&nbsp; &nbsp; <button class="same_class">follow</button></body></html>现在您可以使用 css,nth-of-type如下所示button.same_class:nth-of-type(2)CSS 截图:您也可以使用 xpath 实现相同的目的。(//button[@class='same_class'])[2]XPath 截图:change the index in parenthesis as required (index starts with&nbsp;1&nbsp;not 0)

尚方宝剑之说

您可以在为元素构造 XPath 时使用该数组。如果 UI 上有两个具有相同类名的按钮元素。例如&nbsp;.//*[@class='XYZ'].//*[@class='XYZ']因此,如果上面的 XPath 标识了两个元素,您可以使用 ( )[1]定位第一个,然后使用 (&nbsp;.//*[@class='XYZ'])[2]定位第二个让我知道这是否解决了您的查询。

HUX布斯

假设您<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()是浏览器不再寻找更多的匹配项,因此它不会找到所有按钮并将它们过滤到所需的按钮,而是找到具有给定位置的按钮并停止减少执行时间和资源需求。
随时随地看视频慕课网APP

相关分类

Java
我要回答