簡體   English   中英

使用Selenium瀏覽分頁,將項目添加到HashMap

[英]Navigating through pagination with Selenium adding items to a HashMap

我在結果頁面上有一個WebElement列表,需要將其提取並添加到HashMap中。

網頁上的分頁如下:1,2,3,4,5,Next。 這些都是鏈接,單擊“下一步”時,它將導航到第2頁並在分頁上顯示6,同時刪除1,依此類推。

    List<WebElement> pagination = driver.findElements(By.xpath("//div[@class='pagination-container']//a"));
        int s = pagination.size();
        for(int i=0;i<=s;i++){
            this.getAuthors();
                driver.get(Constants.url);
                Thread.sleep(5000);

            pagination = driver.findElements(By.xpath("//div[@class='pagination-container']//a"));
            pagination.get(i).click();
            Thread.sleep(5000);
        }

getAuthors()方法遍歷頁面上的必要元素,並將其添加到HashMap中。 因此它將遍歷分頁列表中的所有頁面,直到完成。 它將返回到第1頁,該頁另存為Constants.url。

它進入第5頁,但隨后陷入困境,我不確定如何在其他示例6、7、8中進行編碼,並每次單擊“下一步”按鈕來訪問它們,並將它們添加到分頁列表中。

注意:那里的Thread.sleep方法用於啟用頁面時間以加載頁面上的所有元素。

有任何想法嗎?

您可以執行以下操作,假設鏈接是您需要的<a> html元素

1創建一個Web元素列表,例如<a>元素driver.findElements(By.tagName("a"))

2從最后一步檢索的迭代列表,並檢查您需要單擊的特定鏈接的一些元信息,例如標題elements.get(i).getAttribute("title");

3比較標題是否是您所需要的標題if (title.equals("Next Page")) {

3發送點擊信號

這是一個代碼片段

new WebDriverWait(
            driver, TIME_TO_WAIT).until(
                    ExpectedConditions.presenceOfElementLocated(
                            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;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM