Как обрабатывать нумерацию страниц через селен-webdriver и Java - PullRequest
0 голосов
/ 12 декабря 2018

Мой HTML-код выглядит так.

<ul class="pagination"><li class="active"><span>1</span></li>
<li><a title="Gå till sida 2" href="/search-property-list?page=1" style="padding: 10px 15px; margin-top: -4px;">2</a></li>
<li><a title="Gå till sida 3" href="/search-property-list?page=2">3</a></li>
<li><a title="Gå till sida 4" href="/search-property-list?page=3">4</a></li>
<li><a title="Gå till sida 5" href="/search-property-list?page=4">5</a></li>
<li><a title="Gå till sida 6" href="/search-property-list?page=5">6</a></li>
<li><a title="Gå till sida 7" href="/search-property-list?page=6">7</a></li>
<li><a title="Gå till sida 8" href="/search-property-list?page=7">8</a></li>
<li><a title="Gå till sida 9" href="/search-property-list?page=8">9</a></li>
<li class="pager-ellipsis disabled"><span>…</span></li>
<li class="next"><a title="Gå till nästa sida" href="/search-property-list?page=1">nästa ›</a></li>
<li class="pager-last"><a title="Gå till sista sidan" href="/search-property-list?page=137">sista ››</a></li>
</ul>

Мой Selenium-код выглядит так:

WebDriverWait wait = new WebDriverWait(driver, 30);          
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.tagName("a")));
List<WebElement> elements = driver.findElements(By.tagName("a"));
for (int i = 0; i < elements.size(); i++) {
    String title = elements.get(i).getAttribute("title");
    if (title.equals("Next Page")) {
        elements.get(i).click();
        break;
    }
}

1 Ответ

0 голосов
/ 14 декабря 2018

Согласно предоставленному вами HTML кажется, что вы находитесь на Page 1 .Таким образом, чтобы перейти на следующую страницу , вы должны заставить WebDriverWait для желаемого элемента быть активируемым , и вы можете использовать следующее решение:

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//ul[@class='pagination']//li[@class='active']//following::li[1]/a"))).click();
...