首页 > 其他 > 详细

selenium如何操作页面树状列表

时间:2019-07-15 16:57:09      阅读:182      评论:0      收藏:0      [点我收藏+]

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如何操作页面树状列表

原文:https://www.cnblogs.com/yfacesclub/p/11189650.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!