
04-xpath定位
发布日期:2021-05-07 13:04:35
浏览次数:19
分类:技术文章
本文共 1673 字,大约阅读时间需要 5 分钟。
目录
1. xpath简介
- xpath 是一门在 XML 文档中查找信息的语言
2. 术语简介
2.1 节点
解释:有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点
上面的节点例子中 Harry Potter J K. Rowling 2005 29.99 (文档节点) J K. Rowling (元素节点) lang="en" (属性节点)
3. xpath语法
nodename | 选取此节点的所有子节点。 |
/ | 从根节点选取。 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 |
. | 选取当前节点。 |
.. | 选取当前节点的父节点。 |
@ | 选取属性。 |
4. 轴语法介绍
ancestor | 选取当前节点的所有先辈(父、祖父等)。 |
ancestor-or-self | 选取当前节点的所有先辈(父、祖父等)以及当前节点本身。 |
attribute | 选取当前节点的所有属性。 |
child | 选取当前节点的所有子元素。 |
descendant | 选取当前节点的所有后代元素(子、孙等)。 |
descendant-or-self | 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。 |
following | 选取文档中当前节点的结束标签之后的所有节点。 |
namespace | 选取当前节点的所有命名空间节点。 |
parent | 选取当前节点的父节点。 |
preceding | 选取文档中当前节点的开始标签之前的所有节点。 |
preceding-sibling | 选取当前节点之前的所有同级节点。 |
self | 选取当前节点。 |
5. 实际应用
- 使用:F12打开开发者工具 --> Ctrl + F 打开搜索框
5.1. 属性
- id、name、class
# id属性driver.find_element_by_xpath("//*[@id='kw']")# name 属性driver.find_element_by_xpath("//*[@name='wd']")# clas 属性driver.find_element_by_xpath("//*[@class='s_ipt']")
- 其他属性
# autocomplete 属性driver.find_element_by_xpath("//*[@autocomplete='off']")
5.2 文本
- //*[text()='新闻']
5.3 层级
- //span[@class='bg s_ipt_wr quickdelete-wrap']/input
5.4 索引
- //span[@class='bg s_ipt_wr quickdelete-wrap']/span[2]
5.5 模糊匹配
starts-with :以**开头
- //*[starts-with(@class,'s_i')]
contains:包含
- //*[contains(text(),'新')]
- //*[contains(@id,'kw')]
5.6 其他函数
normalize-space:去掉前后空格
- //*[normalize-space(text())='我已阅读并同意']
5.7 轴语法使用
following-sibling :当前节点后面的兄弟节点
- //*[@id='kw']/following-sibling::a
preceding-sibling :当前节点前面的兄弟节点
- //*[@id='kw']/preceding-sibling::span
parent:当前节点的父节点
- //*[@id='kw']/parent::span
ancestor:当前节点的先辈节点(父、祖父等)
- //*[@id='kw']/ancestor::span
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月20日 18时21分04秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
仿小米商城(上)
2019-03-04
仿小米商城(下)
2019-03-04
【30】kotlin 闭包
2019-03-04
文件md5怎么会变化
2019-03-04
好玩的editText
2019-03-04
自动安装服务2
2019-03-04
edittext弹出键盘或者隐藏键盘
2019-03-04
android 用action拦截打电话界面
2019-03-04
错误: 编码GBK的不可映射字符
2019-03-04
html img点击跳转网页
2019-03-04
Python-Url编码和解码
2019-03-04
windows环境下生成ssh keys
2019-03-04
2019年一个程序员的回顾与成长计划
2019-03-04
CSDN博客自定义栏目——Google、百度、必应站内搜索框
2019-03-04
vue 双项绑定的实例 货币转换
2019-03-04
vue if else用法。
2019-03-04
vue 官方实例教程 markdown demo
2019-03-04