【问题标题】:Compound class names not permitted in SeleniumSelenium 中不允许的复合类名称
【发布时间】:2016-01-28 19:35:19
【问题描述】:

我在搜索要选择的按钮时遇到了问题。当我尝试使用

搜索它时
        if (driver.getPageSource().contains("pager")) {
            WebElement pageSelector = driver.findElement(By.className("pager__item pager__item--last"));
            System.out.println("hello");
        pageSelector.click();
        }

但是,它给了我错误 - Compound class names not permitted。我读到了 hte 问题,似乎使用 csselector 来解决它而不是使用By.className。但是,我无法让 csSelector 工作。这是包含我正在搜索的元素的 html 片段。

<div class="view-content">
<div class="item-list">
</div>
<h2 class="element-invisible">Pages</h2>
<ul class="pager">
<li class="pager__item pager__item--current">1</li>
<li class="pager__item">
<li class="pager__item">
<li class="pager__item">
<li class="pager__item">
<li class="pager__item">
<li class="pager__item pager__item--next">
<li class="pager__item pager__item--last">
<a href="/blogs?date_filter[value]&field_term_programs_offices_tid=All&page=5" title="Go to last page">last »</a>

如何选择“pager__item pager__item--last”项?

【问题讨论】:

    标签: java html selenium


    【解决方案1】:

    您可以只搜索 pager__item--last 类 - 它唯一地标识元素,给定您提供的 HTML 代码:

    driver.findElement(By.className("pager__item--last"));
    

    或者,使用 CSS 选择器:

    driver.findElement(By.cssSelector(".pager__item--last"));
    

    或者,进行精确的类匹配:

    driver.findElement(By.cssSelector("li[class='pager__item pager__item--last']"));
    

    【讨论】:

      猜你喜欢
      • 2020-11-04
      • 2018-05-19
      • 2023-03-29
      • 2019-04-30
      • 2015-04-15
      • 2015-11-09
      • 2016-10-12
      • 1970-01-01
      相关资源
      最近更新 更多