xpath语法

上一篇 / 下一篇  2016-09-09 16:01:14 / 个人分类:selenium

xpath是一种元素定位语言,可以用来定位html中的元素。


xpath会用到的符号:

  • // 以匹配的方式选择元素,只能用在开头,如//path,选取页面中的path元素

  • / 选取节点

  • [] 封装选择条件或属性或位置,如[1]表示选择第一个元素;[last()]表示选择最后一个元素;[position()<3]代表选择前两个元素

  • @ 用在属性名前,肯定会写在[]里。如:[@id='abc'],表示选择属性名为id的值为abc的元素

  • * 选择所有元素,一般用在//后,如//*[@id='abc'],表示选择元素名名任意,属性名为id的值为abc的元素。如@*可以表示任意属性

  • and 可以用来匹配多个条件,且的含义,如//input[@id='kw' and @name='wd']

  • or 可以用来匹配多个条件,或的含义

  • | 用来选取多个元素,如//path1|path2,表示选择页面中的path1和path2元素

  • contains(),该函数可以用来匹配**某部分内容,如//div[contains(@id,'layui-layer')],表示id属性内容**layui-layer的div元素

  • text(),该函数可以用来匹配元素中间的文本,特别适合超链接,按钮。如//*[text()='White list'],表示文本为White list的任何元素。text()也可以写在/后面,可以直接获取到标签文本

  • 轴函数:xpath中有一些轴,可以用来处理一些特殊情况,如:
    //tr[position()<=2]/td[text()='vendorId']/parent::tr/td[6]/text(),本例中先将范围缩小到前两个tr,然后找到他的儿子中含有文本vendorId的儿子,然后找到这个儿子的爹,再找它的第6个儿子,本例中无法通过父亲确定节点,可以使用先找儿子再找爹再找儿子的方式来定位。::后跟标签,此标签也可以加[]来辅助定位。

xpath的匹配分为路径匹配和属性匹配,以及他俩的组合,如:

路径匹配:

1.绝对路径:/html/body/div[4]/div[4]/link,绝对路径必须从html开始往下找

2.相对路径://div[4]/div[4]/link,某一个元素下,含有第4个div,这个div下也含有第4个div,它下面的link元素


元素匹配:如//input[@id='kw' and @name='wd']

路径和元素组合匹配,如绝对的://div[4]/div[@id='wrapper']/link,相对的:/html/body/div[4]/div[@id='wrapper']/link


在selenium ide中使用注意:

1.target中使用绝对路径的xpath,要写成xpath=xxxxx,而相对路径,则不需要写xpath=

2.selenium ide支持id、class、link(link等号后面填标签<a></a>中间的文本)的直接使用,如id=123,class=s_ipt,比写xpath语句简单


相关阅读:

TAG: xpath XPATH

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-03  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 22173
  • 日志数: 8
  • 建立时间: 2016-09-09
  • 更新时间: 2016-10-08

RSS订阅

Open Toolbar