xpath语法
1. 什么是XPath?
XPath是一种XML路径,用于浏览页面的HTML结构。他是一种语法或者语言用来查找使用XML路径表达的网页中的任意元素。
XPath的基本形式如下:
Xpath=//tagname[@attribute='value']
//:选中当前节点
Tagname:特定节点的标记名
@:选中属性的标记符
Attribute:节点的属性名字
Value:属性值
为了精确查找网页中的元素,有以下几种不同类型的定位器:
XPath定位器
查找不同元素
ID
通过元素中的ID查找元素
Classname
查找元素中的Class
Name
通过元素的名字查找元素
Link text
通过链接的内容查找元素
XPath
查找动态元素并在网页的各个元素之间遍历所需的XPath
CSS path
CSS 路径也能定位到没有name、class或者ID的元素
2. X-path的类型
XPath有两种类型:
1)绝对XPath路径
2)相对XPath路径
2.1 绝对XPath
这是一种直接查找元素的方式,不过弊端就是如果元素路径中有一点儿变动的话,XPath就会获取失败。
XPath的关键特征是它以单个正斜杠(/)开头,这意味着您可以从根节点中选择元素。
Absolute XPath
/html/body/div[2]/div[1]/div/h4[1]/b/html[1]/body[1]/div[2]/div[1]/div[1]/h4[1]/b[1]
2.2 相对XPath
XPath相对路径从HTML DOM结构的中间部分开始。它以双正斜杠//开始。他可以查找网页中的任何元素,不需要写很长的XPath路径。相对XPath一直让人偏爱的原因就在于不需要从根元素得到一个完整路径。
Relative XPath
Relative XPath: //div[@class='featured-box cloumnsize1']//h4[1]//b[1]
2.3 什么是XPath axes
XPath axes在XML文档中从当前上下文节点搜索不同的节点。XPath Axes是查找动态元素的方法,否则,这是没有ID、Classname,Name等常规XPath方法无法实现的。
Axes方法用来查找那些刷新或者执行其他操作而动态改变的元素。Selenium Webdriver中常用的Axes方法很少,例如孩子(child),父母(parent)