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’]