《手把手教你》系列技巧篇(五十八)-java+ selenium自动化测试-分页测试(详细教程)

1.简介

  前几天,有人私信里留言问宏哥,分页怎么自动化测试了,完了给他说了说思路,不知道最后搞定没有,索性宏哥就写一篇文章来讲解和介绍如何处理分页。

2.测试场景

对分页来说,我们最感兴趣的和测试的无非就是下面几个信息:
(1)当前总共有多少页(因为有时候当前是6页但是点击下一个前边的消失后边的页码就会出现了,总数大于当前页数)
(2)当前是第几页
(3)是否可以上一页和下一页点击

3.自动化实战

宏哥发现了一个有用的小网站,在这里可以找到各种各样的实例,宏哥就再也不用自己写demo了,网站地址:https://www.jq22.com

3.1代码设计

3.2参考代码

package lessons;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @author 北京-宏哥
 * 
 * @公众号:北京宏哥
 * 
 * 《手把手教你》系列技巧篇(五十三)-java+ selenium自动化测试-处理分页(详细教程)
 *
 * 2021年12月17日
 */
public class Pagination {
    
    public static void main(String[] args) throws InterruptedException {
        
        System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe");

        WebDriver driver = new ChromeDriver();
        driver.manage().window().maximize();          
        driver.get("https://www.jq22.com/yanshi23657");
        Thread.sleep(1000);
        driver.switchTo().frame("iframe");
        //获得所有分页的数量
        //-4是因为要去掉首页、上一个(«)和下一个(»)
        int total_pages = (driver.findElement(By.id("page")).findElements(By.tagName("li")).size())-4;
        System.out.printf("Total page is %d\n", total_pages);
        
        for(int i=0;i<total_pages;i++){
            driver.findElement(By.xpath("//div[@id='page']/ul/li[8]")).click();
            Thread.sleep(3000);
        }
                
        //取当前页面的url以及当前页面是第几页
        WebElement current_page = driver.findElement(By.id("page")).findElement(By.className("active"));
        System.out.printf("Current page is %s\n", current_page.getText());
        
        
                
        Thread.sleep(1000);
        System.out.println("browser will be close");
        driver.quit();    
    }

}

3.2运行代码

1.运行代码,右键Run AS->Java Appliance,控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作,如下小视频所示:

4.小结

 到此分页自动化测试就实现了,其实很简单的。好了,今天时间不是很早了,宏哥就讲解和分享到这里,感谢您耐心的阅读!!!

posted @ 2022-01-17 15:59  北京-宏哥  阅读(432)  评论(0编辑  收藏  举报
停止精灵球