一、直接获取整个表格数据,包含表头

def table_info(self):
tr_data=[]
table_data=[]
css='id=>useradmin'#根据表格id找到表格
self.pyse.element_wait(css)
trs=self.pyse.get_element(css).find_elements_by_tag_name('tr')#找到表以后,找到表内的所有行tr
print(trs)
for tr in trs:#循环每一行
print(tr.text)#每一行的所有字段:序号 角色编号 角色名称 角色级别 状态 操作
tr_data=tr.text.split(' ')#将每行按照空格分割成列表,装入tr_data。此时tr_data中存放的就是每一行的字段
table_data.append(tr_data)#将每行的列表装入另一个数组中,这样相当于一个二维列表
print(table_data)
'''
table_data=[['序号', '角色编号', '角色名称', '角色级别', '状态', '操作'], ['24', 'R001', '管理员', '0', '禁用', '启用', '修改']]
tr_data=序号 角色编号 角色名称 角色级别 状态 操作
tr_data= 25 R002 校长 1 启用 禁用 修改
.......
'''

2、如果不要表头,可直接用定位tbody元素,同样的方法获取到表格数据,不包含表头

3、输入关键字,搜索表格数据,验证搜索功能

此时直接用第一种方法,会提示错误。因为点击查询的时候,tbody数据重新加载,不依附于原页面

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document

没有和当前页面进行绑定,主要是页面刷新或者跳转引起的,需要重新获取一次元素。

此时需要重新定位tbody元素,再次查询

    def aftersearch_tableinfo(self):#点击查询后,表格中tbody元素不在依附于当前页面,需要重新定位
css = 'css=>[role=alert]' # 重新定位tbody元素
self.pyse.element_wait(css)
trs=self.pyse.get_element(css).find_elements_by_tag_name('tr')
print(trs)
tbody_data=[]
for tr in trs:
tr_data=tr.text.split(' ')
tbody_data.append(tr_data)
print(tbody_data)
return tbody_data def check_role_number_in(self):
data=self.aftersearch_tableinfo()#点击查询后,获取到表格数据,这里不包含表头
print(len(data))
if len(data)==0:
print('查询关键字失败,校验失败,没有查到数据')
else:
for tr in range(len(data)):#遍历每一行,查看第2列是否都等于搜索关键字,tr表示每一行的行号,从0开始。因为我查询的关键词是按照第二列字段进行查的,所以此处和第二列比对
if data[tr][1]!=Setting_Role_data.role_number:
return False
else:
return True

selenium+python对表格数据的操作的更多相关文章

  1. ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2

    运行效果: 此文介绍了根据操作左侧菜单在右面板展示相应内容. 一.主页 先看一下跳转主页的方式:由在webapp根目录下的index.jsp跳转至demo的index.jsp 下面是demo的inde ...

  2. 干货--Excel的表格数据的一般处理和常用python模块。

    写在前面: 本文章的主要目的在于: 介绍了python常用的Excel处理模块:xlwt,xlrd,xllutils,openpyxl,pywin32的使用和应用场景. 本文只针对于Excel表中常用 ...

  3. Python读取网页表格数据

    学会了从网格爬取数据,就可以告别从网站一页一页复制表格数据的时代了. 说个亲身经历的事: 以前我的本科毕业论文是关于"燃放烟花爆竹和空气质量"之间关系的,就要从环保局官网查资料. ...

  4. Python常用的数据文件存储的4种格式(txt/json/csv/excel)及操作Excel相关的第三方库(xlrd/xlwt/pandas/openpyxl)(2021最新版)

    序言:保存数据的方式各种各样,最简单的方式是直接保存为文本文件,如TXT.JSON.CSV等,除此之外Excel也是现在比较流行的存储格式,通过这篇文章你也将掌握通过一些第三方库(xlrd/xlwt/ ...

  5. Python使用Tabula提取PDF表格数据

    今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...

  6. [Python] Python 学习 - 可视化数据操作(一)

    Python 学习 - 可视化数据操作(一) GitHub:https://github.com/liqingwen2015/my_data_view 目录 折线图 散点图 随机漫步 骰子点数概率 文 ...

  7. [python爬虫] Selenium常见元素定位方法和操作的学习介绍

    这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...

  8. selenium python 一些操作和定位收集

    (—)滚动条操作 python中selenium操作下拉滚动条方法汇总 selenium_webdriver(python)控制浏览器滚动条 selenium+Python(select定位) Sel ...

  9. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

随机推荐

  1. csapp第九章笔记-虚拟内存

    目录 物理与虚拟寻址 地址空间 虚拟内存作为缓存的工具 虚拟内存作为内存管理的工具 虚拟内存作为内存保护的工具 地址翻译 使用TLB(翻译后备缓冲器)加速地址翻译 多级页表 物理与虚拟寻址 计算机系统 ...

  2. 2020-06-14:Redis怎么实现分布式锁?

    福哥答案2020-06-14: 1.SETNX+EXPIRE.非原子性.2.SET key value [EX seconds] [PX milliseconds] [NX|XX]EX second ...

  3. 树莓派 4B VNC Viewer 显示 cannot currently show the desktop 的解决方法 (图文)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/ZChen1996/article/de ...

  4. 在 Go 语言中,我为什么使用接口

    强调一下是我个人的见解以及接口在 Go 语言中的意义. 如果您写代码已经有了一段时间,我可能不需要过多解释接口所带来的好处,但是在深入探讨 Go 语言中的接口前,我想花一两分钟先来简单介绍一下接口. ...

  5. jvm之方法内联优化

    前言 在日常中工作中,我们时不时会代码进行一些优化,比如用新的算法,简化计算逻辑,减少计算量等.对于java程序来说,除了开发者本身对代码优化之外,还有一个"人"也在背后默默的优化 ...

  6. 简单的股票信息查询系统 1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环) 2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来 3 允许按股票价格、涨跌幅、换手率这几列来筛选信息, 比如输入“价格>50”则把价格大于50的股票都打印,输入“市盈率<50“,则把市盈率小于50的股票都打印,不用判断等于。

    '''需求:1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环)2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来3 允许按股票价格 ...

  7. python中eval, exec, execfile,和compile

    eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果. 同样地, exec语句将字符串str当成有效Python代码来执行. ...

  8. 区块链入门到实战(12)之区块链 – 默克尔树(Merkle Tree)

    目的:解决由于区块链过长,导致节点硬盘存不下的问题. 方法:只需保留交易的哈希值. 区块链作为分布式账本,原则上网络中的每个节点都应包含整个区块链中全部区块,随着区块链越来越长,节点的硬盘有可能放不下 ...

  9. Hello-Annie

    Annie theme Annie是一个简单的Hexo博客主题,如果你喜欢散文.诗歌.小说......那么它可能合你心意! ☞预览-1,☞预览-2 Features 文艺.优雅.简洁的博客主题 页头随 ...

  10. 一文带你深扒ClassLoader内核,揭开它的神秘面纱!

    「MoreThanJava」 宣扬的是 「学习,不止 CODE」. 如果觉得 「不错」 的朋友,欢迎 「关注 + 留言 + 分享」,文末有完整的获取链接,您的支持是我前进的最大的动力! 前言 Clas ...