IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Python+Selenium实现列表(tbody)数据的翻页获取 -> 正文阅读

[开发测试]Python+Selenium实现列表(tbody)数据的翻页获取

Python+Selenium实现列表数据的翻页获取

涉及到的定位元素

1、列表表格tbody
在这里插入图片描述
2、列表总数据元素
在这里插入图片描述

3、分页数据元素
在这里插入图片描述
4、下一页图标/按钮元素

    # while循环获取列表页面全部数据
    def get_list_all_datas(self, table_tbody, total_num_loc, pagination, pagination_selected, next_page, doc=''):
        """
        参数说明
        :param table_tbody: 列表表格的tbody元素定位
        :param total_num_loc: 列表总数据元素定位
        :param pagination: 分页框元素定位
        :param pagination_selected: 分页数据元素定位(例如:X 页/条)
        :param next_page: 下一页图标元素定位
        :param doc:
        :return:
        """
        time.sleep(1)
        # 设置初始化列表:空列表存储获取到的数据
        list_1 = []
        # 定位表格路径
        element = self.driver.find_element(By.XPATH, table_tbody)
        element_total_num = self.get_element_text(total_num_loc, doc="获取列表总数据")
        self.click(pagination, doc="点击分页弹框")
        time.sleep(0.5)
        element_pagination = self.get_element_text(pagination_selected, doc="获取页码分页")
        self.click(pagination, doc="点击分页弹框")
        # 正则表达式取字符串中的数字类型数据
        # num_1 列表总数据
        num_1 = int(re.findall(r"\d+\.?\d*", element_total_num)[0])
        # num_2 分页显示数据
        num_2 = int(re.findall(r"\d+\.?\d*", element_pagination)[0])
        print("列表页面总数据共{}条".format(num_1))
        print("列表分页显示为{}条/页".format(num_2))
        # 通过计算判断列表页面的页码总数
        if num_1 <= num_2:
            ret_page = 1
            print("列表页面数据共{}页".format(ret_page))
        else:
            ret_page = (num_1 // num_2) + 1
            print("列表页面数据共{}页".format(ret_page))
        # while循环翻页获取每页列表的数据
        i = 1
        while i <= ret_page:
            # 获取每一行数据tr
            table_tr_list = element.find_elements(By.TAG_NAME, "tr")
            # 按行查询表格的数据,取出的数据是一整行
            for tr in table_tr_list:
                # tr.text获取表格每行的文本内容、切割字符串
                # list_2 = (tr.text).split()
                list_2 = tr.get_attribute('innerText').replace("\n\t\n", ",").replace("\t\n", " ,")
                list_1.append(list_2)
            time.sleep(1)
            self.click(next_page, doc="点击下一页图标")
            time.sleep(1)
            i += 1
        # 计算获取到的列表长度,方便断言时数据是否与总列表数据一致
        # 返回值包含:列表、列表长度、列表页面总数据值
        if list_1 != []:
            ret_info1 = list_1
            ret_info2 = len(list_1)
            return ret_info1, ret_info2, num_1
        else:
            ret_info1 = "列表数据为空,列表数为0"
            ret_info2 = 0
            return ret_info1, ret_info2, num_1

测试报告显示示例

在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:55:28  更:2022-03-30 18:57:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:33:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码