Xpath学习总结(一)
来源:互联网 发布:不表态 知乎 编辑:程序博客网 时间:2024/05/16 01:54
使用WebDriver做Web自动化时要使用Xpath定位页面元素,大概总结了下Xpath相关知识,以备后续学习和使用。
一、基本知识
. 选择当前节点
.. 选取当前节点的父节点
@ 选择属性
以//开头:相对路径,表示Xpath引擎从文档中任意符合的元素节点开始进行解析
以/开头:绝对路径,表示Xpath引擎从文档的根节点开始解析,一般不推荐使用绝对路径,因为页面结构改变后之前定义的Xpath就会失效
/出现在xpath路径中: 表示查找父节点的直接子节点
//出现在xpath路径中:表示寻找父节点下任意符合条件的子节点
二、xpath精准查找:
使用id, name, class, className, tagname, label等。优先级:id-->name-->class,例如:
<span style="font-size:18px;">//span[@id='login']//input[@name='textName']//select[@class='dpdroplist']//div[@label='layoutRows']</span>
三、xpaht模糊匹配:
1. contains关键字:
1) 查找页面中href属性包含有Event Log的a元素://a[contains(@href,'Event Log')],@后面可以跟该元素的任意属性名
2) 查找页面中id属性包含tableNavBar或者menu的所有元素://*[contains(@id,'tableNavBar' or contains(@id,'menu'))
3) 查找页面中type属性不包含hidden的input元素://input[not(contains(@type,'hidden'))]
4) 查找页面当前节点class属性包含wizardPanelInner的div元素://div[@class[contains(.,'wizardPanelInner')]]
查找页面当前节点包含mainCellTable的div元素://div[contains(.,'mainCellTable')]
2. text关键字
查找文本信息包含Logout的div元素://div[contains(text(),'Logout')]
3. start-with关键字:
寻找label属性以blkList开头的div元素://div[starts-with(@label, 'blkList')]
四、实例:
1. 表格里确定行和列:
确定列:
<span style="font-size:18px;">//td[@align='left'][./div[@id='searchResultTable' or @id='ChangedRecordPageDiv']]/div[not(contains(@style,'display: none;'))]//table[@class='mainCellTable']//thead[not(@style)]//th[contains(.,'Name')]</span>
确定行:
<span style="font-size:18px;">//td[@align='left'][./div[@id='searchResultTable' or @id='ChangedRecordPageDiv']]/div[not(contains(@style,'display: none;'))]//table[@class='mainCellTable']//tbody//tr[1]</span>
2. 传递参数
<span style="font-size:18px;">String CHECKBOX_LOC="/div[@class='bDiv']//table//tr[@id='sampleDataRow' and contains(., '%s')]//input";driver.findElement(By.xpath(String.format(CHECKBOX_LOC, name.toUppercase()))).click();</span>
参数name.toUppercase()将传递到%s
新手学习,如果有遗漏或者不正确的地方,欢迎阅者指正。
- Xpath学习总结(一)
- xpath学习(一)
- XPath学习笔记一
- XPATH学习总结
- XPATH学习总结
- 关于xpath学习总结
- Xpath学习总结(二)
- XPath学习:基本语法(一)
- XML学习总结-XPATH技术-(二)
- XPath总结
- XPath总结
- Xpath总结
- xpath-总结
- XPath总结
- XPath学习
- xpath学习
- XPath 学习
- 学习XPath
- Android性能优化之布局优化总结
- HTML 代码复用——gulp-file-include
- LeanCloud 的 AVObject 和 AVUser的子类化
- Android数据库ORMlite框架详解
- Organize Your Train part II【POJ--3007】【平衡二叉树】
- Xpath学习总结(一)
- Windows MFC的同步类 http://blog.sina.com.cn/s/blog_627ebfc30100iman.html
- mysql5.5和5.6对于datetime值带毫秒的问题
- AndroidStudio中直接下载Github中的代码
- 查看MySQL的当前存储引擎
- Phoenix二级索引
- htm html shtml 它们有什么区别?
- BZOJ1146: [CTSC2008]网络管理Network
- Gradle实战-第一课