selenium:元素定位之xpath、css

news/2025/2/13 19:55:05/

元素定位是在做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.ppmy.cn/news/299615.html

相关文章

Hive执行计划之什么是hiveSQL向量化模式及优化详解

目录 文章目录 1.什么是hive向量化模式2.Hive向量化模式支持的使用场景2.1 hive向量化模式使用前置条件2.2 向量模式支持的数据类型2.3 向量化模式支持的函数 3.如何查看hiveSQL向量化运行信息3.1 explain vectorization only只查询向量化描述信息内容3.2 explain vectorizati…

家用智能投影仪怎么选?618买哪款最合适?当贝投影F3推荐么?

随着科技的迅速发展&#xff0c;投影仪慢慢朝着智能化的方向不断发展&#xff0c;成为了愈来愈多人替代电视的首要选择&#xff0c;以前的投影只能够用来办公开会&#xff0c; 而至今搭载智能系统的智能投影内置资源不仅可以在线观影&#xff0c;还可以连接多种游戏设备在线畅玩…

听见丨美国大型连锁创客空间TechShop破产 首汽约车获7亿元B+轮融资 百度和蔚来汽车等领投

美国大型连锁创客空间TechShop破产&#xff0c;关闭美国十家门店 本周&#xff0c;美国连锁创客空间TechShop 突然宣布破产&#xff0c;关闭了美国的10 个门店&#xff0c;包括刚开业两周、内部设施几乎全新的纽约布鲁克林店。决定宣布的数天前&#xff0c;TechShop 的官方Twit…

移动端h5项目初始化

项目搭建 1、使用脚手架项目搭建 vue create hm-project 2、下载其他依赖 vant&#xff1a;Vant 3 - Mobile UI Components built on Vue less&#xff1a;Less 中文网 axios&#xff1a;axios中文网|axios API 中文文档 | axios //vant 移动端 Vue 组件库 npm i vant /…

【Protobuf】Protobuf快速使用 Java版、Python版

【Protobuf】Protobuf快速使用 Java版、Python版 Protobuf介绍 快速使用(Java版) 创建 .proto文件&#xff0c;定义数据结构 安装Protobuf编译器(二选一) 使用IDEA编译(二选一) 使用编译后的文件 快速使用(Python版) 创建 .proto文件&#xff0c;定义数据结构 安装Prot…

始终因消费者而进步——极米无屏电视的成功之道

文/曾响铃 又是一年618&#xff0c;这个由京东创立的消费狂欢日已经成了智能硬件厂商、渠道商们一年两次的丰收节日之一。另一次&#xff0c;就是天猫淘宝创造的双11。 而不论是618还是双11&#xff0c;作为最近几年科技圈的明星智能产品&#xff0c;智能投影所受的关注、所创…

上半年蝉联中国投影市场第一,极米给国产品牌哪些启示?

如果稍加留意&#xff0c;在现代化装修风格的酒店里&#xff0c;在年轻人为自己设计的“小窝”里&#xff0c;智能投影出现的频率越来越高。 IDC最新报告显示&#xff0c;2021年上半年&#xff0c;中国投影机市场总出货量227万台&#xff0c;同比增长32.4%。预计至2025年的五年…

Linux 信号

文章目录 1. 信号1.1 前言1.2 信号的位置1.3 接口1.3.1 sigset_t1.3.2 信号集操作接口1.3.3 signal1.3.4 sigprocmask1.3.5 sigpending 2. 信号的处理2.1 内核态和用户态2.2 信号的监测和处理 1. 信号 1.1 前言 在 Linux 中&#xff0c;信号是一种用于进程之间的通信机制&…