selenium:元素定位之xpath、css

news2024/11/28 10:44:43

元素定位是在做UI自动化测试中最重要的一环,要牢牢掌握定位的方法,才能更有效率的进行UI自动化测试。

常见的元素定位方式:

  • id
  • name
  • tag_name
  • class_name
  • link_text
  • partial_link_text
  • xpath
  • css

其中id,name是具有唯一性的,所以定位起来比较简单,直接使用即可

在UI自动化测试中,xpath和css是依据html文档的路径进行定位,分为绝对路径和相对路径。各有优劣,根据业务情况选择即可。本节重点介绍xpath和css定位

xpath

Xpath 是一种用在 XML 文档中定位元素的语言,同样也支持 HTML 元素的解析

1. 在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点

2. 路径表达式:

路径说明
nodename选取此节点的所有子节点。
/从根节点选取
//从匹配选择的当前节点选择文档中的节点
.选取当前节点。
..选取当前节点的父节点
@选取属性

3. 谓语用来查找某个特定的节点或者包含某个指定的值的节点,被嵌在方括号中

常见的谓语:

1)数字     例如:  /html/body/div[4]/div[2]/div[2]

2)last()    例如: /html/body/div[last()]

3) position()   例如:/bookstore/book[position()<3]

4) @属性值  例如://title[@lang='eng']

5)> < =  例如:/bookstore/book[price>35.00]/title

6)直接获取文本 例如://title[@lang='eng']/text()

4. 通配符

1)*  例如:/bookstore/*

2)@*   例如://title[@*]

控制台xpath定位示例:

1.使用id属性

2.查找多个子后代

 3.查找后代中的倒数第二个

 4.查找所有a

css定位

css比xpath定位更快,也更稳定

常用的css基本语法:

 

控制台css定位示例:

1.通过id定位

 2.通过class定位

3.定位h3下的所有a元素

 

 4.定位h3下的子元素

 5. h3后紧接的a元素

6.定位前面有div的每一个h3元素

 

 

css和xpath的比较

xpath功能比较强大,可以做一些css做不到的内容

css更快更稳定,xpath是路径遍历,css用样式定位

掌握语法后,多练习,多实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/628678.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高考攀升小红书热榜!互动量破千万,品牌如何毕业季营销?

光影间&#xff0c;又是一年毕业季&#xff0c;弹指之间&#xff0c;那些青葱岁月如同白驹过隙般悄然从指缝溜走。近期&#xff0c;一年一度的高考、大学毕业又来袭&#xff0c;登上各大社媒平台热搜&#xff0c;成为热门话题&#xff1b;本期&#xff0c;随小编一起运用小红书…

【C++】智能指针 学习总结 |std::shared_ptr |std::unique_ptr | std::weak_ptr

文章目录 前言一、智能指针介绍二、普通指针和智能指针的比较案例三、std::shared_ptr四、std::unique_ptr五、std::weak_ptr六、std::shared_ptr |std::unique_ptr | std::weak_ptr三大智能指针的区别 前言 参考答案&#xff1a;chatgpt 一、智能指针介绍 智能指针是C的一种…

chatgpt赋能python:Python循环执行一个函数:简单而高效的代码实现

Python循环执行一个函数&#xff1a;简单而高效的代码实现 Python是一种高级编程语言&#xff0c;非常流行&#xff0c;不仅因为它易于学习和使用&#xff0c;而且因为它的灵活性。Python编程语言有很多特性&#xff0c;其中包括使用函数模块化编程&#xff0c;这在大型项目中…

图文验证码怎么测试及自动化测试怎么解决验证码问题?

目录 前言 首先&#xff0c;来简单认识下验证码 1、验证码的由来和作用 2、验证码的存储 3、验证码的原理 如何测试验证码&#xff1f; 1、手动测试 2、自动化测试 总结&#xff1a; 前言 在对安全性有要求的软件&#xff08;系统&#xff09;中都存在验证码&#xf…

高级查询 — 连接查询

关于northwind 示例数据库 查询数据库中的表 show tables;查询表的表属性 desc xxx(表名);连接查询 1.概述 若一个查询同时涉及两个及以上的表&#xff0c;则称之为连接查询。也可以叫做多表查询。使用join关键字进行多表连接。 2.分类&#xff08;按功能&#xff09; 内连…

二阶低通滤波器(通用滤波器)

一阶低通滤波器的详细算法介绍请参看下面文章: 一阶RC算法公式和梯形图代码 PLC信号处理系列之一阶低通(RC)滤波器算法_反馈信号低通滤波器_RXXW_Dor的博客-CSDN博客1、先看看RC滤波的优缺点 优点:采用数字滤波算法来实现动态的RC滤波,则能很好的克服模拟滤波器的缺点; 1…

学院课程功能使用说明书

引子 越来越多的讲师入驻csdn&#xff0c;也有很多学员通过学院平台进行课程学习&#xff0c;我们收到越来越多用户的反馈&#xff0c;现在通过本帖子来对课程功能做一个介绍&#xff0c;简称课程功能使用说明书1.0版&#xff0c;有任何问题均可在帖子下留言。 讲师 如何成为…

Centos7部署项目

Centos7部署项目 Centos7部署项目Centos7安装gitCentos7从github拉取代码配置git配置用于提交代码的用户名配置用户邮箱生成公钥效果如下 github添加SSH key打开你的GitHub获取ssh key公钥内容验证 拉取项目新建空白文件夹拉取项目 使用Docker Compose创建项目容器创建docker-c…

DC LAB8SDC约束四种时序路径分析

DC LAB 1.启动DC2.读入设计3. 查看所有违例的约束报告3.1 report_constraint -all_violators (alias rc)3.2 view report_constraint -all_violators -verbose -significant_digits 4 (打印详细报告) 4.查看时序报告 report_timing -significant_digits 45. 约束组合逻辑(adr_i…

1句代码,挽回1000万损失

前言&#xff1a; 在企业中&#xff0c;出于数据安全和应用高可用&#xff0c;很多软件和企业会对工程文件、数据库等做自动备份和应用容灾等。一份数据或者文件会保留到很多地方&#xff0c;虽然满足了安全性的需求&#xff0c;但是会因为保存数据区间太久造成占用大量的存储成…

chatgpt赋能python:Python快速入门神器:入门教程

Python快速入门神器&#xff1a;入门教程 Python作为一种高级的编程语言&#xff0c;在近年来逐渐成为编程语言领域里面的一匹黑马&#xff0c;在数据科学、人工智能、自动化测试和WEB开发等领域都得到了广泛的应用。Python极易入门&#xff0c;使用简单&#xff0c;代码质量较…

UnityVR--组件8--Avatar骨骼映射遮罩

什么是Avatar 模型中的人物都具有结构相似的骨架&#xff0c;如果建立一个模型骨架结构的映射&#xff0c;就能将同一个动画应用于不同的模型中&#xff0c;这就是Avatar&#xff0c;实现了一种动画重定向的功能。一般使用3DMax、Maya制作并导出为.fbx的人物模型&#xff0c;在…

【MySQL】MySQL在Linux中的环境安装与基本使用

目录 一、MySQL环境的安装 1、MySQL环境安装 2、安装MySQL出现的问题 3、登录MySQl 3.1方案一 3.2方案二 4、修改MySQL配置文件 5、可选设置&#xff1a;开机自启动MySQL&#xff08;云服务器没事一般不会关机&#xff09; 二、MySQL数据库基础 1、一些概念 2、基本…

Java中进制转换的两种方法你知道吗?

目录 十进制转其他进制 其他进制转十进制 实战&#xff1a; A进制转B进制 关于大数运算可以参考躲不掉的高精度计算&#xff0c;蓝桥杯必考_高精度算法在哪些比赛考_无忧#的博客-CSDN博客 十进制转其他进制 使用 Integer.toString(int n,int radix) 方法&#xff0c;该方法…

【LeetCode】739. 每日温度

739. 每日温度&#xff08;中等&#xff09; 思路 我们可以维持一个单调递减的栈&#xff0c;表示每天的温度&#xff1b;为了方便计算天数差&#xff0c;这里存放位置&#xff08;下标&#xff09;&#xff0c;而非温度本身。因为温度可以通过访问数组下标获取。 从左向右遍历…

书接上文,基于藏文手写数字数据开发构建yolov5n轻量级藏文手写数字检测识别系统

在上一篇文章中&#xff1a;《python基于轻量级CNN模型开发构建手写藏文数字识别系统》 开发实现了轻量级的藏文手写数字识别系统&#xff0c;这里主要是想基于前文的数据&#xff0c;整合目标检测模型来进一步挖掘藏文手写数字数据集的可玩性&#xff0c;基于yolov5n开发构建…

Android kotlin序列化之@Parcelize详解与使用

一、介绍 在Android开发过程中&#xff0c;序列化使用概率一直很高。在页面之间传递的对象&#xff0c;需要要使用序列化&#xff0c;常见的序列化&#xff1a;Parcelable、Serialization。 由于Parcelable在传递压缩比高&#xff0c;效率高&#xff0c;一直被Google官方推荐。…

可调电阻器

1、可调电阻&#xff08;Trimming Potentiometer&#xff0c;Variable Resistor&#xff09; 1.1、电气特性&#xff08;Electrical Characteristics&#xff09; ItemSpec ExampleDescriptionTotal Resistance&#xff08;TR&#xff09;&#xff0c;总和阻抗200K端子1和3之间…

独立按键检测短按、长按,松手后响应操作

背景 有项目使用独立按键检测&#xff0c;短按、长按。根据使用效果&#xff0c;发现松手后&#xff0c;也就是按键弹起后响应操作比较好操作。 记得之前&#xff0c;博主写过一篇关于按键的检测的文章&#xff0c;但是过于复杂了。可能很难懂&#xff0c;这里就简单一点&…

Flask学习-环境配置

目录 一.环境部署 二.Flask基本结构 三.完整代码 四.运行效果 一.环境部署 在安装好python&#xff0c;pip环境的基础上在命令行输入如下指令&#xff1a; pip install flask flask框架即安装完毕。 二.Flask基本结构 flask的使用通过创建实例实现。创建方法如下&…