在做UI自动自动化过程中,我们经常用到各种属性定位元素,如id、name、xpath等。多数情况下,可能很多定位元素属性不明显,这时我通常寄希望于xpath,虽然它执行效率低,但不是没得选了是吧。
1、xpath规则
/ 表示从根节点选取
// 表示从匹配选择的当前节点选取文本节点,而不管它们在文本中的位置
. 表示选取当前节点
.. 表示选取当前节点的父节点
@ 表示选取属性
2、xpath属性定位及标签
("//标签名[@属性='属性值']") ,属性值可以是id、tagname、link name 、css xpath等。
在Html里,展示一个页面可以用到很多标签,如input、div 、span、table等;我们在写xpath路径时。可以写入具体的标签名,也可以用*表示任意标签。
dirver.find_element_by_xpath("//input[@id='q']") 或 dirver.find_element_by_xpath("//*[@id="q"]") 均表示上述的输入框。
3、定位兄弟元素
如图1 所示,有form标签下有2个input标签,如何第一个input标签属性不明显,怎么定位第一个input标签呢?
利用..先找到父元素,再通过索引找到第一input标签,其中..表示返回上一个父节点。
dirver.find_element_by_xpath("//input[@id='q']/../input[1]")
注意:xpath中索引从1开始递增。
参考:https://blog.csdn.net/weixin_44090305/article/details/92185565