XPath定位
来源:互联网 发布:蜂蜜在淘宝上好卖吗 编辑:程序博客网 时间:2024/06/06 01:24
我们知道,selenium的元素定位有以下几种方法:
- id=id
- name=name
- dom=javascriptExpression
- xpath=xpathExpression
- link=textPattern
- css=cssSelectorSyntax
1. 通过id,name,link来定位
(以下是在baidu中,查询“test”,在查询结果显示后,点击上方的“新闻”连接)
上面的id,name有个问题,就是开发人员有时不会使用id 或者name;或者name有重复的;或者id/name是系统自动生成的,随机的。相对来说link的使用具有一定的实际意义。
2. 通过xpath定位
下面的操作示意 如下,准备注册baidu用户
核心代码如下图
对以上的补充说明=========================
其实通过firebug,我们能看到性别选择的时候,我们用name,id都不能处理(name是一样的,id没有)
这时只能用xpath。这里我们用到了工具Xpath Checker 帮助我们来定位。
不过,Xpath Checker不一定能给出最好的xpath。
例如,我们看到代码中“女”的按钮时://input[@name='sex' and @value='2']
直接用工具得到的:id('sex')/x:div[2]/x:input[2]
我们还是需要通过经验的积累来优化xpath的写法。即,xpath的定位表达式不只一种。一个元素可能有好几种的表达式。
对Xpath的学习=======================
什么是 XPath?
XPath 使用路径表达式在 XML 文档中进行导航,是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
XPath 包含一个标准函数库.XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。
XPath 使用路径表达式在 XML 文档中进行导航,是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。
XPath 包含一个标准函数库.XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
<bookstore>
<book>
<title lang="eng">Harry Potter</title>
<price>29.99</price>
</book>
<book>
<title lang="eng">Learning XML</title>
<price>39.95</price>
</book>
</bookstore>
选取节点
XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。
XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。
下面列出了最有用的路径表达式:
谓语(Predicates)
谓语用来查找某个特定的节点或者包含某个指定的值的节点。
谓语被嵌在方括号中。
实例
在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:
路径表达式 结果 /bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素 /bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素 /bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。 /bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素 //title[@lang] 选取所有拥有名为 lang 的属性的 title 元素 //title[@lang='eng'] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。 /bookstore/book[price>35.00] 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。 /bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。- XPath定位
- xpath定位
- xpath定位
- 【定位】-XPath定位
- xpath之数组定位
- Xpath定位练习
- xpath定位方法详解
- css xpath定位
- Appium通过xpath定位
- xpath定位方法详解
- selenium XPath 定位
- xpath基础知识定位
- XPATH元素定位
- xpath定位方式实例
- xPath技术快速定位节点
- xpath 绝对路径定位疑点分析
- CSS和xpath定位demo
- python selenium使用Xpath定位
- jpeg组包
- mysql字符集
- linux驱动基础开发1——linux 设备驱动基本概念
- VC串口
- linux的more 命令
- XPath定位
- sql server 2008 删除数据库出现"因为它正用于复制"的错误解决办法
- Use xDoclet For Hibernate
- 笔记本安装PCMCIA并口卡
- 表格样式
- 专门收录android学习过程中不错的文章链接(经常更新中...)
- java中subSequence方法和subString方法的区别
- Linux环境进程间通信-共享内存
- 世界因你不同--李开复