首页 > 其他分享 >selenium常用元素定位方式

selenium常用元素定位方式

时间:2024-06-17 15:34:17浏览次数:18  
标签:定位 标签 元素 selenium 选择器 id 节点

selenium中的定位方式

1、id:根据id来获取元素;

2、name:根据元素的name属性定位;

3、tagName:根据元素的标签名定位;

4、className:根据元素的样式class值定位;

5、linkText:根据超链接的文本值定位;

6、partialLinkText:根据超链接的部分文本值定位;

7、cssSelector:css选择器定位;

8、xpath:通过元素的路径来定位;

 

重点通过介绍xpath和css灵活定位,其他定位方式做简单介绍

 

1.根据id定位:

id:根据id来获取元素,返回单个元素,id值一般是唯一的;

注意id值若是有数字,则可能是动态变态的id值,尝试每次刷新看变化是否固定,若是不固定。不能使用id定位

 

 

2.据元素的name属性

 

3.tagName:根据元素的标签名定位

如果懂HTML知识,我们就知道HTML是通过tag来定义功能的,比如input是输入,table是表格,等等...。每个元素其实就是一个tag,但是标签往往不是惟一的,所有在实际应用中不常用。下面仅做参考

 

4.className:根据元素的样式class值定位;

 

5.linkText:根据超链接的文本值定位;

 

 

6.xpath:通过元素的路径来定位;

Xpath的语法:

6.1 绝对路径

必须用”/”起首,是从1开始的,后面紧跟根节点,好比/step/step/…

元素变更后维护成本加大 不推荐使用

举例:

6.2 相对路径

基本用法: //标签名[@属性名=值]

/ :表示根节点

// :表示任意位置

* :表示任意元素,*为通配符,可div、span等标签替换

@ :表示属性,比如class、alt等

. :表示当前节点

.. :表示父亲节点

用法

6.2.1 支持逻辑运算and/or 

//标签名[@属性名=值 and @属性名=值]

IMG_256

6.2.2 //标签名[@属性名=值 or @属性名=值]

IMG_256

6.2.3 找属性://*[@属性=‘属性值’]

IMG_256

6.2.4 找文本值://*[text()='文本值']

IMG_256

6.2.5 模糊查询属性://*[contains(@属性,'属性值')]

IMG_256

6.2.6 元素是动态的,可以使用start-with://*[starts-with(@属性,'开始的值')]

IMG_256

 

6.3 轴定位:/轴名称::节点名称[@属性=值]

6.3.1 ancestor:: 选取当前节点的所有先辈(父、祖父等)。

格式:../ancestor::标签名[顺序值],顺序值是几表示前几辈标签名

例如,一层父节点

例如,两层祖先节点

例如,三层祖先的祖先节点,以此类推

6.3.2 preceding:: 选取当前节点的开始标签之前的所有节点。

格式:../preceding::标签名[顺序值],顺序值是几表示前几位标签名,不区分是否同层级

例如,上一层节点

例如,上两层节点

IMG_256

6.3.3 preceding-sibling:: 前一位,选取当前节点之前的所有同级节点(同级)

格式:../preceding-sibling::标签名[顺序值],顺序值是几表示前几位,范围在同层级内

例如,前1位同级div节点

例如,前1位同级form节点

6.3.4 following:: 当前元素节点标签之后的所有节点

格式:../following::标签名[顺序值],顺序值是几表示后几位,不区分是否同层级

例如,div节点后4层级

IMG_256

6.3.5 following-sibling:: 后一位,选取当前节点之后的所有兄弟节点(同级)

格式:../following-sibling::标签名[顺序值],顺序值是几表示后第几位,范围在同层级内

例如,div节点后2位

IMG_256

6.3.6 parent:: 父节点

格式:/parent::标签名[顺序值],顺序值是几表示第几位父级,只能定位到当前层级的父级

例如:

IMG_256

*代表全部匹配,通常当前唯一节点的父节点只有一个

IMG_256

6.3.7 child:: 子节点

格式:/child::标签名[顺序值],顺序值是几表示第几位子级,只能定位到当前层级的子级

例如,当前层级的第2位子级

IMG_256

 

 

7. css选择器定位

css表达式:通常写在<head>标签中<style>标签里面,css 选择器不能以数字开头

 

7.1 基本选择器

7.1.1 标签选择器,标签名,可以多个;

 

 

7.1.2 分组选择器,选中一组HTML,以 , 来定义,不常用

 

 

7.1.3  id选择器,以 #值 来定义

 

 

 

7.1.4  class选择器,以 .值来定义,若有空格,亦可以"."来代替

 

 

7.1.5 属性选择器

# 选取具有特定属性的html元素,指定值   [title="ab1"]

 

 

 

# 选取具有特定属性的html元素,不指定值 [title]

 

 

 

# 可以指定标签类型  p[title],不常用

 

 

7.2 组合选择器

7.2.1 后代选择器,以空格分隔

 #ab2 p         id为ab2的元素之下的所有p标签

 

 

 

 #div p          将 <div> 标签下所有的 p 标签元素

 

 

 

 

7.2.2 子元素选择器: 以 > 分隔

#ab2 > span     选择id为 ab2 的元素之下的span 标签,要求是直接子元素才可以

#div>p         选择<div>标签中所有<p>子标签元素

 

 

7.2.3 相邻兄弟选择器,以 + 定义,选择紧挨在某元素之后的另一元素,要相同父元素

 

 

 

 

7.2.4 后续兄弟选择器,以~定义,选择指定元素之后的所有元素,要相同父标签

#   [title="qlmn"] ~ li           [title="qlmn"]下的所有 li 标签生效

#   div~p                        <div> 标签下的所有相邻兄弟 <p> 标签元素

 

 

 

7.3 伪类

# nth-child(n) 匹配属于其父元素的第 N 个子元素(不必指定标签类型)

 

 

 

# nth-last-child(n),如字面意思:倒数第几个标签

 

 

 

# first-child,第一个标签

 

 

 

# last-child,最后一个标签

 

 

标签:定位,标签,元素,selenium,选择器,id,节点
From: https://www.cnblogs.com/cm21/p/18252384

相关文章

  • Mongodb UPDATE, 使用$position指定向数组中插入新元素的位置
    学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第72篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关注威赞。谢谢。本篇文章,我们聊聊在mongodb数组更新的操作符$po......
  • NumPy元素操作
    NumPy元素操作NumPy对元素的操作一般为增删改查和切片5种。1.增np.append(arr,value,axis=n)#arr:要操作的数组#value:要增加的值#axis:操作的维度(1)一维数组importnumpyasnp#添加数据,一维数组无需指定axisarr=np.array([1,2,3,4])#添加一个数据arr1......
  • 球面双站交叉定位计算方法
    写在前面之前自己写的word丢了,为避免丢失,在网上发一下,主要是备忘,有些表达不严谨请,见谅。方法和模型图片来自引文:张静.杜剑平.蒋俊,基于球体模型的短波固定多站交叉定位选站方法[j].信息工程大学学报,2020,(1),9-1426再吐槽知网:下个论文收费3.5,表示理解;充值最小30,每次下载都要收......
  • LeetCode27. 移除元素题解
    LeetCode27.移除元素题解题目链接:https://leetcode.cn/problems/remove-element/题目描述:给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用O(1)额外空间并原地修改输入数组。元......
  • 仅凭一图,即刻定位,AI图像定位技术
    AI图像定位技术,解锁空间密码!仅凭一图,即刻定位,精准至经纬度坐标,让世界无处不晓。试试看能否猜中这张自拍照的背景所在?可别低估了A的眼力,答案说不定会让你大吃一惊呢。近期,一款名为GeoSpy的AI工具成为了公众瞩目的焦点。这款工具凭借其非凡能力,仅凭照片中的细微元素——如光线......
  • 《软件性能测试分析与调优实践之路》第二版-手稿节选-Mysql数据库性能定位与分析
    在做MySQL数据的性能定位前,需要先知道MySQL查询时数据库内部的执行过程。只有弄清SQL的执行过程,才能对执行过程中的每一步的性能做定位分析。如图6-2-1所示。图6-2-1从图中可以看到,当查询出数据以后,会将数据先返回给执行器,此时执行器先将结果写到查询缓存里面,这样在下次查询相......
  • 使用Selenium进行元素定位的全面指南
    使用Selenium进行元素定位的全面指南引言Selenium是一个广泛使用的开源工具,用于自动化Web浏览器的操作。无论你是进行自动化测试,还是需要抓取网页数据,Selenium都是一个非常有用的工具。而在Selenium中,定位网页元素是自动化操作的核心。本文将详细介绍Selenium中各种定位......
  • 代码随想录算法训练营第六十二天 | 739.每日温度、496.下一个更大元素 I、503.下一个
    739.每日温度文字讲解:代码随想录视频讲解:单调栈,你该了解的,这里都讲了!LeetCode:739.每日温度_哔哩哔哩_bilibili解题思路思路一:暴力双循环O(n^2)思路二:单调栈(用来找到右边或者左边第一个比它大的元素)元素:利用一个栈来存下标i,用T[i]来做映射顺序(递增还是递减):如果是递增是......
  • 定位问题的复盘
    排查一段SQL是在哪执行的检查了脚本,没有发现该SQL自认为代码中不可能有,不看代码,开始问 函数报错,自认为odbc不会有问题没有测试不同版本的odbc,开始问 日志为什么不生成想当然觉得不是修改代码导致的,开始问 框架无法开始运行自以为不是配置问题,连配置是什么都没看,......
  • 尘封在文件夹中的GWAS和QTL定位的古老笔记
    longlongago,小野记录了关于重测序基因定位和GWAS相关的笔记。打开古老的文件夹,发现有些东西依然不过时,零零散散,随意发布。QTL定位策略:群体类型:作图群体,自然群体选材策略:全群个体分析,选择基因型分析,混合分组分析优点:适合稀有基因研究;群体可控,目的性和结果预期性强缺点:需......