【Selenium】HTML/XML/XPATH基础
Html超文本标记语言
网页上单击右键→查看源文件/查看源代码
Html基本结构
<html> 为文档根元素,所有元素都在内部进行
<head> 文档的头信息,不会在浏览器上显示
……
</head>
<body> 文档正文,显示浏览器上
……
</body>
</html>
head中使用标签
<tittle></tittle>文档题目显示在标题栏中
<script></script>
<style></style>引用CSS样式
XML可扩展标记语言
http://www.yesky.com/imagesnew/software/html/index.html
XPath xml文档中查找信息的一种语言
http:www.w3school.com.cn/xpath/index.asp
/以斜线开始路径实例1
<AAA>
<BBB/>
<CCC/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA> XPath表达式:/AAA 选择根元素AAA
/以斜线开始路径实例2
<AAA>
<BBB/>
<CCC/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA> XPath表达式:/AAA/CCC 选择AAA的子元素CCC
/以斜线开始路径实例3
<AAA>
<BBB/>
<CCC/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA> XPath表达式:/AAA/DDD/BBB 选择AAA的子元素DDD的子元素BBB 绝对路径
//以双斜线开始路径实例1
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
<DDD>
<BBB/>
<BBB/>
</DDD>
<CCC/>
</AAA> XPath表达式://BBB 选择所有BBB元素
//以双斜线开始路径实例2
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
<DDD>
<BBB/>
<BBB/>
</DDD>
<CCC/>
</AAA> XPath表达式://DDD/BBB 选择所有父元素是DDD的BBB元素 相对路径
*以星号开始路径实例1
<AAA>
<CCC/>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<EEE/>
</DDD>
<CCC/>
</AAA> XPath表达式:/AAA/CCC/DDD/* 选择所有路径依附于/AAA/CCC/DDD/的元素
*以星号开始路径实例2
<AAA>
<XXX/>
<DDD>
<BBB/>
<BBB/>
<EEE/>
</DDD>
<XXX/>
<CCC/>
<BBB>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
<CCC/>
</AAA> XPath表达式:/*/*/*/BBB 选择所有有3个祖先元素的BBB元素
*以星号开始路径实例3
<AAA>
<CCC/>
</DDD>
<CCC/>
</AAA> XPath表达式://* 选择所有元素
[]使用方括号限定元素实例1
<AAA>
<BBB/>
<BBB/>
<BBB/>
</AAA> XPath表达式:/AAA/BBB[1] 选择AAA的第一个BBB子元素
[]使用方括号限定元素实例2 索引号
<AAA>
<BBB/>
<BBB/>
<BBB/>
</AAA> XPath表达式:/AAA/BBB[last()] 选择AAA的最后一个BBB子元素
[position<3]最前面两个
[price>35.00]
@通过@指定属性实例1
<AAA>
<BBB id=“b1”/>
<BBB id=“b2”/>
<BBB name=“bbb”/>
<BBB/>
</AAA> XPath表达式://@id 选择所有的id属性(注意,选取的是元素的属性,而不是元素)
@通过@指定属性实例2
<AAA>
<BBB id=“b1”/>
<BBB id=“b2”/>
<BBB name=“bbb”/>
<BBB/>
</AAA> XPath表达式://BBB[@id] 选择所有id属性的BBB元素(//BBB[@name] 选择所有name属性的BBB元素)
@通过@指定属性实例3
<AAA>
<BBB id=“b1”/>
<BBB id=“b2”/>
<BBB name=“bbb”/>
<BBB/>
</AAA> XPath表达式://BBB[@*] 选择有任意属性的BBB元素
@通过@指定属性实例4
<AAA>
<BBB id=“b1”/>
<BBB id=“b2”/>
<BBB name=“bbb”/>
<BBB/>
</AAA> XPath表达式://BBB[not(@*)] 选则没有属性的BBB元素
使用属性值作为选择准则1
<AAA>
<BBB id=“b1”/>
<BBB id=“b2”/>
<BBB name=“bbb”/>
<BBB/>
</AAA> XPath表达式://BBB[@id='b1'] 选则含有属性id=‘b1’的BBB元素
使用模糊属性定位元素
//img[Starts-with(@alt,'dic1') 查找图片alt属性开始位置包含“div1”关键字的页面元素
//img[contains(@alt,'g1')] 查找图片alt属性包含“g1”关键字的页面元素
|使用分隔符“|”合并多个路径实例1
<AAA>
<BBB/>
<CCC/>
<DDD>
<CCC/>
</DDD>
<EEE/>
</AAA> XPath表达式:/AAA/EEE|//DDD/CCC|AAA|//BBB 合并没有限制
使用页面元素文本的文本来定位
//a[text()='百度搜索']:文字匹配
//a[contains(text(),'百度')],包含文字
//aa[contains(text(),'百度')]/preceding::div
XPath轴(Axis)
parent:上层父节点 //img[@alt='div2-img2']/parent::div 查找到alt属性值为div2-img2的图片,并基于图片位置找到他上一级的div页面元素
clild :当前节点的下层子节点 //img[@id='div1']child::img 查找到id属性值为div1的div页面元素,并基于div的位置找到他下层节点中img页面元素
child::text():当前节点的所有文本子节点
child::node():当前节点的所有子节点
child::*/child::price:当前节点的所有 price 孙节点
ancestor:当前节点所有上层节点 //img[@alt='div2-img2']/ancestor::div 查找到alt属性值为div2-img2的图片,并基于图片位置找到他上级的div页面元素
ancestor-or-self:当前节点的所有先辈(父、祖父等)以及当前节点本身
descendant:当前节点所有下层节点 //img[@name='div2']/descendant::img 查找到name属性值为div页面元素,并基于div的位置找到他下级所有节点中的img页面元素
descendant-or-self:当前节点的所有后代元素(子、孙等)以及当前节点本身。
following:当前节点之后显示的所有节点 //div[@id='div1']/following::img 查找到id属性值为div1的div页面元素,并基于div位置找到他后面节点的img页面元素
following-sibling:当前节点的之后所有平级节点//a[@href='www.com']/following-sibling::input查找到链接的页面元素,并基于链接位置找到他后面节点中的input页面元素
preceding:当前节点前面的所有节点 //img[@alt='div2-img2']/preceding::div 查找到alt属性值为div2-img2的图片,并基于图片位置找到他前面节点的div页面元素
preceding-sibling:当前节点前面的所有平级节点//img[@alt='div2-img2']/preceding-sibling::a[1]查找属性为div2-img2的图片,并基于图片位置找到他前面平级节点中的页面元素
attribute:当前节点的所有属性。
namespace:当前节点的所有命名空间节点。
self:当前节点。
运算符
| | | 计算两个节点集 | //book | //cd | 返回所有拥有 book 和 cd 元素的节点集 |
| + | 加法 | 6 + 4 | 10 |
| - | 减法 | 6 - 4 | 2 |
| * | 乘法 | 6 * 4 | 24 |
| div | 除法 | 8 div 4 | 2 |
| = | 等于 | price=9.80 |
如果 price 是 9.80,则返回 true。 如果 price 是 9.90,则返回 false。 |
| != | 不等于 | price!=9.80 |
如果 price 是 9.90,则返回 true。 如果 price 是 9.80,则返回 false。 |
| < | 小于 | price<9.80 |
如果 price 是 9.00,则返回 true。 如果 price 是 9.90,则返回 false。 |
| <= | 小于或等于 | price<=9.80 |
如果 price 是 9.00,则返回 true。 如果 price 是 9.90,则返回 false。 |
| > | 大于 | price>9.80 |
如果 price 是 9.90,则返回 true。 如果 price 是 9.80,则返回 false。 |
| >= | 大于或等于 | price>=9.80 |
如果 price 是 9.90,则返回 true。 如果 price 是 9.70,则返回 false。 |
| or | 或 | price=9.80 or price=9.70 |
如果 price 是 9.80,则返回 true。 如果 price 是 9.50,则返回 false。 |
| and | 与 | price>9.00 and price<9.90 |
如果 price 是 9.80,则返回 true。 如果 price 是 8.50,则返回 false。 |
| mod | 计算除法的余数 | 5 mod 2 | 1 |
【Selenium】HTML/XML/XPATH基础的更多相关文章
- HTML/XML/XPATH基础
Html超文本标记语言 网页上单击右键→查看源文件/查看源代码 Html基本结构 <html> 为文档根元素,所有元素都在内部进行 <head> ...
- 『心善渊』Selenium3.0基础 — 6、Selenium中使用XPath定位元素
目录 1.Selenium中使用XPath查找元素 (1)XPath通过id,name,class属性定位 (2)XPath通过标签中的其他属性定位 (3)XPath层级定位 (4)XPath索引定位 ...
- JavaEE XML XPath
JavaEE XML XPath @author ixenos XPath技术 1 引入 问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!!需要遍历DOM树的众多节点 ...
- 面试准备——(三)Selenium(1)基础问题及自动化测试
转载:https://www.cnblogs.com/lesleysbw/p/6413880.html 面试准备——(三)Selenium(1)基础问题及自动化测试 滴滴面试: 1. 自己负责哪部 ...
- xpath基础
XML:一种可扩展标记语言,HTML就是一种XML XPATH:也是一个W3C标准,在所有XML中均可使用 XPATH的路径规则 /表示跟节点 /html 表示html这个元素 /html/body ...
- WP8 中使用HTML Agility Pack与友盟分享SDK遇到的 System.Xml.XPath加载问题
今晚在尝试使用友盟最新的社交分享SDK时,按照官方Demo,并未做多少多少改动,就是去除了对微信.脸书和推特的分享.然后运行之后就一直报错 : {System.IO.FileLoadException ...
- Python selenium PO By.XPATH定位元素报错
Python selenium PO By.XPATH定位元素报错 如下代码经常报错: # 首页的“新建投放计划”按钮 new_ads_plan = (By.XPATH, "//*[tex ...
- XML的基础之一(概念和语法)
XML的基础(概念和语法) xml html 概念 异同 XML全称为extensible markup language,即可扩展标记语言,简单理解为可预定义标签的编程语言.它与HTML(超文本标 ...
- XML & XPath & XQuery
XML & XPath & XQuery full XPath demo https://www.w3.org/TR/xpath-full-text-30/ https://www.w ...
随机推荐
- centos7.4下搭建JDK+Tomcat+Nginx+Mysql+redis+Mongodb+maven+Git+Jenkins
先干两件大事!先干两件大事!先干两件大事! 1.关闭selinux [root@mycentos ~]# vi /etc/selinux/config SELINUX=disabled 2.关闭防火墙 ...
- 大数据学习——hadoop2.x集群搭建
1.准备Linux环境 1.0先将虚拟机的网络模式选为NAT 1.1修改主机名 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=itcast ### ...
- c# 类如何生成dll文件及引用
1.打开“工具”菜单下的“外部工具”子菜单: 2.点击“添加按钮,增加一个菜单,菜单内容填写如下: 注意参数那里为:/k "C:\vs2010\VC\vcvarsall.bat" ...
- 在oracle下我们如何正确的执行数据库恢复
标签:oracle 数据库 恢复 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://jiujian.blog.51cto.com/4 ...
- python学习笔记--python简介
一.什么是python? python是一种面向对象.解释型的高级程序语言.python具有语法简洁.易于学习.功能强大,可扩展性强,跨平台等诸多特点.1989年开始开发,于1991年发布第一个公开发 ...
- HDU1686 计算模式串匹配的次数
题目大意: 输入一个T,表示有T组测试数据: 每组测试数据包括一个字符串W,T,T长度大于W小于1000000,w长度小于10000,计算W匹配到T中成功的次数: 这题很明显要用KMP算法,不然很容易 ...
- django学习之- Models笔记
1:创建数据库表 #单表# app01_user 生成的表明为 tb1class User(models.Model): name = models.CharField(max_length=32,d ...
- java实验(三)——课堂小测
这次的课堂小测是用以前生成的那些四则运算的代码,然后将这些题目写到一个文件中,再通过这个文件读取题目的信息,每读入一个答案的时候,遇到星号的时候,等待用户输入然后判断输入的答案是否正确,然后输出小一道 ...
- 系统性能不够原因可能是cpu不够,内存不够等等
1.Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息. 通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 2. ...
- CentOS系统中常用查看系统信息和日志命令小结
转载:http://www.3lian.com/edu/2015/04-09/204628.html 进程 # ps -ef # 查看所有进程 # top # 实时显示进程状态(另一篇文章里面有详细的 ...