- 浏览: 173279 次
- 性别:
- 来自: 河北
文章分类
- 全部博客 (142)
- Java (15)
- 编程 (7)
- 操作系统 (4)
- 晴天夜雨 (3)
- 点点滴滴 (16)
- 数据库 (13)
- 测试 (14)
- eclipse (0)
- English study (9)
- 书虫-牛津英汉对照读物(第一级) (7)
- Web笔记 (2)
- 自动化 (2)
- SoapUi (0)
- Jmeter (5)
- Selenium 自动化测试 (21)
- TestNG (7)
- Bug (1)
- REST API (1)
- cURL (1)
- Junit (2)
- 接口测试 (1)
- OWASP (5)
- Python+Robot Framework+Selenium2Library (1)
- Python (0)
- 测试框架 (0)
- Jenkins (0)
- 测试用例 (1)
- 娱乐 (0)
- 驾照 (0)
- Pytest (1)
- git (0)
- Python笔记 (1)
最新评论
-
wuchunjiesp:
...
Project facet Java version 6.0 is not supported. -
天堂有行:
swanky_yao 写道启动:net start mysql ...
mysql编程常用 -
swanky_yao:
启动:net start mysql中止:$MySQL_HOM ...
mysql编程常用 -
天堂有行:
天堂有行 写道fixsmall 写道Mysql insert ...
mysql编程常用 -
天堂有行:
fixsmall 写道Mysql insert 还有一个 i ...
mysql编程常用
XPATH是一门在XML文档中查找信息的语言,XPATH可用来在XML文档中对元素和属性进行遍历,主流的浏览器都支持XPATH,因为HTML页面在DOM中表示为XHTML文档。
XPATH语言是基于XML文档的树结构,并提供了浏览树的能力,通过多样的标准来选择节点。
Selenium WebDriver支持使用XPATH表达式来定位元素。
XPATH和CSS选择器最重要的区别是XPATH可以向前和向后查询DOM结构的元素,而CSS选择器只能向前查询,这意味着XPATH可以通过子元素来定位父元素!
使用XPATH有如下几种方法定位元素(相比CSS选择器,方法稍微多一点):
a、通过绝对路径定位元素(不推荐!)
b、通过相对路径定位元素
c、使用索引定位元素
d、使用XPATH及属性值定位元素
e、使用XPATH及属性名称定位元素
f、部分属性值匹配(和CSS选择器类似)
g、使用任意值来匹配属性及元素
h、使用XPATH轴来定位元素
元素定位总结
武功秘籍 - XPATH的contains()方法定位含有class属性的元素
此方法在查找一些元素特征明显的元素时显得很鸡肋,但是,在某些情况下却非要用这个方法才能定位到我们需要的元素(其中的class值我们不一定要写全),这个方法使用很简单:
这个方法在网上一般的教程中很少出现,这里简单介绍一下它的使用方法,我们一开源中国首页为例:
开源中国首页右上角有一个搜索按钮,我们尝试使用XPATH的contains()方法来定位它
oschina
程序清单:
打印结果如下:
XPATH语言是基于XML文档的树结构,并提供了浏览树的能力,通过多样的标准来选择节点。
Selenium WebDriver支持使用XPATH表达式来定位元素。
XPATH和CSS选择器最重要的区别是XPATH可以向前和向后查询DOM结构的元素,而CSS选择器只能向前查询,这意味着XPATH可以通过子元素来定位父元素!
使用XPATH有如下几种方法定位元素(相比CSS选择器,方法稍微多一点):
a、通过绝对路径定位元素(不推荐!)
WebElement ele = driver.findElement(By.xpath("html/body/div/form/input"));
b、通过相对路径定位元素
WebElement ele = driver.findElement(By.xpath("//input"));
c、使用索引定位元素
WebElement ele = driver.findElement(By.xpath("(//input)[4]"));
d、使用XPATH及属性值定位元素
WebElement ele = driver.findElement(By.xpath("//input[@id='love']")); //其他方法(看字面意思应该能理解吧) WebElement ele = driver.findElement(By.xpath("//input[@type='submit'][@name='love']")); WebElement ele = driver.findElement(By.xpath("//input[@type='submit' and @name='love']")); WebElement ele = driver.findElement(By.xpath("//input[@type='submit' or @name='love']"));
e、使用XPATH及属性名称定位元素
//查找所有input标签中含有type属性的元素 WebElement ele = driver.findElement(By.xpath("//input[@type]"));
f、部分属性值匹配(和CSS选择器类似)
WebElement ele = driver.findElement(By.xpath("//input[start-with(@id,'love')]"));//匹配id以love开头的元素,id='loveyou' WebElement ele = driver.findElement(By.xpath("//input[ends-with(@id,'love')]"));//匹配id以love结尾的元素,id='youlove' WebElement ele = driver.findElement(By.xpath("//input[contains(@id,'love')]"));//匹配id中含有love的元素,id='youloveyou'
g、使用任意值来匹配属性及元素
WebElement ele = driver.findElement(By.xpath("//input[@*='love']"));//匹配所有input元素中含有属性的值为love的元素
h、使用XPATH轴来定位元素
//XPATH轴没有实际经验,所以本文不讨论它。
元素定位总结
//注:本专题只介绍java版 //By id WebElement ele = driver.findElement(By.id(<element id>)); //By Name WebElement ele = driver.findElement(By.id(<element name>)); //By className WebElement ele = driver.findElement(By.className(<element ClassName>)); //By tabName WebElement ele = driver.findElement(By.tagName(<html tagName>)); //By linkText WebElement ele = driver.findElement(By.linkText(<link text>)); //By partialLinkText WebElement ele = driver.findElement(By.partialLinkText(<link text>));//通过部分文本定位连接 //By cssSelector WebElement ele = driver.findElement(By.cssSelector(<css>)); //By XPATH WebElement ele = driver.findElement(By.xpath(<element xpath>));
武功秘籍 - XPATH的contains()方法定位含有class属性的元素
此方法在查找一些元素特征明显的元素时显得很鸡肋,但是,在某些情况下却非要用这个方法才能定位到我们需要的元素(其中的class值我们不一定要写全),这个方法使用很简单:
WebElement ele = driver.findElement(By.xpath("//某标签[contains(concat(' ', @class, ' '), ' 这里写class的值,可以写全名也可以不写全,它能找到')] "));
这个方法在网上一般的教程中很少出现,这里简单介绍一下它的使用方法,我们一开源中国首页为例:
开源中国首页右上角有一个搜索按钮,我们尝试使用XPATH的contains()方法来定位它
oschina
程序清单:
/* * 示例脚本 * 脚本功能:掌握XPATH的contains()方法定位元素 */ package com.test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.htmlunit.HtmlUnitDriver; public class test { public static void main(String args[]) throws Exception { WebDriver driver = new HtmlUnitDriver(); driver.get("http://www.oschina.net/"); WebElement btn = driver.findElement(By.xpath("//button[contains(concat(' ', @class, ' '), ' BTN ')] ")); System.out.println(btn); driver.quit(); } }
打印结果如下:
button type="submit" class="BTN"
发表评论
-
数据驱动
2016-07-26 11:10 645相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为进行 ... -
对下拉框进行操作
2014-07-22 17:40 735对下拉框进行操作时首先要定位到这个下拉框,new 一个Selc ... -
testng.xml的格式
2014-07-21 09:39 1242简单说明: 测试代码 ... -
定位页面表格和单元格
2014-04-25 13:05 945在处理表格时,我们可 ... -
JQuery选择器
2014-04-22 10:31 0juqery选择器是jquery库中非常重要的功能。jquer ... -
日志记录
2014-04-25 13:06 626日志记录可结合上一专题的报告共同生成,日志中可记录自动化测试过 ... -
报告生成
2014-04-25 13:06 622一般我们写的脚本可能覆盖了较多的测试项,而且可能持续运行了一段 ... -
CSS选择器定位元素详解
2014-04-22 09:58 1624CSS是一种用来表现HTML(标准通用标记语言的一个应用)或X ... -
元素定位
2014-04-22 09:54 607Selenium WebDriver提供一个先进的技术来定位w ... -
XPATH定位
2014-04-21 16:00 0XPATH是一门在XML文档中 ... -
截屏功能
2014-04-25 13:07 5771、使用webdriver封装的API函数截图 //截屏功能, ... -
数据驱动-property
2014-04-21 15:23 0把参数什么的都放在property文件中,然后用Resourc ... -
数据驱动- Junit直接自带关键字驱动
2014-04-21 15:22 0数据驱动- Junit直接自带关键字驱动 -
数据驱动-Excel
2014-04-22 10:21 1239我们在页面的测试中,会发现很多输入框的测试,这些输入框中我们需 ... -
设计自动化测试数据
2014-04-21 15:04 0在之前的测试过程中,测试的数据都是不变的,想换一组测试数据会相 ... -
编写自动化测试代码
2014-04-21 14:46 0在设计文档(也就是自动化测试用例)完成后,就可以开始正式编码了 ... -
设计自动化测试用例
2014-04-21 14:28 0在自动化测试的流程中,需要先设计才能进行正式编码。设计文档一般 ... -
5.11 为测试操作添加事件
2014-04-21 14:23 0如果想要在执行测试操 ... -
5.10 设置管理
2014-04-21 14:12 0在Selenium 2中,可以通过Options对象对测试进行 ... -
5.9 浏览器多窗口处理
2014-04-25 13:06 877在进行Web测试时,还会弹出一些子窗口,并且在多个窗口之间进行 ...
相关推荐
本压缩包"页面元素xpath定位工具.rar"提供了一个名为DragonTestingXpathHelperV1.0.2的工具,该工具专门用于帮助用户快速、准确地找到网页上的可点击元素和输入字段,并自动生成对应的XPath表达式。 在网页自动化...
以下是一些基本的XPath定位方法: 1. **基于标签名**:通过元素的标签名定位,如`//button`会找到所有的按钮元素。 2. **基于ID**:使用`[@id='element_id']`来定位具有特定ID的元素,例如`//input[@id='username'...
Selenium xpath,
**XPath定位的重要性** XPath是一种在XML文档中查找信息的语言,同样适用于HTML文档。在自动化测试,特别是使用Selenium进行网页自动化时,XPath是常用的元素定位方法。通过XPath,我们可以精确地找到页面上任何...
Selenium WebDriver 中使用 By.Xpath 快速定位页面元素 Selenium WebDriver 是一个自动化测试工具,可以模拟用户交互来对 Web 应用程序进行测试。其中,定位页面元素是自动化测试的关键步骤。By.Xpath 是一种快速...
在Ranorex Selocity中,XPath定位提供了强大的功能,能够处理复杂的网页结构。例如,`//div[@id='container']/p` 将选取ID为`container`的`div`下的所有`p`元素。 **RxPath**: Ranorex特有的RxPath是扩展了XPath的...
例如,在自动化测试中,测试脚本可能会利用XPath定位网页元素,确保正确地交互。其次,XPath工具是XML数据处理和分析的得力助手,特别是在需要从大型XML文件中提取特定信息时。此外,它们在XML Schema验证、XSLT转换...
用法该代码主要包含以下三种方法:getRobustXPath(元素,文档): 返回优化的健壮XPath定位符字符串,描述所需的元素。 范围类型描述元素元素所需的元素。 文档文档要分析的文档,其中包含所需的元素。...
firepath 火狐快速定位xpath的利器
4. **相对路径**:生成相对于当前节点的XPath,用于在上下文中定位节点。 5. **函数应用**:XPath内置了一些函数,如 `text()` 用于获取元素的文本内容,`count()` 计算节点个数等,生成器可能能帮助用户创建这些...
本文将重点介绍Chrome控制台中的一个实用技巧——利用`$x`命令来定位和操作XPath、JavaScript以及CSS。 XPath是一种在XML文档中查找信息的语言,它可以帮助我们精确地选取HTML或XML文档中的元素。`$x`是Chrome...
### 使用XPath精确定位节点元素 #### XPath简介与重要性 XPath是一种用于在XML文档中查找信息的语言。它被设计用来在XML文档中导航,帮助开发者精确地定位和选取节点。XPath在XSLT(Extensible Stylesheet ...
总结来说,XPath是网络爬虫领域中用于HTML和XML文档数据定位的利器,它通过简洁的路径表达式和强大的函数库,使我们能快速、准确地从海量网页数据中提取所需信息。对于任何想要从事网络爬虫开发的人来说,熟练掌握...
XPath 是一种在 XML 文档中查找信息的语言,对于 Selenium 来说,XPath 是一种常用的定位网页元素的方法。下面将详细介绍如何使用 Python Selenium 结合 XPath 进行元素定位。 1. **绝对定位**: 绝对定位是最直接...
当Selenium WebDriver使用XPath定位元素时,它会遍历页面上的所有元素,这可能导致脚本执行速度变慢。如果脚本中大量使用XPath,性能影响会更加明显。此外,如果页面结构发生变化,基于绝对路径的XPath表达式可能...
XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被广泛应用于Web抓取,特别是Python的Scrapy框架中,用于选取XML或HTML文档中的节点。本文将深入探讨如何使用XPath来获取子标签下的所有文本内容...
在Selenium中,XPath定位器用于找到页面上的特定元素,这对于编写测试脚本至关重要。XPath表达式可以根据元素的名称、属性、位置等多种条件进行精确或模糊匹配。 Fire-IEBrowser1.4是一款基于Internet Explorer的...
在Java中使用XPath定位元素,你需要导入`org.openqa.selenium.By`包,并使用`By.xpath()`方法: ```java WebElement element = driver.findElement(By.xpath("//input[@id='username']")); ``` 在Python中,...
- **寻找独立节点**:如果只需要文档中的某一部分,可以直接通过XPath定位到该节点。 #### Chrome生成法 对于复杂的HTML文档,手动编写XPath路径可能较为困难。这时可以使用Chrome浏览器的开发者工具来辅助生成...