#xpath定位元素方法: /html/body/div[2] #绝对路径定位 #相对路径定位元素 //* #找到所有的元素 //input #找到input元素 //*[@*] #表示有属性的所有元素 //*[@id] #找到所有包含id属性的元素 //*[@id="div1"] #找到id为div1的元素 //*[@id="div2" and @name="wulaoshidiv"] #找到同时具备两个属性的元素(必杀技) //*[@id="div1" or @name="wulaoshidiv"] #找到其中一个具备属性的元素 //*[@id!="div1"] #找到id不等于div1的元素 //*[contains(@name,"wulao")] #找到部分属性值的元素 //*[.="挺风和日丽的"] #通过文本定位页面元素(找到两个元素) //div[@id="div1"]/*[.="挺风和日丽的"] #先找到div1的元素,然后定位文本元素 //div[@id="div1"]/*[contains(.,"风和")] #模糊查找元素 //div[@id='div1']/p[3] #找到div元素下的第3个p元素 //div[@id='div1']/p[last()] #找到div元素下最后一个p元素 //div[@id='div1']/p[last()]/.. #找到上一级元素 //div[@id='div1']/* #找到div1下所有的子节点 //p[.>20] #找到元素p中值大于20的元素 //p[text()=20] #找到p元素中文本为20的元素(.和text()相同) #亲属关系匹配(轴) parent::* #表示当前节点的父节点元素 ancestor::* #表示当前节点的祖先节点元素(所有的) child::* #表示当前节点的子元素 /A/descendant::* #表示A的所有后代元素 self::* #表示当前节点的自身元素 ancestor-or-self::* #表示当前节点的及它们的后代元素 following-sibling::* #表示当前节点的后面所有兄弟节点元素 preceding-sibling::* #表示当前节点的前面所有兄弟节点元素 following::* #表示当前节点的后序所有元素 preceding::* #表示当前节点的所有元素
#练习:
//p[.=50]/preceding-sibling::p[1] #找到p元素值为50的上一个p元素
//p[.=40]/following-sibling::p[1] #找到p元素值为50的下一个兄弟p元素
//p[.=40]/parent::div #找到当前节点父元素
//p[.=40]/ancestor::div/preceding-sibling::div #找到p为40的父元素的上一个div兄弟元素
//*[@id='div1']/child::p[1] #找到id属性值为div1的下一级p的第一个元素