IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Selenium自动化测试-3.元素定位(2) -> 正文阅读

[Python知识库]Selenium自动化测试-3.元素定位(2)

在上一篇:Selenium自动化测试-元素定位(1),我们分析了id,name, class, tag, link_text及partial_link_text 共6种定位方法,其中id、name最常用。

?有时候我们发现网站并没有id、name等属性。那么,我们可以用更高级的定位方法——xpath来定位元素。

什么是xpath?图片

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

xpath扩展了上面id和name等定位方式,提供了很多种可能性。

语法格式:find_element_by_xpath()

以下,我们介绍两种xpath定位方式:前端工具定位和手写xpath。

前端工具定位元素图片

?1.打开Chrome浏览器开发者模式,然后定位到百度搜索框。

图片

2.定位到元素后,鼠标移至标签元素,右键后选择copy,最后选择Copy XPath,就复制了xpath路径了。

图片

3.复制xpath后,就可以用xpath定位百度搜索框了。

图片

运行之后,百度搜索框输入了小胖虎,用xpath定位成功。

手写xpath定位元素图片

?以下介绍怎么手写xpath。

xpath 使用路径表达式在 XML 文档中选取节点。节点是沿着路径或者 step 来选取的,下面列出了最有用的路径表达式:

图片

xpath绝对路径:

以百度搜索框为例,绝对路径如下所示。

图片

那么我们可以这样写:

find_element_by_xpath("/html/body/div/div/div/div/div/from/span/input")

图片

运行之后,打开百度页面,输入小胖虎,xpath绝对路径定位成功。

但是绝对路径定位,只要页面元素稍微改动,就会定位失败,维护成本比较高,所以并不建议使用xpath绝对定位的方式。

xpath相对定位:

1.利用属性定位

通过元素的属性定位,比如id、name、class等属性,属性匹配定位语法:“//标签名[@属性='属性值'] ",

//表示当前节点, @表示选取属性 ,标签名比如div, span等,也可用 * 表示任意标签。

以百度搜索框为例:

<input?type="text"?class="s_ipt"?name="wd"?id="kw"?maxlength="100"?autocomplete="off">

我们用id属性,xpath定位代码如下:

图片

其他属性如name、class等,也是相同的定位写法。

2.利用层级加属性定位

比如找不到小胖虎,可以通过先找到小胖虎的爸爸,然后找到小胖虎。

以百度搜索框为例, 我们可以找到搜索框input标签的上级标签span, 上上级标签form:

图片

我们通过上级标签span,及上上级标签form分别进行定位:

图片

运行之后,发现通过上级标签span并不能定位到搜索框,而通过上上级标签form可以定位到,所以实战要灵活运用,直到定位到元素。

3.利用逻辑运算符定位

逻辑运算符比如and ,or ,not ,多种条件组合定位。

用百度搜索框为例,使用id加name两种属性组合定位。

图片

运行之后,打开百度,输入小胖虎,id加name属性组合定位成功。

总结:节点元素无id或name属性时,可以用xpath。觉得麻烦的话可以用开发者工具直接copy,copy的xpath定位不到的,再手写xpath。xpath是定位神器,多练习, 可以解决绝大部分定位问题。

下一篇我们将介绍第8种定位——css定位,语法简洁、定位速度更快,记得持续关注哦!

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

?

⑤ Python学习路线图(告别不入流的学习)

在我的QQ技术交流群里(技术交流和资源共享,广告进来腿给你打断)

可以自助拿走,群号953306497(备注“csdn111”)群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦。

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:23:48  更:2021-07-24 11:24:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 14:51:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计