如果未知路径是否在页面上,则选择xpath

时间:2016-01-28 01:07:40

标签: java html selenium xpath

我正在尝试编写这段硒代码,它会在页面底部选择一个页码指示符并计算其上的元素。但是,如果只有一个页面,则不会显示此数字指示符,并且将来会更新它并最终包含多个页面。

如果发现页码指示符在那里,如何制作一段硒代码将选择最后一页?我在网页上搜索了一段文字,只有在出现指示符时才显示,但我在此之后仍然坚持要做,以便选择页码指示符中的最后一页。

<div class="view view-blog view-id-blog view-display-id-page_1 view-dom-id-3e6e5f93bb52f8bc5f35e55c6da86526">
<div class="view-filters">
<form id="views-exposed-form-blog-page-1" class="views-exposed-form-blog-page-1" accept-charset="UTF-8" method="get" action="/blogs">
</div>
<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">

<li class="pager__item pager__item--last">是指向我想要选择的按钮的文本。

在这里有5页,所以它会转到第5页,但我正在尝试编写它以便它只是转到当前列表中的最后一页,这样我就不必硬编码数字来跳转到。

我目前的代码只是

if (driver.getPageSource().contains("pager")) {
            WebElement k = driver.getPageSource().findElement("pager__item pager__item--last");

pager__item pager__item--last是代码中的字符串,对应于我要选择的按钮<li class="pager__item pager__item--last">

如果您不确定它是否存在于您的代码中,那么搜索此字符串然后单击它对应的按钮会有什么好方法?

由于

2 个答案:

答案 0 :(得分:0)

最好的方法是使用try catch ..

try{
driver.findElementByXpath("Your xpath of last page button").click();//you can use any other locator
}catch(NoSuchElementException e){
//if you get exception then it means that element is not present(it means there is only one page)
//if you have multiple page then that button will be present and it'll not through any exception and it will trigger click event in that element and you'll get navigated to last page
}

答案 1 :(得分:0)

以Google搜索结果为例

  1. 为页码指示符
  2. 编写条件语句
  3. 满足条件时,使用FindElements方法获取代表页码的所有<a>标签
  4. 从列表中获取最后一页
  5. 点击元素