Selenium成长之路-11简单对象定位之XPATH方法

简介: Selenium成长之路-11简单对象定位之XPATH方法

XPath是一种在HTML文档中定位元素的语言。因为 HTML 可以看做 XML 的一种实现,所以 selenium 用 户可是使用这种强大语言在 web 应用中定位元素。


XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力,XPath 很快的被开发者采用来当作小型查询语言。


XPath的使用,需要在Firefox浏览器先安装FireBug插件,建议使用Firefox浏览器(建议版本:57以前版本),因为57以后的版本,不支持FireBug插件了,也可能是新版本我个人使用的不太习惯。


安装完FireBug插件后,我们就在百度首页使用xpath进行元素定位


image.png


我们定位的是"百度一下"搜索按钮,在FirePath中可以看到,xpath的写法是://*[@id='su']  


如果我们定位的元素很长,怎么办呢?


如下图,我们要定位百度新闻页面的一段标题:


image.png

这样xpath路径直接写成:driver.find_element(By.XPATH,"//*[@id='pane-news']/div/ul/li[5]/strong/a")  是没有问题的


但是,在实际测试过程中,我们并不喜欢用这么长的路径来定位,这个时候,我们就可以使用contains()或者text()方法来定位;


contains()方法:driver.find_element(By.XPATH,"//*/a[contains(@href,'china.chinadaily')]")


text()方法:driver.find_element(By.XPATH,"//*[@class = 'lavalamp-item']/a[text()= '体育']")


这样就很简单了。


附上一段代码:


# coding = utf-8
from selenium import  webdriver
import time
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
url = 'http://news.baidu.com'
driver.get(url)
# 增加一个判断
try:
    #直接从firebug复制出来的路径
    # driver.find_element(By.XPATH,"//*[@id='pane-news']/div/ul/li[5]/strong/a")
    #使用contains()方法定位
    # driver.find_element(By.XPATH,"//*/a[contains(@href,'china.chinadaily')]")
    #使用text()方法定位
    driver.find_element(By.XPATH,"//*[@class='lavalamp-item']/a[text()='体育']")
    print("test pass")
except Exception as e:
    print("test failed",format(e))
time.sleep(5)
driver.quit()


总结一下Xpath的定位方法:


1.绝对路径定位:find_element_by_xpath("/html/body/div[2]/form/span/input")


2.相对路径定位:find_element_by_xpath("//input[@id=’input’]") #通过自身的 id 属性定位


3.布尔逻辑运算://div[@id='hd' or @name='q']


4.模糊定位(contains)://*/a[contains(@href,'china.chinadaily')]


5.再就是非常方便的,直接使用firebug,定位路径直接copy出来就可以了


xpath在实际的测试过程中运用很广泛,所以学习selenium的小伙伴,有必要掌握xpath的元素定位方法哦~~

目录
相关文章
|
1月前
|
XML 前端开发 Java
《手把手教你》系列技巧篇(十四)-java+ selenium自动化测试-元素定位大法之By xpath上卷(详细教程)
【4月更文挑战第6天】按宏哥计划,本文继续介绍WebDriver关于元素定位大法,这篇介绍定位倒数二个方法:By xpath。xpath 的定位方法, 非常强大。使用这种方法几乎可以定位到页面上的任意元素。xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们可以使用Xpath 的用法来定位页面元素。XPath 是XML 和Path的缩写,主要用于xml文档中选择文档中节点。基于XML树状文档结构,XPath语言可以用在整棵树中寻找指定的节点。
48 0
|
5月前
|
移动开发 安全 测试技术
『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?
『App自动化测试之Appium应用篇』| 继承于selenium常用的元素定位方法有哪些?如何使用?
91 0
|
4月前
|
Python
Python Appium Selenium 查杀进程的实用方法
Python Appium Selenium 查杀进程的实用方法
38 1
|
4月前
|
前端开发
selenium 解决 id定位、class定位中,属性值带空格的解决办法
selenium 解决 id定位、class定位中,属性值带空格的解决办法
76 1
|
5月前
|
前端开发 测试技术 Python
软件测试/测试开发|Python selenium CSS定位方法详解
软件测试/测试开发|Python selenium CSS定位方法详解
31 0
|
5月前
|
XML 人工智能 测试技术
软件测试/人工智能|详解selenium xpath定位
软件测试/人工智能|详解selenium xpath定位
54 2
|
6月前
|
前端开发 测试技术 Python
Python Selenium元素定位方法详解
Python Selenium元素定位方法详解
|
6月前
|
JavaScript 数据安全/隐私保护
Selenium+JQuery定位方法及应用
Selenium+JQuery定位方法及应用
46 0
|
2月前
|
JavaScript 前端开发 测试技术
Python Selenium基本用法
Python Selenium基本用法
34 2
|
3月前
|
Web App开发 数据采集 前端开发
基于Python的Selenium详解:从入门到实践
基于Python的Selenium详解:从入门到实践
119 0

热门文章

最新文章