selenium如何操作页面树状列表
selenium如何操作页面树状列表??举个例子:我要怎么操作如下图所示的树状结构列表?我要对这个树状结构列表做什么操作?

一、思路
1.根据driver.find_element_by_xpath(‘//*[@id="vehGroupTree_1_switch"]’).click() 选中顶级节点;如上图的XX管理(id属性为"vehGroupTree_1_switch"),获取XX管理的id属性;
2.观察节点之间的规律;如上图的id属性的数字部分逐级+1
3.获取树状结构列表所有显示内容?问题:在获取树状结构列表内容的时候,节点没有展开是否可以获取得到?
4.获取树状结构列表分组数目,包括子集?
5.遍历展开所有节点?
二、操作
1.遍历点击“+”按钮,展开树状结构列表的子集
a = 'vehGroupTree_1_switch' # 顶级节点的id属性
b = a.split('_') # 拆分id属性
c = [] # 存放id属性的数字部分列表
e = [] # 存放生成的id属性
# 生成id属性的数字部分
for x in range(2,21): # 从2开始遍历,避免点击到顶级节点,使后续节点获取不到属性,导致报错;21为树状结构列表内容总数n+1(总数为n)
c.append(x)
print(c)
# 组合id属性
for i in c:
g = b[0] + '_' + str(i) + '_' + b[2] # 组合 :
e.append(g)
print(g)
print(e)
# 遍历点击“+”按钮,展开树状结构列表的子集
for k in e:
print(k)
print("//*[@id='" + k + "']")
d.find_element_by_xpath("//*[@id='" + k + "']").click()
2.获取树状结构列表分组数目,包括子集,并获取列表的所有内容

注意:如果没有所有子集展示出来,是获取不到子集内容的(统计包括子集在内的总数)
a = d.find_elements_by_xpath('//*[@id="vehGroupTree_1"]') # 定位到整个树状结构列表元素
b = []
for p in a:
c = p.text
b.append(a)
print(c, p.get_attribute("href")) # 打印遍历标签出来的内容
print(b)
print(b[0].split('\n')) # 以\分隔符拆分
print(len(b[0].split('\n'))) # 统计
3、贴上完整代码
from selenium import webdriver
import time d = webdriver.Chrome()
d.maximize_window()
d.get(url)
d.find_element_by_xpath('//*[@id="userName"]').send_keys(username)
d.find_element_by_xpath('//*[@id="userPwd"]').send_keys(passworld)
d.find_element_by_xpath('//*[@id="login"]').click()
time.sleep(2)
d.find_element_by_xpath('//*[@id="menu_ul"]/li[5]/a').click()
d.switch_to_frame('mainframe2')
d.find_element_by_xpath('//*[@id="nav-accordion"]/li[2]/a').click()
d.switch_to_frame('mainframe')
d.switch_to_frame('vehIframe') a = 'vehGroupTree_1_switch'
b = a.split('_')
c = []
e = []
for x in range(2,21):
c.append(x) #print(c)
for i in c: g = b[0] + '_' + str(i) + '_' + b[2]
e.append(g)
#print(g)
#print(e)
# 遍历点击展示子集节点
for k in e:
#print(k)
#print("//*[@id='" + k + "']")
d.find_element_by_xpath("//*[@id='" + k + "']").click() he = d.find_elements_by_xpath('//*[@id="vehGroupTree_1"]')
lists = []
for p in he:
a = p.text
lists.append(a)
print(a, p.get_attribute("classname")) # 打印遍历标签出来的内容
print(lists)
print(lists[0].split('\n'))
print(len(lists[0].split('\n')))
selenium如何操作页面树状列表的更多相关文章
- GTK+中的树状列表构件(GtkTreeView)
GTK+中的树状列表构件(GtkTreeView) GTK+中的树状列表构件(GtkTreeView) 在本章的GTK+程序设计教程中,我们将向大家重点介绍非常常用也有点复杂的构件--GtkTreeV ...
- jquery写的树状列表插件-alvintree
在做项目的时候遇到选择部门下人员的功能,可多选可单选,所以就想着使用树状列表来进行选择,但在网上找了很多,发现要么就是挺复杂,要么就是需要各种前端框架的支持,试了一个感觉难用,所以就想着自己写一个简便 ...
- LigerUI 树状列表折叠显示
http://blog.csdn.net/haojuntu/article/details/8626040 —————————————————————————————————————————————— ...
- Android中的树状(tree)列表
树状列表前端挺常用的,还有人专门写过Ztree,Android中有的时候也需要使用到树状列表,上篇文章写了一下ExpandableListView,ExpandableListView最多支持两级结构 ...
- jquery-treegrid树状表格的使用(.Net平台)
上一篇介绍了DataTable,这一篇在DT的基础之上再使用jquery的一款插件:treegrid,官网地址:http://maxazan.github.io/jquery-treegrid/ 一. ...
- HDU 1394 Minimum Inversion Number(线段树/树状数组求逆序数)
Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...
- Ultra-QuickSort(树状数组求逆序对数)
Ultra-QuickSort 题目链接:http://poj.org/problem?id=2299 Time Limit: 7000MS Memory Limit: 65536K Total ...
- zoj2112 树状数组+主席树 区间动第k大
Dynamic Rankings Time Limit: 10000MS Memory Limit: 32768KB 64bit IO Format: %lld & %llu Subm ...
- 洛谷P2414 阿狸的打字机 [NOI2011] AC自动机+树状数组/线段树
正解:AC自动机+树状数组/线段树 解题报告: 传送门! 这道题,首先想到暴力思路还是不难的,首先看到y有那么多个,菜鸡如我还不怎么会可持久化之类的,那就直接排个序什么的然后按顺序做就好,这样听说有7 ...
随机推荐
- koa2实现登录注册功能(ejs+mongodb版)
gtihub仓库地址:(由于国内处于敏感时期,github暂时无法访问) 主要使用的中间件: "ejs": "^2.7.1",(渲染模板) "koa& ...
- Android 导致OOM的常见原因
OOM主要有两种原因导致: 1. 加载大图片: 2. 内存泄漏: 一.加载大图片 在Android应用中加载Bitmap的操作是需要特别小心处理的,因为Bitmap会消耗很多内存.比如,Galaxy ...
- Apache Shiro反序列化远程代码执行
一.漏洞利用 wget https://raw.githubusercontent.com/sv3nbeast/ShiroScan/master/moule/ysoserial.jar 反弹shell ...
- Java数组有什么特征
数组是(相同类型数据)的(有序)(集合) 数组会在内存中开辟一块连续的空间,每个空间相当于之前的一个变量,称为数组的元素element 元素的表示 数组名[下标或者索引] scores[7] scor ...
- HIVE了解及SQL基础命令
hive(数据仓库工具) Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据.它架构在Hadoop之上,总归为大数据,并使得查询和分析方便.并提供简单的sql查询功能,可以将sql语句转 ...
- eclipse启动Failed to load the JNI shared library
由于安装jdk安装了多个版本,用其他开发工具,某天再打开eclipse时弹出“Failed to load the JNI shared library jvm.dll” 原因:eclipse的版本与 ...
- webpack引入全局jQuery
1.使用命令行npm install jquery来安装jQuery 2.在webpack.config.js文件里配置: plugins:[ new webpack.ProvidePlugin({ ...
- Java——异常的分类
2.异常的分类 异常主要分为:错误.一般性异常(受控异常).运行期异常(非受控异常) 错误:Java虚拟机无法解决的严重问题.如:JVM系统内部错误.资源耗尽等严重情况.一般不编写针对性的代码进行处理 ...
- Shiro学习(13)RememberMe
Shiro提供了记住我(RememberMe)的功能,比如访问如淘宝等一些网站时,关闭了浏览器下次再打开时还是能记住你是谁,下次访问时无需再登录即可访问,基本流程如下: 1.首先在登录页面选中Reme ...
- tarjan求强连通+缩点——cf1248E
这题好像是DEF里最水的,, /* 建图:如果a认识b,那么从a->b连一条边,将点分成两个集合A,B,没有从A->B的边 求出强连通分量,再造一张新图,新图中任取一个的出度为0的点作为集 ...