xpath定位

'''
定位顺序 id name class text
xpath定位
1.相对定位
在这页面当中,有没有这个元素,无关元素的第几代和位置
使用 // 开头
表达式为 // 标签名 [@属性名]='属性值'
//input[@name="phone" and @datatype="m"] and ro 多个属性组合
//input[contains(@class,"username")] contains函数() contains(@属性,值),包含
//div[text()="请输入正确的手机号"] text()函数使用
//div[contains(text(),"请输入正确的手机号")] 包含文本





2.绝对定位_谷歌浏览器选中定位元素——右键copy xpath
使用 / 开头
劣势:太依赖页面的层级关系,不建议使用


3.轴运算
ancestor : 祖先节点 包括父
parent:父节点
preceding :当前元素节点标签之前的所有节点 (html页面先后顺序)
preceding-sibling:当前元素节点标签之前的所有兄弟节点
following:当前元素节点标签之后的所有节点 (html页面先后顺序)
following-sibling:当前元素节点标签之后的所有兄弟节点

使用语法
轴名称::节点名称
//span[text()=" python练手2"]/preceding-sibling::span[@class="b-title-icon b-building"]#结合前面标签用法选择需要定位的元素

示例,百度首页右上角登录
//div[@id="u1"]//a[@name="tj_login"]
//div[@id="u1"]//following-sibling::a[text()='登录']
//div[@id="u1"]//following-sibling::a[@name='tj_login']

'''
原文地址:https://www.cnblogs.com/wfwt180801-/p/11126638.html