Selenium中不允许使用复合类名

时间:2016-01-28 19:35:19

标签: java html selenium

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

搜索它时
        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>

如何选择&#34; pager__item pager__item - last&#34;项目

1 个答案:

答案 0 :(得分: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']"));