xpath语法

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等号后面填标签中间的文本)的直接使用,如id=123,class=s_ipt,比写xpath语句简单

你可能感兴趣的:(selenium)