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
分享到:
相关推荐
本文主要介绍java selenium XPath,这里整理了XPath的资料,并附实现方法,有需要的小伙伴可以参考下
在Selenium WebDriver中使用By.Xpath快速定位页面元素,实现多属性定位一个元素。
Selenium_XPath定位详解 想下载csdn上的东西,苦于无积分,被逼无奈,才生此计,只设置了2分,跪求大佬支持一下。
主要介绍了python selenium xpath定位操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
问题现象 元素的属性中没有id、name;虽然有class,但比较大众化,且位置也不固定;...page_next = driver.find_element(By.XPATH, '//a[text()=下一页)]') contain() contains 匹配一个属性值中
测试关于大数据测试的用例,可以作为参考资料,内容详细
在之前用到的Selenium Xpath中,部分页面元素id是固定的,定位相对方便;再有,动态元素的xpath定位也不太复杂。对于EXT作为框架开发的Web应用,页面元素的 id等属性是动态的,例如用户每次登陆页面所生成页面元素的...
Selenium xpath,
RPA Selenium 定位Xpath 工具 ; Fire-IEBrowser1.4;xpath-helper
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使用结巴分词进行中文...
1. selenium以chromedriver驱动chrome浏览器打开目标站(真浏览器,比curl或requests访问更难被察觉) 2. beautifulsoup4解析结果dom,提取有用字段 3. peewee存结果到数据库 4. 同时以PIL增加一份结果到excel表格 ...
通过比较,在新的项目中使用Selenium来进行Web自动化开发,使用XPath定位器,可以使得定位器本生比较简洁,而且也得到较高执行效率。 在Web开发中,有较多的人使用CSS来优化Web页面效果。而Selenium也支持CSS定位...
主要介绍了Python selenium 父子、兄弟、相邻节点定位方式详解的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
利用selenium,手动登录获取cookie保存在本地用于登录平台(便于测试代码),访问商品页url通过Xpath选中对象拿数据,翻页,通过Xpath选中对象拿数据,翻页,通过Xpath选中对象拿数据....*** **网页源代码中是没有所需...