XPath 使用路径表达式来选取 XML 文档
中的节点或者节点集。
xpath:
1 找到测试对象----操作之------》验证测试结果是否
符合预期(断言)



示例:
找到第二个div :
绝对路径:/html/body/div[2]

相对路径:
//div[2]

绝对和相对混合用:
/html//div[2]

//表示找到所有的元素

找到input:
//input

找到有属性的所有元素:
//[@]

找id的属性:
//[@id]

定位到id=div1的元素:
//[@id=“div1”]

两个属性组合定位到唯一的:
//[@id=“div2” and @name=“wulaoshidiv”]

//[@id=“div1” or @name=“wulaoshidiv”]

//[@id!=“div1”]

//[contains(@name,“wulao”)]

//[.=‘挺风和日丽的’]

//div[@id=‘div1’]/[.=‘挺风和日丽的’]

//div[@id=‘div1’]/[contains(.,“风”)]

//div[@id=‘div1’]/p[3]

//div[@id=‘div1’]/p[last()]

//div[@id=‘div1’]/p[1]/…

//div[@id=‘div1’]/*

//p[.>20]

//p[text()>=20]等价于//p[.>=20]

//p[text()=20]

//p[text()!=20]

亲属关系匹配
• parent:😗 表示当前节点的父节点元素
• ancestor:😗 表示当前节点的祖先节点元素
• child:😗 表示当前节点的子元素 /A/descendant:😗 表示A的所有后代元素
• self:😗 表示当前节点的自身元素
• ancestor-or-self:😗 表示当前节点的及它的祖先节点元素
• descendant-or-self:😗 表示当前节点的及它们的后代元素
• following-sibling:😗 表示当前节点的后序所有兄弟节点元素
• preceding-sibling:😗 表示当前节点的前面所有兄弟节点元素
• following:😗 表示当前节点的后序所有元素
• preceding:😗 表示当前节点的所有元素
//p[.=‘50’]/preceding-sibling::p[1]

//p[.=‘40’]/following-sibling::p[1]

//p[.=‘40’]/parent::div

//p[.=‘40’]/ancestor::div

//p[.=‘40’]/ancestor::div/preceding-sibling::div

//*[@id=‘div1’]/child::p[1]

练习:3个网站的:www.baidu.com\www.sogou.com\www.bing.com
定位他们输入框和搜索按钮
//input[@id=‘query’]

//input[@id=‘stb’]

//input[@id=‘kw’]

//input[@id=‘su’]

//input[@id=‘sb_form_q’]

//input[@id=‘sb_form_go’]

定位mail.126.com的用户名、密码、登陆框。
//input[@placeholder=‘邮箱地址’]

//input[@placeholder=‘密码’]

//input[@name=“password”]

//a[@id=‘dologin’]

本文详细介绍了XPath的使用,包括如何通过绝对路径、相对路径和混合路径定位XML文档中的节点。示例涵盖了从基本的元素选择,如`//input`,到复杂的属性组合定位,如`//[@id='div1' and @name='wulaoshidiv']`,再到亲属关系匹配的各种表达式。此外,还提供了针对不同网站输入框和搜索按钮的定位示例,以及mail.126.com登录组件的选择方法。

被折叠的 条评论
为什么被折叠?



