java - 如何使用具有相同属性的 Selenium 查找多个不同的 Webelement?

标签 java html selenium xpath

假设我感兴趣的网页部分在 HTML 中看起来像这样:

<ul role = "tablist">
   <li>
       <button role="tab"> 1 </button>
   </li>
   <li>
       <button role="tab"> 2 </button>
   </li>
   <li>
       <span role="tab"> 3 </span>
   </li>
   <li>
       <button role="tab"> 4 </button>
   </li>
</ul>
我如何构建一个 Xpath (或您的任何其他建议),以便我可以找到所有 4 个不同的 Webelements具有属性 @role='tab' ?
顺便说一句,我正在将 Selenium 与 Java 一起使用。

最佳答案

使用以下 xpath :

//*[@role='tab']
和使用可以使用findElements这将返回一个列表,然后您可以像往常一样遍历列表以获取内部上下文。
示例代码:
    List<WebElement> list = driver.findElements(By.xpath("//*[@role='tab']"));
    for (WebElement e  : list) {
        System.out.println(e.getText());
    }

关于java - 如何使用具有相同属性的 Selenium 查找多个不同的 Webelement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68444725/

相关文章:

java - 打开 MPI 的 Java 绑定(bind)

java - 无法从 Selenium 中的输入元素获取文本

c# - 在 Selenium 中为 Chrome 驱动程序设置代理

java - 形态学函数瓶颈的 OpenCV Android 程序

java - 禁用 IntelliJ 检查 : warning "if (a == false) change to if (!a)". 我看不到跳转到其配置的链接或代码

javascript - 如何将元素固定值的父级向下移动?

javascript - 适用于可在网络浏览器和智能手机上运行的网站的 MP3 播放器

java - Selenium 异常处理设计

java - GL.createCapability 抛出 NullPointerException

html - 列中的 Bootstrap 字段