selenium如何获取页面左侧树状结构中的根节点
如图一,我目的是想点击设计模型这个菜单。问题描述:首先这个树形结构是我新建的,所以这个设计模型位置是不固定的。其次如图二,我通过元素定位发现,设计模型和它的上级菜单jiaozhumingcheng4403不是父子关系,而是平级的。我现在可以通过driver.find_element_by_xpath("//*[@class='tree-title' and text()='jiaozhumingcheng4403']").click() 选中jiaozhumingcheng4403这个结点。
求大神给个思路,如何能点击到jiaozhumingcheng4403下面的设计模型
我也只是猜猜,上面的id = '_easyui_tree_181',应该是指设计模型那个节点。试试用ID的定位方法试试。
我觉得可以先用driver.find_element_by_id("_easyui_tree_181"),然后在用driver.find_element_by_xpath("")找到那个设计模型 掉渣饼 发表于 2016-5-27 16:07
我觉得可以先用driver.find_element_by_id("_easyui_tree_181"),然后在用driver.find_element_by_xpath("") ...
不行的,因为那个树结构是我新建的,所以那个ID 也是变化的 若尘_51 发表于 2016-5-27 15:48
我也只是猜猜,上面的id = '_easyui_tree_181',应该是指设计模型那个节点。试试用ID的定位方法试试。
不行 ,ID不固定 (1)既然你可以通过driver.find_element_by_xpath("//*[@class='tree-title' and text()='jiaozhumingcheng4403']").click() 选中jiaozhumingcheng4403这个结点。
(2)然后你获取jiaozhumingcheng4403这个节点的id属性
(3)将第二步中的id属性+1 (前提是这个两个节点的ID之间是有规律的)
(4)再通过ID定位的方式进行定位。 :victory::victory::victory::victory: 若尘_51 发表于 2016-5-27 17:08
(1)既然你可以通过driver.find_element_by_xpath("//*[@class='tree-title' and text()='jiaozhumingchen ...
谢谢您的回答,我感觉您这个方法可以使用,因为ID 每次都是+1的。 现在有个新的问题,我通过driver.find_element_by_xpath("//*[@class='tree-title' and text()='jiaozhumingcheng4403']").id获取到的id属性是0.8996194829633286-1,而通过F12抓取到对象的属性是_easyui_tree_180,这两种表示方法如何转换呢? value = driver.find_element_by_xpath("//*[@class='tree-title' and text()='jiaozhumingcheng4403']").get_attribute("id")
print value#打印属性值 若尘_51 发表于 2016-5-30 09:56
value = driver.find_element_by_xpath("//*[@class='tree-title' and text()='jiaozhumingcheng4403']").g ...
试了下 ,没有任何打印,后来发现要打印的是父节点的ID值,本节点没有ID值。我想获取这个图中的id值,怎么获取呢 本帖最后由 若尘_51 于 2016-5-30 11:08 编辑
我这边没有例子可以试验啊。
换个方法你试试:(思路大概就是下面那样,语句写得对不对不敢保证)
cssname_values = driver.find_element_by_className(“xxx”);#应该是得出多个值的
for cssn in cssname_values:
print cssn
ifdriver.find_element_by_className(cssn).text()==''jiaozhumingcheng4403'':
cssn_value = cssn
value = driver.find_element_by_className(cssn_value).get_attribute("id")
print value#打印属性值
若尘_51 发表于 2016-5-30 10:56
我这边没有例子可以试验啊。
换个方法你试试:(思路大概就是下面那样,语句写得对不对不敢保证)
问题已解决 hustar0102 发表于 2016-5-30 12:05
问题已解决
问题已解决,获取的id是父节点的ID,不是本节点的,你说的方法是正确的
tt=driver.find_element_by_xpath("//*[@class='tree-title' and text()='"+BuildingName+"']/parent::div").get_attribute("id")#获取父节点div下的ID值
aid=tt.split('_') #将ID拆分
bid=int(aid)+1 #将ID中的数字部分+1
cid="_easyui_tree_"+str(bid) #重新组成新的ID
driver.find_element_by_xpath("//*[@id='"+cid+"']/span").click() #根据xpath点击设计模型
找到jiaozhumingcheng4403的父节点的兄弟节点不就完事了吗???!!!
页:
[1]