关于Xpath
1.xPath简介
XPath是一门在XML和HTML文档中查找信息的语言,可以用来在XML和HTML文档中对元素和属性进行遍历
XPath的安装
Chrome插件XPath Helper
点Chrome浏览器右上角:更多工具-----扩展程序-----谷歌商店--------勾选XPath Helper(需要翻墙)
2.语法详解
Xpath节点类型:
元素、属性、文本、命名空间、指令处理、注释及文档
Xpath:通过路径表达式从XML文档中选取节点或节点位置
方法:首先找目录元素是否有”精准元素“即唯一能标识的属性,找到,则用此属性定位;
1. 通过元素本身的唯一属性定位
方法:找到目标元素所在的”精准元素“即唯一标识属性,使用此属性定位
- 1.1 通过id属性定位
例:find_element_by_xpath("//input[@id='input']") #@后跟属性,可以是任何属性
- 1.2 通过name属性定位
例:find_element_by_xpath("//div[@name='q']")
2. 通过上一级目录的唯一属性定位
方法:目标元素没有唯一属性,则去找到与目标元素相近的上级目录中”唯一元素“作为起始位置,然后根据此相对位置逐层往子目录编写到目标位置
例:
find_element_by_xpath("//span[@id='input-container']/input") find_element_by_xpath("//div[@id='hd']/form/span/input") find_element_by_xpath("//div[@name='q']/form/span/input")
3. xpath做布尔逻辑运算
find_element_by_xpath("//div[@id='hd' or @name='q']")#查找id为hd或name为q的
4. 双条件同时过滤
find_element_by_xpath("//div[@id='hd'][@name='q'")
5.目录元素存在层级关系
例1:
find_element_by_xpath("//ul[@class='app-list']/li[contains(@class,'safe')]/div")
例2:定位上一层再定位目标元素(定位dl再定位dt)
find_element_by_xpath("//form[@id='J_login_form]/dl/dt/input[@id='J_password']")
6. 模糊定位
6.1 contains 方法(包含)
find_element_by_xpath("//a[contains(@name,'trnews')]")#获取元素为trnews的方法
6.2 start-with方法(以XX开头)
find_element_by_xpath("//a[start-with(@href,'http')]")#选取以http开头的元素
6.3 text方法
find_element_by_xpath("//a[contains(text(),'新闻')]") 查找超链接元素的文本内容
find_element_by_xpath("//*[text()='新闻']") 查找所有内容为退出二字的元素
7、xpath的一些包含逻辑的用法
//*[count(XXX)=2] //统计XXX元素个数=2的节点
//*[local-name()='xxx'] //找到tag为xxx的元素
//*[starts-with(local-name(),'x')] //找到所有tag以x开头的元素
//*[contains(local-name(),'x')] //找到所有tag包含x的元素
//*[string-length(local-name())=3] //找到所有tag长度为3的元素
//xxx | //yyy //多个路径查找
关于Xpath的更多相关文章
- xpath提取多个标签下的text
title: xpath提取多个标签下的text author: 青南 date: 2015-01-17 16:01:07 categories: [Python] tags: [xpath,Pyth ...
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...
- 在Java中使用xpath对xml解析
xpath是一门在xml文档中查找信息的语言.xpath用于在XML文档中通过元素和属性进行导航.它的返回值可能是节点,节点集合,文本,以及节点和文本的混合等.在学习本文档之前应该对XML的节点,元素 ...
- XPath 学习二: 语法
XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 下面列出了最有用的路径表达式: 表达式 描述 nodename 选 ...
- xpath 学习一: 节点
xpath 中,有七种类型的节点: 元素.属性.文本.命名空间.处理指令.注释.以及根节点 树的根成为文档节点或者根节点. 节点关系: Parent, Children, sibling(同胞), A ...
- Python爬虫利器三之Xpath语法与lxml库的用法
前面我们介绍了 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法.如果大家对 Beau ...
- 使用python+xpath 获取https://pypi.python.org/pypi/lxml/2.3/的下载链接
使用python+xpath 获取https://pypi.python.org/pypi/lxml/2.3/的下载链接: 使用requests获取html后,分析html中的标签发现所需要的链接在& ...
- 关于robotframework,app,appium的xpath定位问题及常用方法
关于类似的帖子好像很多,但是没有找到具体能帮我解决问题的办法.还是自己深究了好久才基本知道app上面的xpath定位和web上的不同点: 先放一个图: A,先说说不用xpath的场景,一般是用于存在i ...
- Selenium Xpath Tutorials - Identifying xpath for element with examples to use in selenium
Xpath in selenium is close to must required. XPath is element locator and you need to provide xpath ...
- xpath定位中starts-with、contains和text()的用法
starts-with 顾名思义,匹配一个属性开始位置的关键字 contains 匹配一个属性值中包含的字符串 text() 匹配的是显示文本信息,此处也可以用来做定位用 eg //input[sta ...
随机推荐
- linux下信号量可设值的函数操作
#include <sys/types.h>#include <sys/ipc.h>#include <sys/sem.h>#include <errno.h ...
- C语言博客作业11
一.本周教学内容&目标 第5章 函数 要求学生掌握各种类型函数的定义.调用和申明,熟悉变量的作用域.生存周期和存储类型. 二.本周作业头 这个作业属于那个课程 C语言程序设计II 这个作业要求 ...
- Laravel 中使用 swoole 项目实战开发案例一 (建立 swoole 和前端通信)
1 开发需要环境 工欲善其事,必先利其器.在正式开发之前我们检查好需要安装的拓展,不要开发中发现这些问题,打断思路影响我们的开发效率. 安装 swoole 拓展包 安装 redis 拓展包 安装 la ...
- luogu P4064 [JXOI2017]加法
题目描述 可怜有一个长度为 n 的正整数序列 A,但是她觉得 A 中的数字太小了,这让她很不开心. 于是她选择了 m 个区间 [li, ri] 和两个正整数 a, k.她打算从这 m 个区间里选出恰好 ...
- luogu P3152 正整数序列
题目描述 kkk制造了一个序列,这个序列里的数全是由正整数构成的.你别认为她的数列很神奇--其实就是1, 2, -, n而已.当然,n是给定的.kkk的同学lzn认为0是一个好数字(看上去很饱满有木有 ...
- 利用iPhone下载其他地区的App
参考链接:http://www.anfan.com/news/gonglue/76225.html 有些App由于发布的地区不同,在中国地区未发布的App.使用中国地区的Apple ID只能看到中国地 ...
- [TimLinux] CSS float和position详解
1.1. 定义 摘自w3school:float 属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它 ...
- 洛谷 题解 P1083 【借教室】
0x00 先看数据范围 $ 1≤n,m≤10^6 $,第一反应 \(O(nlogn)\) 0x01 5 pts 直接输出 '0' 即可. 不要问我怎么知道输出 '0' 可以拿 5 pts. 保持微笑. ...
- Selenium之下拉框操作
下拉框操作: 一般下拉框适用场景:在新增时有下拉框选项,在二级联动或多级联动有下拉(比如:在选择省市县时的多级联动下拉). 下拉框选择都有select的标签属性,存在两个属性select和option ...
- GitHub上传自己的项目
git下载地址:https://git-scm.com/downloads 1.下载git,直接下一步进行安装 2.安装完成后,双击git-bash.exe运行 3.cd进入你的项目路径 4.输入 g ...