# xpath语法https://www.w3school.com.cn/xpath/index.asp可以运用在手机端
# https://www.cnblogs.com/zixiaxianzi-ufoowen/p/11436478.html
一、有某个属性
//input[@name]
二、标签名[@属性='XXX']
//*[@name='wd']
//a[@title='清空']
//input[@value='百度一下']
//span[@class='s-menu-item current']PS:最好用双引号
//span[text(),'首页']
//span[contains(text(),'首页')]
//span[starts-with(text(),'设')]
# 其他见https://www.w3school.com.cn/xpath/xpath_functions.asp函数
三、逻辑运算符
//a[@class='nav-block c-color-gray' and @title='京东' and @target='_blank']
//span[text()='推荐' or text()='导航']
四、/绝对路径(用得少) //相对路径
//body/div有上下级关系
五.当前节点 ..父节点
//a[@title='清空']/../.. #选父级的父级
//a[@title='清空']/. #选自身
六、索引从1开始,且优先级比//高
//input[1]存在多个, (//input)[1]修改优先级后存在1个
七、通过子节点定位父节点
//父节点[子节点/@属性='XXX']
//span[input/@id="kw"] #同//input[@id="kw"]/.. 查父级
八、轴定位 通过父节点定位子节点
轴名称/元素关系::节点名称
举例子:
父节点://ul[@class="layui-nav layui-layout-left layuimini-header-menu layuimini-menu-header-pc layuimini-pc-show"]
子节点://span[contains(text(),'关务管理')]
找父节点下的后代节点
//ul[@class="layui-nav layui-layout-left layuimini-header-menu layuimini-menu-header-pc layuimini-pc-show"]/descendant::span[contains(text(),'关务管理')]
例子2:
#找//form[@id='form']的祖先节点是div[@id='wrapper']的节点
//form[@id='form']/ancestor::div[@id='wrapper']
ancestor所有先辈(父、祖父等)优先找最顶级祖先
child所有子元素
parent父节点
preceding-sibling所有同级节点
详情见https://www.w3school.com.cn/xpath/xpath_axes.asp
#PS: F12-Elements-节点右击-copy-copy xpath,可自动生成 sources-找到css文件-点击{}格式化