Selenium Grid测试一个重要的依赖元素就是Locator,Locator是通过Xpath来定位的。所以在用selenium之前,先要学会找locator的Xpath
XPath简介
XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。
XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似
XPath分绝对路径和相对路径
绝对路径(absolute path)必须用“/”起首,后面紧跟根节点,比如/step/step/...。
相对路径(relative path)则是除了绝对路径以外的其他写法
因为绝对路径的层级可能会随着版本的更新而变化,所以相对路径是一种比较安全的方法
XPath表达式的基本格式
XPath选择节点的基本规则:
- 从最近的一个具有id属性的节点开始,如果只用id就可以区分的话,可以写成
Locator=”Controler”(其中id=” Controler”)
- 通过@选择属性来确定路径,主要是正对id和class,格式一般为:
//*[@id=’idName’]//*[@class=’className’] 或者//*[@class=’ ’className’’]
- 如果不能通过id和class属性来区分,例如除了文本内容不同,其他都一样的,可以通过text()来判断,比如 //*[@class='MyTest’][text()='First text']和//*[@class='MyTest’][text()='Second text']来区分,或者也可以写成//*[@class='MyTest']//*[contains(text(),'Second text']
- 可以通过“|”来选择多路径
确定Xpath的方法(Firefox为例):
- Firebug来确定路径,如果不能直接转换成相对路径,也可以用Xpath checker先找出绝对路径然后转换
- Firefox的相对路径通常是用Selenium IDE来验证的
- 由于鼠标的右键菜单很容易消失,通过Firebug很难定位,这里就轮到Dom inspect出马了