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知识库 -> Python+Selenium获取列表数据(根据查询值进行编辑/删除操作) -> 正文阅读

[Python知识库]Python+Selenium获取列表数据(根据查询值进行编辑/删除操作)

1、获取列表页面表格数据

    # 获取列表全部数据
    def get_table_content(self):
        """
        读取列表数据
        :return:
        """
        time.sleep(1)
        # 页面存在iframe(先切换)
        self.switch_iframe(AXPL.swdj_menu_iframe[0], doc="收文登记首页")
        list_1= []
        list_2= []
        # 表格定位路径
        table_tbody = "//table[@class='el-table__body']//tbody"
        element = self.driver.find_element_by_xpath(table_tbody)
        # 获取每一行数据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_1.append(list_2)
        # 退出iframe
        self.driver.switch_to_default_content()
        # 返回
        return list_1

list_1 返回数据格式如下显示:

[['测试标题5', '测试单位5', '韦XX', '2021-07-14', '未提交', '传递', '删除'], ['测试标题4', '测试单位4', '韦XX', '2021-07-14', '未提交', '传递', '删除'], ['测试标题3', '测试单位3', '韦XX', '2021-07-14', '未提交', '传递', '删除'], ['测试标题2', '测试单位2', '韦XX', '2021-07-14', '未提交', '传递', '删除'], ['XXXX职业技术学院-行政', 'XXXX职业技术学院', '陈XXX', '2021-04-14', '秘书科领导拟办意见(黄XX)']]

2、判断所操作元素是否存在列表中,若存在定位其元素位置;若不存在,跳过该操作

    def find_table_data(self):
        """
        循环遍历table数据,确定查询数据的位置
        :return:
        """
        # 调用获取全部列表数据函数,获取其列表的返回值信息
        arr_data = self.get_table_content()
        print(arr_data )
        queryContent = "测试标题2"
        for i in range(len(arr_data)):
            for j in range(len(arr_data [i])):
                if queryContent == arr_data [i][j]:
                    print("%r坐标为(%r,%r)" % (queryContent, i + 1, j + 1))
                    return i
            	else
            		return 0           

3、删除该元素

    # 删除某行元素
    def del_table_data(self):
        """
        定位到需要删除数据的行,点击对应的删除按钮
        :return:
        """
        # 调用函数获取查询数据所在的行
        row = self.table_data()
        if row != 0:
            time.sleep(2)
            self.switch_iframe(AXPL.swdj_menu_iframe[0], doc="收文登记首页")
            table_tbody = "//table[@class='el-table__body']//tbody"
            table = self.driver.find_element_by_xpath(table_tbody)
            # 通过标签名获取表格的所有行
            table_tr_list = table.find_elements_by_tag_name("tr")
            table_tr_list[row].find_element_by_xpath(".//button//span[contains(.,'删除')]").click()
            time.sleep(1)
            self.click(AXPL.del_confirm_btn, doc="点击确认按钮")
            self.driver.switch_to_default_content()
        else:
            print("该元素不存在,请重新选择!")

4、执行测试用例

    def test_f(self):
        time.sleep(1)
        B = AXP(self.driver).table_data()
        AXP(self.driver).del_table_data()
        print(B)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:14:17  更:2021-07-16 11:16:56 
 
开发: 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年12日历 -2024/12/25 14:06:53-

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