手写Xpath教程:定位所有的Xpath

177 阅读1分钟

一、为什么要手写xpath

    1. 元素没有固定的class、type、id等唯一属性
    1. 元素的id是动态改变的
    1. 元素在使用定位工具时抓取不到(如有些元素喜欢躲猫猫,移开鼠标则消失)
    1. 直接复制的Xpath不稳定,元素本身没有变化,但是某些操作导致页面发生变化(如页面很多个div发生改变,div[]中的序号也发生改变)

二、Xpath的提取

1. xpath的思想是通过路径以及标签属性来寻找元素

2. xpath的具体提取方式

1. 属性

//*[@class='dog']

2. 文本

//*[text()='要查找的文本']

3. contains模糊查询

//*[contains(@class,'baidu')]

4. starts-with以什么开始

//*[starts_with(text(),'baidu')]

5. and

//*[@class='dog' and @id='234']

6.上下级关系

//*[@class='dog']/../../div[3]

三、符号含义

  • .. 代表 父级节点
  • / 代表 进入子级节点
  • / 代表 根目录
  • // 代表 任意位置
  • *代表 任意元素