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的父元素(找爸爸)

 

posted @ 2019-05-24 17:10  lixinhang  阅读(411)  评论(0)    收藏  举报