xpath 定位方法
浏览器可通过选中元素位置右键检查,复制 xpath ,虽然方便快捷,但有时太冗长或不适用,仍需手写优化 xpath 定位方法。
下面带你快速入坑 xpath 元素定位。
xml 文件样例
<body><div id="csdn-toolbar">
<div class="toolbar-inside">
<div class="toolbar-container">
<div class="toolbar-container-left">
<div class="toolbar-logo toolbar-subMenu-box csdn-toolbar-fl">
<a data-report-click="{"spm":"3001.4476"}" data-report-query="spm=3001.4476" href="https://www.csdn.net/">
<img title="CSDN首页" src="https://img-home.csdnimg.cn/images/20201124032511.png">
</a>
</div>
<ul class="toolbar-menus csdn-toolbar-fl">
<li class="active " title="阅读深度、前沿文章">
<a data-report-click="{"mod":"popu_336","dest":"https://blog.csdn.net/","spm":"3001.4477"}" data-report-query="spm=3001.4477" href="https://blog.csdn.net/">
博客
</a>
</li>
<li class="" title="马上开始系统学习">
...
...
</div> </div> </div> </div> </div></body>
层级定位
- / 直接子级
- // 跳级
示例:
/div/div/div/div/a ----根据子级定位第四级 div 下的 a 元素
//*a ----跳级定位 a 元素
属性定位
- @ 访问对应属性
示例
//[@class="active"] ----定位属性中有 class="active" 的元素
函数定位
- contains(属性,“内容”) 包含
- text() 文字
示例
//*[contains(@title,"CSDN")]
//*a/text() ---获取层级的text文本
//*[contains(text(),"博")] ---定位 text 文本中包含 “博” 的元素
在浏览器控制台使用 xpath 定位
F12 打开浏览器的控制台,以 $x(’ ') 使用 xpath 方法定位元素。