【问题标题】:Selenium find last element with specific class name in div JavaSelenium 在 div Java 中查找具有特定类名的最后一个元素
【发布时间】:2021-07-26 03:15:29
【问题描述】:

我正在使用 Java 中的 Selenium 测试具有以下结构的页面:

<div class="pagination">
  <ul class="pagination__list">

    <li class="pagination__item pagination__item--prev pagination__item--disabled">
    </li> 

    <li class="pagination__item pagination__item--active">
      1
    </li>
    <li class="pagination__item">
      2
    </li>
    ...
    <li class="pagination__item">
        6
    </li>
    <li class="pagination__item">
        7
    </li> 
    <li class="pagination__item pagination__item--next">
    </li>
  </ul>
</div>

我的目标是在 ul 中找到具有“pagination__item”类的最后一个 li 元素,但不是也具有“pagination__item--next”类的元素。所以基本上我正在尝试使用 XPath 找到其中包含 7 的 li。

我尝试了以下代码,但它们不起作用,因为“字符串不是有效的 XPath 表达式。”

  1. driver.findElement(By.xpath("(.//div[@class=\"pagination\"]/li[@class=\"pagination__item\")[last()]"));

  2. driver.findElement(By.xpath(".//div[@class=\"pagination\"]/li[@class=\"pagination__item\" and last()]/");

【问题讨论】:

    标签: java html css selenium xpath


    【解决方案1】:

    您要查找的元素可以通过以下xpath 定位: (//li[@class='pagination__item'])[last()]

    【讨论】:

      【解决方案2】:

      使用 css 选择器:

      driver.find_element_by_css_selector(".pagination__list>.pagination__item:last-of-type")
      

      如果您不需要将定位器链接到父元素,则只需 .pagination__item:last-of-type

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-14
        • 2022-06-25
        • 2018-02-07
        • 1970-01-01
        • 1970-01-01
        • 2011-08-09
        • 1970-01-01
        相关资源
        最近更新 更多