关于xpath相对路径前加点与不加点的区别

news/2024/12/23 5:19:14/

最近在用selenium做web工程自动化测试的相关项目,会经常用到元素定位,由于原项目开发中并不是所有关键元素都加有id,所以xpath就成为了使用最为频繁的定位方式。

众所周知,xpath定位分为绝对定位和相对定位,如果以单斜线“/”开头则表示为从根目录下开始的绝对路径,以双斜线“//”开始的是相对路径。为了适应页面结构的改变,一般相对路径较为常用。selenium2中的webDriver提供了findElement(By)的方法,该方法中的参数By就可以是xpath的形式。我在工作中也大多使用此方法,由于fireFox提供的fireBug和firePath插件获取元素非常方便,所以经常用插件定位。但是奇怪的是每次定位双斜线的前面总是会多一个点:“.//”,但是去掉点之后似乎也没有什么影响,因此一直没有在意。但是后来的一件是让我对此改变了看法。

 

<span style="font-family:SimSun;"><a><b>blank</b><c id="z"><b>content</b></c>  
</a></span>


上面是一个简单的示例文档结构,在selenium中webElement也有一个findElement的方法,用于查找该元素下的子孙元素,假如我们已经获得了C元素,我们现在要获取C元素下的b元素:请注意以下两种代码的区别。

 

写法一:webElement b = C.findElement(By.xpath(".//b"))

写法二:webElement b = C.findElement(By.xpath("//b"))

其实两个代码的区别就在于xpath路径加不加点的问题上,事实证明,写法一取到的是包含content的b元素,而写法二取到的是包含blank的b元素。所以其实加点和不加点是有很大区别的,在查找整个页面的时候没有区别,但是在当前元素调用此方法时就有了,加点代表取当前元素为根节点向下查找元素,而不加点是以整个页面为根元素向下查找的。所以firePath这个插件还是很智能的,默认给xpath路径加上了点,以防止在当前元素下找元素时发生错误。


http://www.ppmy.cn/news/938062.html

相关文章

sp工具中最疼的是_阴阳师手游:SP鬼切技能PV分析:双形态附加协战?鬼兵部恐成最惨御灵...

在周日暗示即将到来新式神&#xff0c;周一推出新式神PV&#xff0c;周二晚上更新公告确定&#xff0c;阴阳师SP天剑韧心鬼切即将实装百鬼奕&#xff0c;同时公布的还有SP鬼切的技能预览&#xff0c;虽然没有具体说明、数值&#xff0c;但根据这1分多钟的视频&#xff0c;已经可…

CentOS8提高篇11:centos8软件安装dnf命令

DNF是新一代的rpm软件包管理器。它首先出现在 Fedora 18 这个发行版中。而目前&#xff0c;它取代了yum&#xff0c;正式成为从 Fedora 22 起 Fedora 版本的包管理器。 DNF包管理器克服了YUM包管理器的一些瓶颈&#xff0c;提升了包括用户体验&#xff0c;内存占用&#xff0c…

SAP ABAP基础通关百宝书【从入门到精通】目录

本文章为《SAP ABAP基础通关百宝书》【从入门到精通】系列的目录以及关于该教程的后续写作计划表 &#x1f4ac;【个人网站】&#xff1a;【芒果个人日志】​​​​​​ &#x1f4ac;【专栏地址】&#xff1a; 《SAP ABAP基础通关百宝书》【从入门到精通】https://blog.csdn.n…

SAP工具箱通用条件/加点率配置

一 前言 SAP的定价体系的大致设计思路 通过配置生成条件表 通过存取顺序关联条件表 通过定价方案把相关条件类型关联起来 条件类型按顺序读取条件表,找到为止 定价方案中允许通过备选计算类型增强条件的金额 备选计算类型最终确定条件的金额. 项目中对定价的增强一般…

深度学习——自编码器AutoEncoder

基本概念 概述 自编码器&#xff08;Autoencoder&#xff09;是一种无监督学习的神经网络模型&#xff0c;用于学习数据的低维表示。它由编码器&#xff08;Encoder&#xff09;和解码器&#xff08;Decoder&#xff09;两部分组成&#xff0c;通过将输入数据压缩到低维编码空…

STM32实现MLX90614非接触测温串口显示(标准库与HAL库实现)

目录 模块选择 编程环境 MLX90614基本原理 通信协议&#xff08;SMBus通信&#xff0c;类IIC通信&#xff09; 代码实现 STM32与模块之间接线表 1.标准库实现温度采集 2.HAL库实现温度采集 模块选择 STM32F103C8T6 MLX90614 非接触式红外测温传感器 编程环境 KEIL5&…

卸载steam 桌面图标消失异常

一不小心没看清卸载过程&#xff0c;点的是unistall.exe&#xff0c;然后就悲剧了&#xff0c;mmp桌面被清空了。网上也找了&#xff0c;有的系统还原恢复了&#xff0c;但是我没有还原点备份&#xff0c;所以只能看第二种&#xff0c;去左下角开始图标去选 所有程序&#xff0…

windows系统桌面图标永久固定

打开注册表 浏览路径如下&#xff1a; Hkey_CLASSES_ROOTCLSID{42aedc87-2188-41fd-b9a3-0c966feabec1}InProcServer32(32位系统) Hkey_CLASSES_ROOTWow6432NodeCLSID{42aedc87-2188-41fd-b9a3-0c966feabec1}InProcServer32(64位系统) 打开“默认”键&#xff0c;填入并保存 %S…