'''
xpath定位方法详解:
推荐手写xpath,复制的容易报错。
xpath是基于元素存在的路径进行定位,所以分为绝对路径和相对路径两种语法结构。
绝对路径:不推荐,除非找不到其他解决办法。
示例:/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[1]/input
缺点:获取元素过程麻烦,阅读性差,可维护性低。
相对路径:其实就是通过设置筛选条件来查找元素。
示例://*[@id="kw"]
// 表示从根路径下开始查找,也就是html标签开始。
* 表示任意元素
[] 表示添加筛选调价
@ 表示属性
id 表示属性名称
"kw" 属性值
text() 表示文本 //a[text()="新闻”]
相对路径中的筛选条件,可以用任意属性进行筛选。也可以用多条件关联进行筛选。多条件关联使用
逻辑与或非,一般只用and。 //input[@type='hidden' and @name = 'rsv_spt']
xpath中尽量不用class name进行元素定位。避免定位不稳定。
可以基于xpath实现对父级和子级元素的获取
//*[@id="s_kw_wrap"]/i[1] 获取子级元素
//input[@type='hidden' and @name = 'rsv_spt']/.. 获取父级元素
xpath的函数:
contains函数:
表示模糊查找,基于指定的参数进行模糊查找。
//input[contains(@id,"k")]
//input[contains(text(),"新")]
元素获取的经验:
1.如果元素不好获取,可以通过父级或者子级定位
2.class属性值不推荐使用,因为太长了,容易报错
3.元素定位时,一定要找对需要定位的元素,需要经验。
4.元素定位的方法不固定,什么合适用什么
'''