selenium+python对表格数据的操作
一、直接获取整个表格数据,包含表头
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对表格数据的操作的更多相关文章
- ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2
运行效果: 此文介绍了根据操作左侧菜单在右面板展示相应内容. 一.主页 先看一下跳转主页的方式:由在webapp根目录下的index.jsp跳转至demo的index.jsp 下面是demo的inde ...
- 干货--Excel的表格数据的一般处理和常用python模块。
写在前面: 本文章的主要目的在于: 介绍了python常用的Excel处理模块:xlwt,xlrd,xllutils,openpyxl,pywin32的使用和应用场景. 本文只针对于Excel表中常用 ...
- Python读取网页表格数据
学会了从网格爬取数据,就可以告别从网站一页一页复制表格数据的时代了. 说个亲身经历的事: 以前我的本科毕业论文是关于"燃放烟花爆竹和空气质量"之间关系的,就要从环保局官网查资料. ...
- Python常用的数据文件存储的4种格式(txt/json/csv/excel)及操作Excel相关的第三方库(xlrd/xlwt/pandas/openpyxl)(2021最新版)
序言:保存数据的方式各种各样,最简单的方式是直接保存为文本文件,如TXT.JSON.CSV等,除此之外Excel也是现在比较流行的存储格式,通过这篇文章你也将掌握通过一些第三方库(xlrd/xlwt/ ...
- Python使用Tabula提取PDF表格数据
今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...
- [Python] Python 学习 - 可视化数据操作(一)
Python 学习 - 可视化数据操作(一) GitHub:https://github.com/liqingwen2015/my_data_view 目录 折线图 散点图 随机漫步 骰子点数概率 文 ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...
- selenium python 一些操作和定位收集
(—)滚动条操作 python中selenium操作下拉滚动条方法汇总 selenium_webdriver(python)控制浏览器滚动条 selenium+Python(select定位) Sel ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...
随机推荐
- C#LeetCode刷题之#16-最接近的三数之和(3Sum Closest)
目录 问题 示例 分析 问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3620 访问. 给定一个包括 n 个整数的 ...
- python关于函数调用作为参数的说明&&装饰器
python关于函数调用作为参数的说明&&装饰器 简单的: 先看代码: def out(): print('out') def inner(): return 'inner' retu ...
- 提升团队幸福感之:集成 GitLab && JIRA 实现自动化工作流
佛罗伦萨 - 圣母百花圣殿(图) 前言 GitLab 和 Jira 是平时开发过程中使用非常高频的代码管理系统(开发人员)和项目管理系统(项目管理),通过两套系统的协作完成平常大多数的功能开发,但是两 ...
- python2.7用socks和socket设置代理
接下来是最近遇到的一个代理问题. 背景:一个基于python2.7的自动化测试项目 目的:因调试需求,需要通过代理连接其他公司的前端网站,来检验项目运行所在的问题. 问题:RUN>等了1分钟没有 ...
- 前端进阶必读:《JavaScript核心技术开发解密》核心提炼二
前言 最近读勒基本关于前端的数据<JavaScript核心技术开发解密>,<webpack从入门到进阶>...这几本书帮助到我更好的理解JS.webpack在前端技术领域中的作 ...
- vue-cli的安装及版本查看/更新
vue-cli的安装及版本查看更新 vue-cli安装 npm install vue-cli -g vue-cli的版本查看 vue -V vue-cli的3.0+以后使用的不是vue-cli了,如 ...
- 11.oracle 事务
一.什么是事务事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml(数据操作语言,增删改,没有查询)语句要么全部成功,要么全部失败.如:网上转账就是典型的要用事务来处理,用于保证数据的 ...
- 团队作业3:需求改进&系统设计
一.需求&原型改进: 1.1 选题需求改进 用户:同学你好,有什么事我们能帮到你 我:我要说的事……(咽口水)你们千万别害怕 用户:我们是杠精,我们不会怕,您请说 我:我们要做一个roguel ...
- 标准git请求
initCate() // 定义加载文章分类的方法 function initCate() { $.ajax({ method: 'GET', url: '/my/article/cates', su ...
- 手写迷你Tomcat
手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat手写迷你Tomcat ...