Selenium学习笔记||十、xpath选择
一、什么是xpath
XPath(XML Path Language),W3C定义的用来在XML文档中选择节点的语言
二、xpath验证方法
1. console中
2. element tab 中
三、根节点
1. 根节点用/表示
2. 对应整个html文档
3. /html 对应html节点
4. /html/body/div 对应html下一层一层的节点
5. 加入起始于斜杠(/),则此路径始终代表到某元素的绝对路径
四、 //符号的作用
1. 选择整个文档中所有的节点
2. //表示,从当前节点寻找所有的后代元素,不管在什么位置
A. 如果以//开头就表示从根节点开始,寻找所有的后代元素
B. //div//p 表示选择所有的div元素里边的p元素,不管div在什么位置,也不管p元素在div下面的什么位置
C. //div//p 就是css选择器的后台元素选择的写法 div p
五、通配符
和css一样,xpath也有通配符*
A. //div/* 选择div下面所有的元素
B. 等价于css $$('div > *')
六、根据属性选择
1. //*[@id] 选择所有具有id属性的元素

2. //body[@id="subPage"]选择所有具有id值为subPage的body元素

css中如果属性值,如果没有空格可以不加引号
但是xpath则必须要引号,单双引号都可以
七、根据ID选择
1. id、class 也是属性
2. //div[@id="food"]
3. //div[@class="cheese"]
八、子元素选择
1. 选择属于其父元素的第n个某个类型的子元素
A. //*[@id="songListWrapper"]/div/ul/li[2] (=//*[@id="songListWrapper"]/div/ul/li[position()=2])选择第二个li元素 等价于 #songListWrapper li:nth-of-type(2) -----------下标从1开始


B. //*[2] 代表所有节点当中的第二个子节点 等价于 *:nth-child(2)
2. 选择属于其父元素的倒数第n个某个类型的子元素
A. //a[last()] 属于其父元素的最后一个a元素

B. //a[last()-1]属于其父元素的倒数第二个a元素

C. //*[@id="food"]/span[last()]
D. //*[last()-1]
3. position()
A. 选择下标为n的元素 //*[@id="songListWrapper"]/div/ul/li[position()=2]

B. 选择所有下标大于n的元素 //*[@id="songListWrapper"]/div/ul/li[position()>2]

C. 选择所有下标为倒数第二个的元素

九、 组选择
1. 多个表达式一起
2. css用,隔开,比如p, button
3. xpath 用 | 隔开,比如//p | // button
十、其他
http://www.w3school.com.cn/xpath/xpath_axes.asp

1. //div[@id="s_upfunc_menus"]/following-sibling::div 选择id为s_upfunc_menus的之后的所有同级div元素 离他最近用[1],最远用last() (找弟弟)

2. //div[@id="s_upfunc_menus"]/preceding-sibling::div 选择id为s_upfunc_menus的之前的所有同级div元素 离他最近用[1],最远用last() (找哥哥)

3. //div[@id="s_upfunc_menus"]/.. 选择id为s_upfunc_menus的父元素(找爸爸)


浙公网安备 33010602011771号