1、XPATH是什么
XPATH是一门在XML文档中查找信息的语言,XPATH可用来在XML文档中对元素和属性进行遍历,主流的浏览器都支持XPATH,因为HTML页面在DOM中表示为XHTML文档。
XPATH语言是基于XML文档的树结构,并提供了浏览树的能力,通过多样的标准来选择节点。
Selenium WebDriver支持使用XPATH表达式来定位元素。
XPATH和CSS选择器最重要的区别是XPATH可以向前和向后查询DOM结构的元素,而CSS选择器只能向前查询,这意味着XPATH可以通过子元素来定位父元素!
2、XPATH使用方法
使用XPATH有如下几种方法定位元素(相比CSS选择器,方法稍微多一点):
a、通过绝对路径定位元素(不推荐!)
1
|
WebElement ele = driver.findElement(By.xpath("html/body/div/form/input"));
|
b、通过相对路径定位元素
1
|
WebElement ele = driver.findElement(By.xpath("//input"));
|
c、使用索引定位元素
1
|
WebElement ele = driver.findElement(By.xpath("//input[4]"));
|
d、使用XPATH及属性值定位元素
1
2
3
4
5
|
WebElement ele = driver.findElement(By.xpath("//input[@id='fuck']"));
//其他方法(看字面意思应该能理解吧)
WebElement ele = driver.findElement(By.xpath("//input[@type='submit'][@name='fuck']"));
WebElement ele = driver.findElement(By.xpath("//input[@type='submit' and @name='fuck']"));
WebElement ele = driver.findElement(By.xpath("//input[@type='submit' or @name='fuck']"));
|
e、使用XPATH及属性名称定位元素
1
2
|
//查找所有input标签中含有type属性的元素
WebElement ele = driver.findElement(By.xpath("//input[@type]"));
|
f、部分属性值匹配(和CSS选择器类似)
1
2
3
|
WebElement ele = driver.findElement(By.xpath("//input[start-with(@id,'fuck')]"));//匹配id以fuck开头的元素,id='fuckyou'
WebElement ele = driver.findElement(By.xpath("//input[ends-with(@id,'fuck')]"));//匹配id以fuck结尾的元素,id='youfuck'
WebElement ele = driver.findElement(By.xpath("//input[contains(@id,'fuck')]"));//匹配id中含有fuck的元素,id='youfuckyou'
|
g、使用任意值来匹配属性及元素
1
|
WebElement ele = driver.findElement(By.xpath("//input[@*='fuck']"));//匹配所有input元素中含有属性的值为fuck的元素
|
h、使用XPATH轴来定位元素
1
|
//XPATH轴没有实际经验,所以本文不讨论它。
|
元素定位总结
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//注:本专题只介绍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>));
|
如果各位遇到任何问题的话,欢迎在下方留言,我会及时和大家交流讨论~~~
===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!
===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。
===== DiggerPlus 官方读者群 =====
转载:http://www.diggerplus.org/archives/901
分享到:
相关推荐
本文将深入探讨Selenium结合XPath的定位策略,帮助你更有效地进行网页自动化测试。 首先,XPath 是一种在XML文档中查找信息的语言,其语法和功能非常丰富。在Selenium中,XPath可以用来定位页面上的元素,如按钮、...
Selenium WebDriver 中使用 By.Xpath 快速定位页面元素 Selenium WebDriver 是一个自动化测试工具,可以模拟用户交互来对 Web 应用程序进行测试。其中,定位页面元素是自动化测试的关键步骤。By.Xpath 是一种快速...
在Java Selenium中,XPath是一种强大的定位策略,允许测试人员几乎可以找到页面上的任何元素。 然而,XPath定位存在一些缺点。最显著的是效率问题。当Selenium WebDriver使用XPath定位元素时,它会遍历页面上的所有...
### Selenium自动化测试之XPath进阶知识点详解 #### 一、XPath概述 XPath 是一种用于在 XML 文档中查找信息的语言,它可以快速定位到 XML 文档中的任何部分。在 Web 自动化测试领域,XPath 被广泛应用于元素的定位...
问题现象 元素的属性中没有id、name;虽然有class,但比较大众化,且位置也不固定;...page_next = driver.find_element(By.XPATH, '//a[text()=下一页)]') contain() contains 匹配一个属性值中
XPath 是一种在 XML 文档中查找信息的语言,对于 Selenium 来说,XPath 是一种常用的定位网页元素的方法。下面将详细介绍如何使用 Python Selenium 结合 XPath 进行元素定位。 1. **绝对定位**: 绝对定位是最直接...
Selenium xpath,
本篇文章将详细探讨RPA Selenium定位Xpath工具的使用,以及相关的Fire-IEBrowser1.4和xpath-helper。 首先,RPA(Robotic Process Automation)是一种技术,它允许用户通过模拟人类在应用界面的操作来自动化业务...
selenium+firefox在定位时遇到selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: ...这种定位错误一般很少出现,因为其中的xpath路径一般是通过copy xpath而不是自
selenium xpath webdriver_element locator webdriver_element_locator-1.rev312-fx.xpi work with firefox version 19-37
爬虫学习笔记(主要涉及scrapy,request,xpath,selenium等).md
模拟浏览器Selenium用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。模拟点击PhantomJS无界面浏览器pandasjieba使用结巴分词进行中文...
由于IE9及更早版本不支持原生XPath,Selenium通过引入JavaScript-XPath库来解决这一问题。在Java环境下,可以通过以下代码切换到使用JavaScript-XPath库: ```java selenium = new DefaultSelenium(location, port,...
1. selenium以chromedriver驱动chrome浏览器打开目标站(真浏览器,比curl或requests访问更难被察觉) 2. beautifulsoup4解析结果dom,提取有用字段 3. peewee存结果到数据库 4. 同时以PIL增加一份结果到excel表格 ...
### Python Selenium 父子、兄弟、相邻节点定位方式详解 #### 1. 由父节点定位子节点 在Web自动化测试中,Selenium经常被用来进行页面元素的定位操作。其中,根据父子节点关系来定位元素是非常常见的一种场景。 *...
利用selenium,手动登录获取cookie保存在本地用于登录平台(便于测试代码),访问商品页url通过Xpath选中对象拿数据,翻页,通过Xpath选中对象拿数据,翻页,通过Xpath选中对象拿数据....*** **网页源代码中是没有所需...
`Selenium XPath定位详解.pdf`涵盖了Selenium中XPath选择器的使用,XPath是XML和HTML文档中查找元素的强大工具,对于精确地定位网页元素进行自动化测试至关重要。 综上所述,这个自动化测试库提供了Robot Framework...