amo666 发表于 2015-6-29 22:42:02

诚邀joykao回答,如何用selenium webdriver+java实现左侧树状结构的通用函数

本帖最后由 amo666 于 2015-6-29 22:46 编辑

诚邀joykao回答,如何用selenium webdriver+java实现左侧树状结构的通用函数,期望能实现选中最底层的子节点。能把该函数做成对象库。非常感谢!

joykao 发表于 2015-6-30 16:56:35

这里说个思路哈,你可以一层层定位的,先定位到外面的文件夹层,然后再定位到最底层的节点,这个相信你也知道
如:
(driver.findElement(By.cssSelector("div.head_wrapper"))).findElement(By.linkText("新闻")).click();
把上面的方法封装下就可以了,通过每次传不同的selector值就可以做到了吧,把这个找元素的方法抽象出来以后所有类似的模块应该都是可以用的,把层级加进去就可以了,对象库么主要还是用来存储对象,你可以封装不同识别元素的方法,把这些方法当做lib来用

joykao 发表于 2015-6-30 16:56:39

这里说个思路哈,你可以一层层定位的,先定位到外面的文件夹层,然后再定位到最底层的节点,这个相信你也知道
如:
(driver.findElement(By.cssSelector("div.head_wrapper"))).findElement(By.linkText("新闻")).click();
把上面的方法封装下就可以了,通过每次传不同的selector值就可以做到了吧,把这个找元素的方法抽象出来以后所有类似的模块应该都是可以用的,把层级加进去就可以了,对象库么主要还是用来存储对象,你可以封装不同识别元素的方法,把这些方法当做lib来用

amo666 发表于 2015-6-30 21:42:39

joykao 发表于 2015-6-30 16:56
这里说个思路哈,你可以一层层定位的,先定位到外面的文件夹层,然后再定位到最底层的节点,这个相信你也知 ...

这是通过css定位吗?我很小白哈。
谢谢版主,很喜欢你!自从看了你那期的专家做客之后,觉得你最棒了。

joykao 发表于 2015-7-6 13:36:30

amo666 发表于 2015-6-30 21:42
这是通过css定位吗?我很小白哈。
谢谢版主,很喜欢你!自从看了你那期的专家做客之后,觉得你最棒了。

我只是举个例子,当然你可以用任何方便的找元素的方法;P

hustar0102 发表于 2016-5-27 14:04:05

似乎有点懂了 多谢楼主

hustar0102 发表于 2016-5-27 14:04:21

似乎有点懂了 多谢楼主

hustar0102 发表于 2016-5-27 14:17:28

我刚试了下,发现我的问题和楼主的不一样,希望 joykao 也给个思路,如图片1,我这个树结构因为是自己建的树结构,所以目录是变化的,位置也不是固定的。目前可以通过driver.find_element_by_xpath("//*[@class='tree-title' and text()='jiaozhumingcheng4403']").click() 选中jiaozhumingcheng4403结点,但我想要点击的是下面的设计模型,不知道该如何实现。还有就是看图片2,jiaozhumingcheng4403结点和设计模型结点,不是父子关系,两者是平级的。求大神指点如何能定位到设计模型

hzieechenwei 发表于 2016-6-2 13:10:05

hustar0102 发表于 2016-5-27 14:17
我刚试了下,发现我的问题和楼主的不一样,希望 joykao 也给个思路,如图片1,我这个树结构因为是自己建的 ...

你这个问题很简单啊。每一个节点都是一个class为tree node的div,找到父亲div,下一个兄弟UL就是此节点的子树,以此类推,很简单的一个逻辑

1214030128 发表于 2019-9-5 14:21:12

遇到与楼主类似的问题:我需要定位树结构最底层的子节点,然后利用鼠标悬停选中,但是问题是,我如何根据传入的值,展开对象的节点,然后去定位最底层的节点,有什么办法能一次展开所有的节点吗?
页: [1]
查看完整版本: 诚邀joykao回答,如何用selenium webdriver+java实现左侧树状结构的通用函数