兄弟节

更新时间:2023-04-12 07:43:37 阅读: 评论:0

热爱学习-关于兔子的作文

兄弟节
2023年4月12日发(作者:火眼金睛)

Pythonleniumxpath——⽗⼦、兄弟、相邻节点定位⽅式详

1.由⽗节点定位⼦节点

最简单的肯定就是由⽗节点定位⼦节点了,我们有很多⽅法可以定位,下⾯上个例⼦:对以下代码:

parenttochild

想要根据B节点定位⽆id的⼦节点,代码⽰例如下:

#-*-coding:utf-8-*-

fromleniumimportwebdriverdriver梦若浮生 =x()

('D:')

#1.串联寻找

_element_by_id('B').find_element_by_tag_name('div').text

#⽗⼦关系寻找

_element_by_xpath("//div[@id='B']/div").text

#ector⽗⼦关系寻找

_element_by_css_lector('div#B>div').text#ectornth-child

_element_by_css_lector('div#Bdiv:nth-child(1)').text#ectornth-of-type

_element_by_css_lector('div#Bdiv:nth-of-type(1)').text

#轴child

_element_by_xpath("//div[@id='B']/child::div").()

结果:

parenttochild

parenttochild

parenttochild

parenttochild

parenttochildparenttochild

第1到第3都是我们熟悉的⽅法,便不再多⾔。第4种⽅法⽤到了css选择器:

nth-child(n)

,该选择器返回第n个节点,该节点为div标签;第5

种⽅法⽤到了另⼀个css选择器:

nth-of-type(n)

,该选择器返回第n个div标签,注意与上⼀个选择器的区别;第6种⽅法⽤到了

xpath轴

child,这个是xpath默认的轴,可以忽略不写,其实质是跟⽅法2⼀样的。

当然,css中还有⼀些选择器是可以选择⽗⼦关系的如

last-child

nth-last-child等,感兴趣可以⾃⾏百度,有机会博主会讲讲csslector。

2.由⼦节点定位⽗节点

由⼦节点想要定位到⽗节点就有点难度了,对以世界上使用人口最多的语言是 下代码:

childtoparent

我们想要由C节点定位其两层⽗节点的div,⽰例代码如下:

#-*-coding:utf-8-*-

fromleniumimportwebdr鼠标不能动 iverdriver=x()

('D:')

#:`.`代表当前节点;'..'代表⽗节点

_element_by_xpath("//div[@id='C']/../..").text

#轴parent

_element_by_xpath("圣诞节祝福语 //div[@id='C']/parent::*/parent::div").()

结果:

childtoparentchildtoparent

这⾥我们有两种办法,第1种是

..

的形式,就像我们知道的,

.

表⽰当前节点,

..

表⽰⽗节点;第2种办法跟上⾯⼀样,是xpath轴中的⼀

个:

parent,取当前节点的⽗节点。这⾥也是csslector的⼀个痛点,因为css的设计不允许有能够获取⽗节点的办法(⾄少⽬前没有)

3.由弟弟节点定位哥哥节点

这是第3、第4种情况,我们这⾥要定位的是兄弟节点了。如以下源码:

brother1

brother2

怎么通过D节点定位其哥哥节点呢?看代码⽰例:

#-*-coding:utf-8-*-

fromleniumimportwebdriverdriver=x()

('D:')

#,通过⽗节点获取其哥哥节点

_element_by_xpath("//div[@id='D']/../div[1]").text

#轴preceding-sibling

_element_by_xpath("//div[@id='D']/preceding-sibling::div[1]").()

结果

br责任的故事 other1brother1

这⾥博主也列举了两种⽅法,⼀种是通过该节点的⽗节点来获得哥哥节点,另外⼀种⽐较优雅,是通过

xpath轴:preceding-sibling

,其能够获

取当前节点的所有同级哥哥节点,注意括号⾥的标号,

1

代表着离当前节点最近的⼀个哥哥节点,数字越⼤表⽰离当前节点越远,当代表着离当前节点最近的⼀个哥哥节点,数字越⼤表⽰离当前节点越远

然,

xpath轴:preceding

也可以,但是使⽤起来⽐较复杂,它获取到的是该节点之前的所有⾮祖先节点(这⾥不太好解释,改天专门写篇博⽂讲解下所有的轴)

4.由哥哥节点定位弟弟节点

源码与

3⼀致,要想通过D节点定位其弟弟节点,看代码⽰例:

#-*-coding:utf-8-*-

fromleniumimportwebdriverdriver=x()

('D:')

#,通过⽗节点获取其弟弟节点

_element_by_xpath("//div[@id='D']/../div[3]").text

#轴following-sibling

_element_by_xpath("//div[@id='D']/following-sibling::div[1]").text

#轴following

_element_by_xpath("//div[@id='D']/following::*").text#ector+

_element_by_css_lector('div#D+div').text#ector~

_element_by_css_lector('div#D~div').()

结果:

brother2

brother2

brother2

brother2brother2

博主分享了五种⽅法定位其弟弟节点,上⾯三种是⽤xpath,第⼀种很好理解,第⼆种⽤到了

xpath轴:following-sibl1岁儿童食谱大全 ing

,跟

preceding-sibling

似,它的作⽤是获取当前节点的所有同级弟弟节点,同样,

1

代表离当前节点最近的⼀个弟弟节点,数字越⼤表⽰离当前节点越远;第代表离当前节点最近的⼀个弟弟节点,数字越⼤表⽰离当前节点越远

三种⽤到了

xpath轴:following

,获取到该节点之后所有节点,除了祖先节点(跟

preceding

⽅向相反,但因为往下顺序容易读,不容易出错,

所以也是可以⽤来获取弟弟节点的,但也不建议这么使⽤);第四、第五种,我们⽤到了csslector,

+

~

的区别是:

+

表⽰紧跟在

当前节点之后的div节点,

~表⽰当前节点之后的div节点,如果⽤find_elements,则可获取到⼀组div节点。

用举世闻名造句-duanwu

兄弟节

本文发布于:2023-04-12 07:43:36,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/168125661743959.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:兄弟节.doc

本文 PDF 下载地址:兄弟节.pdf

上一篇:乱世情缘
下一篇:返回列表
标签:兄弟节
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
热门标签
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|