高级定位方式
Xpath备注:
单有斜线“/”和双右斜线“//”的区别:
单右斜线”/“,在XPATH里面任何地方的单右斜线代表要查找的元素是挨着上一级节点的子节点中的一个中间不能跳级
双右斜线“//”,代表查找下级任何子节点或者任何嵌套子节点中的一个,可以跳级
*语法
//tag[@attribute=‘value’]
相对路径://*[@id=“kw”]
绝对路径:/html/body/div[2]/div[2]/div[5]/div[1]/div/form/span[1]/input
如何构建一个有效的Xpath
用“//”替换“/”
如何用Text构建有效的Xpath
用元素的text来构建xpath定位Enroll now 按钮
//div[@class=‘homepage—hero’]//a[text()=‘Enroll now’]
用Contains关键字构建有效的Xpath
当text中包含空格等字符可以用Contains关键字去查找元素
//tag[contains(attribute,‘value’)]
属性也可以使用加@符号
//div[@id=‘navbar’]//a[contains(@class,‘navbar—link’) and contains(@href,‘sign_in’)]
StartWith关键字构建有效的Xpath
//div[@id=‘navbar’]//a[starts-with(@class,‘navbar-link’)]
如何查找父节点和平级节点
Parent:xpath-to-some-element//parent::
preceding Sibling:xpath-to-some-element//preceding-sibling::
Following Sibling:xpath-to-some-element//following-sibling::
//a[@href=’/sign_in’]//parent::li//preceding-sibling::li//following-sibling::li 父节点的同级前面的节点的同级后面的节点
ling::li//following-sibling::li 父节点的同级前面的节点的同级后面的节点