如何处理selenium Webdriver中的分页

时间:2018-03-28 12:03:32

标签: java selenium-webdriver

这是我的代码,当我运行它进入第二页并停止它不循环所有页面并搜索所需的元素。它应该在页面中查找特定文本,然后单击它的链接。

    if (driver.getTitle().contains("Article properties")) {
        WebElement assigninitial = driver.findElement(By.partialLinkText("Assign reviewer for initial review"));
        assigninitial.click();
    } else {
        //pagination code
        //driver.findElement(By.xpath("/html/body/app/main/app-mytasks/div[1]/section/div/pagination/ul/li[3]/a")).click();
        @SuppressWarnings("unchecked")
        ArrayList<WebElement> pagination = (ArrayList<WebElement>) driver.findElements(By.xpath("/html/body/app/main/app-mytasks/div[1]/section/div/pagination/ul/li[5]/a"));
        // checkif pagination link exists 

        if ((pagination).size() > 0) {
            //System.out.print("pagination exists"); 

            // click on pagination link 

            for (int i = 0; i < pagination.size(); i++) {
                pagination.get(i).click();
                if (driver.getPageSource().contains("Article properties")) {
                    WebElement assigninitial = driver.findElement(By.partialLinkText("Assign reviewer for initial review"));
                    assigninitial.click();
                }
            }
        } else {
            System.out.print("pagination not exists");
        }
    }

1 个答案:

答案 0 :(得分:0)

public void pagination_check() throws InterruptedException{
        loader_wait(5);    //wait until 'loader'  loading
        List<WebElement> pagination =driver.findElements(By.xpath("//page-navigation/div/div/span/a")); 
        Thread.sleep(5000);
        if(pagination.size()>0){ 
        System.out.println("pagination exists and size=>"+pagination.size()); 
        int page_no=pagination.size();
        for(int i=2; i <= pagination.size(); i++){      
            JavascriptExecutor js = (JavascriptExecutor) driver; 
            js.executeScript("arguments[0].scrollIntoView();", driver.findElement(By.xpath("//page-navigation/div/div/span")));    //for 
 scroller move
            js.executeScript("arguments[0].click();", driver.findElement(By.xpath("//page-navigation/div/div/span/a["+i+"]")));
        loader_wait(5);      //wait 
        } 
            } else { 
                System.out.println("no pagination");
            } 
    }