Python-Selenium-定位详解

news2024/12/24 22:12:21

目录

前言:

一、id定位

二、name定位

三、class_name定位

四、xpath定位

五、css_selector定位

六、tag_name定位

八、Xpath&Css定位方法速查表

九、By定位

十、elements复数定位

十一、JS的定位


前言:

Python是一种非常流行的编程语言,Selenium是一种自动化Web测试工具,而这两个工具强大的结合正可以用来实现Web自动化测试。在使用Selenium进行自动化测试时,定位Web元素是必不可少的一环。

一、id定位

find_element_by_id()

采用id属性进行定位。例如在百度页面中输入关键字 Selenium 进行搜索。百度部分关键html源码如下:

百度输入框和百度一下的按钮都有id,那么定位代码如下:

二、name定位

三、class_name定位

四、xpath定位

find_element_by_xpath()

xpath是XML路径语言,它可以用来确定xml文档中的元素位置,通过元素的路径来完成对元素的查找。HTML就是XML的一种实现方式,所以xpath是一种非常强大的定位方式。

获取xpath、css_selector路径方法

打开谷歌浏览器-->打开百度-->键盘点击F12--点击定位位置-->点击源码位置-->右件copy

绝对路径

如百度搜索框的绝对路径xpath定位:

相对路径(属性标签等)

搜索框还可以利用id和name属性去定位:

标签名input也可以定位,只要在该标签内,任意属性都可以,比如搜索框的maxlength属性:

注:如果元素的单个属性无法确定其唯一性,可以用and连接多个属性去确定

五、css_selector定位

find_element_by_cssselector()
CSS属性定位可以比较灵活地选择控件的任意属性,定位方式也会比xpath快

注:class是用.标记,id是用#标记

六、tag_name定位

find_element_by_tag_name ()

html标签,如input、a、form等
一般定位如下:find_element_by_tag_name("input"),因为一个html一个标签存在多个因此这种定位方式用的比较少

find_element_by_partial_link_text()

定位标签<a>:

八、Xpath&Css定位方法速查表

九、By定位

十、elements复数定位

说明:复数定位方式每次取到的都是具有相同类型属性的一组元素,所以返回的是一个list值

如上图需要定位到时视频,再点击视频链接

十一、JS的定位

#以下Element 返回单值,Elements复数返回列表值

源码举例

以上为常用的四种js定位方式都需要执行的就execute_script())

源码举例

 作为一位过来人也是希望大家少走一些弯路,希望能对你带来帮助。(WEB自动化测试、app自动化测试、接口自动化测试、持续集成、自动化测试开发、大厂面试真题、简历模板等等),相信能使你更好的进步!

留【自动化测试】即可【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N5F7http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=khh1u309hOPfmutO7szune5BMv7p8BHg&authKey=kRBNmDukZpv512fdc7h2hFwQvgQFubVtbuOOFlKwsRVnal%2FcYaEiQOlTEDIi5Nd5&noverify=0&group_code=574737577

 

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

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

相关文章

Jetpack Compose中的LaunchedEffect与rememberCoroutineScope

Jetpack Compose中的LaunchedEffect与rememberCoroutineScope 深入了解Compose副作用API LaunchedEffect和rememberCoroutineScope。 探索使用LaunchedEffect和rememberCoroutineScope的区别和使用场景。 什么是副作用&#xff1f; 副作用是指在可组合函数范围之外发生的任何…

2024考研408-计算机组成原理第三章-存储系统

文章目录 前言一、存储器概述1.1、层次结构1.2、存储器分类1.2.1、层次分类1.2.2、存储介质分类1.2.3、存取方式1.2.4、按照信息的可更改性&#xff08;读写、只读区别&#xff09; 1.3、存储器性能指标知识回顾 二、主存储器2.1、主存储器的基本组成&#xff08;介绍DRAM&…

Axios和Spring MVC[前端和后端的请求和响应处理]

在前后端交互中&#xff0c;Axios和Spring MVC扮演着不同的角色&#xff0c;分别负责前端和后端的请求和响应处理。它们之间的作用如下&#xff1a; Axios&#xff08;前端&#xff09;&#xff1a; 发送HTTP请求&#xff1a;前端使用Axios库发送HTTP请求到后端。可以使用Axi…

HarmonyOS 极客马拉松2023 正式启动,诚邀极客们用键盘码出无限可能!

原文&#xff1a;HarmonyOS 极客马拉松2023 正式启动&#xff0c;诚邀极客们用键盘码出无限可能&#xff01;&#xff0c;点击链接查看原文进入报名通道。 2023年6月15日&#xff0c; HarmonyOS极客马拉松2023开赛&#xff01;期待各位开发者极客朋友一起&#xff0c;探索移动应…

IT自动化运维工具优势与劣势分析-行云管家

随着自动化技术的进步&#xff0c;目前市面上出现了不少IT自动化运维工具。但很多人对于IT自动化运维工具优劣势不是很清楚&#xff0c;这里我们就来一起简单分析分析。 IT自动化运维工具优势 1、提高IT运维工作人员工作效率&#xff0c;提升整体项目效率&#xff1b; 2、提…

HQChart使用教程30-K线图如何对接第3方数据37-如何绘制圆点

HQChart使用教程30-K线图如何对接第3方数据37-如何绘制圆点 效果图步骤json格式nametypeDrawDraw.DrawTypeDraw.DrawData[] HQChart代码地址 效果图 步骤 步骤和第3方指标替换一样&#xff0c; 通过网络协议回调&#xff0c;知道需要执行的指标&#xff0c; 替换自己的数据。这…

chatgpt赋能python:Python中的整数筛选与小数筛选

Python中的整数筛选与小数筛选 Python是一种高级编程语言&#xff0c;常见于各种领域的编程工作中。在Python中&#xff0c;我们可以很方便地筛选整数和小数&#xff0c;用于数据分析、算法计算、图像处理等多个方向。本文将从Python中的整数筛选和小数筛选两个方面进行介绍和…

90%电子工程师都没学透的3W规则,这篇文章一次性告诉你

在PCB设计中&#xff0c;了解和应用3W规则是非常重要的&#xff0c;能帮助工程师在设计阶段时考虑到电路板的功率分布、热管理和可靠性&#xff0c;但很多电子工程师对3W规则只处于皮毛学习阶段&#xff0c;没有做到真正掌握&#xff0c;导致电子设计技术没长进&#xff0c;所以…

​一些常见网络安全术语​

1、黑帽 为非法目的进行黑客攻击的人&#xff0c;通常是为了经济利益。他们进入安全网络以销毁&#xff0c;赎回&#xff0c;修改或窃取数据&#xff0c;或使网络无法用于授权用户。这个名字来源于这样一个事实&#xff1a;老式的黑白西部电影中的恶棍很容易被电影观众识别&…

Mac中开发常用的软件

Mac中开发常用的软件 https://pan.baidu.com/ 开发软件 IDEA2021IntelliJ IDEA 2022 for Mac(最好用的Java开发工具)永久激活版SnailSVNRedisDesktopManagerTermius终端SourceTree&#xff08;Git&#xff09;Microsoft Remote Desktop&#xff08;远程桌面&#xff09; 数据…

flutter系列之:做一个图像滤镜

文章目录 简介我们的目标带滤镜的图片打造filter按钮打造可滑动按钮最后要解决的问题 简介 很多时候&#xff0c;我们需要一些特效功能&#xff0c;比如给图片做个滤镜什么的&#xff0c;如果是h5页面&#xff0c;那么我们可以很容易的通过css滤镜来实现这个功能。 那么如果在…

复合垂直纳米线中硅锗的选择性湿法蚀刻

引言 目前&#xff0c;对高效能和高性能微电子组件的持续需求是晶体管小型化和芯片密度增加的关键驱动因素。这些纳米级晶体管的性能取决于其架构和材料特性。由于更好的静电性能&#xff0c;全栅场效应晶体管(GAAFET)有望取代当前的FinFET架构。 垂直GAAFET很难集成到当前的…

vue 树形结构,后端返回平级数据 一个页面向另一个页面传递数据

代码 Index.vue页面 methods: {/** 查询会议列表 */getList() {// this.loading true;listMeeting(this.queryParams).then(response > {this.meetingList response.rowsthis.total response.totalthis.loading false})//后端请求树形数据listNoPage().then(response &…

Vue- mixin(混入)

mixin(混入) mixin&#xff1a;翻译过来叫混入&#xff0c;也有人叫混合&#xff0c;官方叫混入 作用&#xff1a;两个组件共享一个配置(配置必须是一样的)&#xff0c;本质就是复用配置 通过案例理解学习如何使用以及作用 1 编写案例 提出需求&#xff0c;新增一个组件&a…

css平面转换

目录 平面转换transform(2D转换) CSS3 过渡&#xff08;重点&#xff09; 平面转换-平移 平移实现居中效果 平移转换-旋转 平面多重转换 旋转-改变转换原点 平移转换-缩放 平移转换-倾斜 平面转换transform(2D转换) 作用&#xff1a;给元素添加动态效果&#xff0c;一…

阿里云ECS弹性公网IP临时升级带宽

背景 618到来&#xff0c;公司服务器近一周内会出现IO暴增&#xff0c;需要临时升级带宽以满足需求。但由于使用的是EIP&#xff0c;无法直接在实例控制台进行升配。 方案 在弹性公网IP进行扩容 阿里云登录 - 欢迎登录阿里云&#xff0c;安全稳定的云计算服务平台

redis面试题详解

缓存 缓存穿透 缓存穿透&#xff1a;查询一个不存在的数据&#xff0c;MySQL查询不到数据也不会直接写入缓存&#xff0c;就会导致每次请求都查数据库。 解决方案一&#xff1a;缓存空数据&#xff0c;查询返回的数据为空&#xff0c;仍把这个空结果进行缓存 解决方案二&am…

WSL2安装Ubuntu及一些问题

文章目录 安装wsl2设置wsl版本安装Linux发行版问题问题1问题2 迁移导出注销原系统导入 windows和linux互传文件解决raw.githubusercontent.com无法访问的问题 安装wsl2 安装条件 内部版本 19041 及以上 (win10 2004以上或者win11) 查看方法&#xff1a;按 Windows健 R -->…

mathtype7.4数学计算工具下载安装教程

很多朋友使用word写文档或者论文&#xff0c;但是又要插入很多数学计算公式的情况&#xff0c;使用word本身的公式和符号并不是很方便用&#xff0c;今天分享给大家一个实用的数学工具mathtype。 MathType软件可以选择下载Windows版本MathType 7或Mac版本MathType 7。MathType…

OpenGL超级第11章学习笔记:高级数据管理

前言 本篇在讲什么 OpenGL蓝宝书第十一章学习笔记之高级数据管理 本篇适合什么 适合初学OpenGL的小白 本篇需要什么 对C语法有简单认知 对OpenGL有简单认知 最好是有OpenGL超级宝典蓝宝书 依赖Visual Studio编辑器 本篇的特色 具有全流程的图文教学 重实践&#x…