如何使用java访问selenium中具有相同类名的第二个元素

新手上路,请多包涵

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

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

原文由 Nagarjuna Reddy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 542
2 个回答

您可以使用 xpath 索引选项。

 By.xpath("(//input[@name='Button'])[2]")

原文由 Santoshsarma 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果属性没有唯一性,您可以始终使用 xpath。例如,如果你想找到一个包含文本 foo 和名称 button 的元素,那么如果名称不是唯一的,我会更喜欢 xpath,如下所示:

 //*[@name='button' and text()='foo']

或者对于不同的类但名称相同

//button[@name='button' and @class='xyz']

或对于不同的文本但相同的名称

//input[@name='button' and contains(text(),'Click Here')]

或不同的标签但名称相同

//button[@name='button']
//input[@name='button']

只需使用任何独特的属性并制作自定义的 xpath。

我希望您也可以为此使用 java 脚本,例如

WebElement butttonToClick = driver.findElement(By.name("button"));
((JavascriptExecutor)driver).executeScript("arguments[1].click();",butttonToClick );

其中 arguments[1] 表示具有相同名称的第二个元素。

原文由 Priyanshu Shekhar 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题