如何使用Selenium点击此按钮

3

在网页上,页面编号按钮由以下代码进行组织:

<div id="sq-pagination">
  <span class="displaying-num">Displaying 31-60 of 281</span>
  <span>
    <a class="pageing_text_arrow" href="http://www.squawka.com/match-results?pg=1"> « First</a>
    <a class="pageing_text_arrow" href="http://www.squawka.com/match-results?pg=1"> « Prev</a>
    <a class="page-numbers" href="http://www.squawka.com/match-results?pg=1">1</a>
    <span class="page-numbers current">2</span>
    <a class="page-numbers" href="http://www.squawka.com/match-results?pg=3">3</a>
    <a class="page-numbers" href="http://www.squawka.com/match-results?pg=4">4</a>
    <a class="page-numbers" href="http://www.squawka.com/match-results?pg=5">5</a>
    <a class="page-numbers" href="http://www.squawka.com/match-results?pg=6">6</a>
    <a class="page-numbers" href="http://www.squawka.com/match-results?pg=7">7</a>
    <a class="page-numbers" href="http://www.squawka.com/match-results?pg=8">8</a>
    <a class="page-numbers" href="http://www.squawka.com/match-results?pg=9">9</a>
    <a class="page-numbers" href="http://www.squawka.com/match-results?pg=10">10</a>
    <a class="pageing_text_arrow" href="http://www.squawka.com/match-results?pg=3"> Next »</a>
    <a class="pageing_text_arrow" href="http://www.squawka.com/match-results?pg=10"> Last »</a>
    </span>
</div> 

我希望Selenium能够点击“下一页”(或第三页,这也可以)。然而,我无法弄清楚如何做到这一点。它似乎没有明显的xpath或elementId。该怎么办?(代码来自此页面:http://bit.ly/1lwxxeN,这是我试图解决的页面)。如果需要,我不介意使用JavaScript代码。我正在使用RSelenium,但其他解决方案也非常受欢迎(这样我就可以尝试将解决方案转换为RSelenium)。
谢谢,Peter

当您录制宏并尝试进行此点击操作时,会生成什么代码? - admdrew
3个回答

2
这个XPath选择器应该适用于您的情况:
//a[contains(text(),'Next')]

所以,你的代码应该像这样:

driver.findElement(By.xpath("//a[contains(text(),'Next')]")).click();

1

Richard的Xpath很好,但是如果要获取下一页的页码,你会发现只有当前选定的元素被表示为具有特定类名的<span>元素,而其他元素都是链接(<a>)。因此,您可以查询该<span>元素并获取下一个链接,类似于:

//span[@class="page-numbers current"]//following::a[1]

1

请看这些XPATH是否有效:

用于顶部分页下方的“下一页 >>”链接:

//div[@id='upcoming-fixtures']/center/div[@id='sq-pagination']//a[contains(text(),'Next')]

对于底部分页下方的“下一页>>”链接:

//div[@id='upcoming-fixtures']/center/center//div[@id='sq-pagination']//a[contains(text(),'Next')]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接