Selenium 自动化 —— 定位页面元素

selenium+python自动化测试(三)--页面元素定位 上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进行操作,操作页面元素,首先要找到操作的元素,对元素进行定位查看页面源码要定位页面元素,需要找到页面的源码,IE浏览器中,打开页面后,在页面上点击鼠标右键,会有“查看源代码”的选项,点击后就会进入页面源码 阅读详情

更多内容请关注我的 Selenium 自动化 专栏:

  1. 入门和 Hello World 实例
  2. 使用WebDriverManager自动下载驱动
  3. Selenium IDE录制、回放、导出Java源码
  4. 浏览器窗口操作
  5. 切换浏览器窗口

使用 Selenium 做自动化,我们不仅仅是打开一个网页,这只是万里长城的第一步,最重要的是,我们需要查找页面的元素,比如找到搜索框,找到提交按钮等等,后续输入文本,点击提交按钮。

总之,查找元素,是最关键的步骤之一。
本文,我们将系统的介绍使用 Selenium 定位页面元素的常用方式。

1. 一个元素

说到定位之前,我们先介绍WebDriver 查找元素的两个通用方法。
有些元素,页面中只有一个,比如某个id的元素(原则上id不能重复)。

第一个方法是查找只有一个元素的方法,返回的是一个元素对象 WebElement:

WebElement nameEle = driver.findElement(By.id("fname"));

暂时忽略 findElement() 的参数,稍后我们会重点介绍。

2. 多个元素

返回的是 WebElement 列表。

List<WebElement> eles = driver.findElements(By.tagName("input"));

3. 通过id查找元素

介绍完两个find方法,我们接下来就看看它的参数。
最常用是通过ID定位元素。
在这里插入图片描述

WebElement nameEle = driver.findElement(By.id("su"));

4. 通过name查找元素

在表单中,我们的元素通常有name属性,我们也可以通过它定位元素.
在这里插入图片描述

WebElement nameEle = driver.findElement(By.name("fname"));

5. 通过class查找元素

某些情况下,我们要定位的元素没有 id,也没有 name,这是在做爬虫时是很常见的情况!这时我们可以通过class 定位。
在这里插入图片描述

List<WebElement> eleList = driver.findElements(By.className("w3-button"));

但是特别注意:尽量不要使用class定位元素,因为class是样式,网站的样式随时都可能会变的。

当然你会说id或name也可能会变,但是概率比class小很多!

6. 通过标签查找元素

因为我们定位的是元素,元素都是标签,那自然html tag也是很重要的定位方式。
在这里插入图片描述

List<WebElement> elementList = driver.findElements(By.tagName("input"));

到这里,我们介绍了最常用的元素定位的方法,通过这些方法,我们可以找到某些元素,或者做一些操作。

但是这些太过简单,下一篇文章,我会介绍更强大的XPath定位元素的方法,它不仅可以实现本文介绍的几种方法,还有更多、更强、更灵活的元素定位方法。

关注优快云 - 兰亭序咖啡,和我一起学习探讨 Selenium 自动化和其它技术。

深入剖析QWEN 2.5模型架构:从GQA到RoPE的技术实现 本文深入解析了QWEN 2.5模型架构,重点介绍了其创新的GQA(分组查询注意力)和RoPE(旋转位置编码)技术实现。通过详细代码解读,展示了这些技术如何提升模型的计算效率和长文本处理能力,适用于代码生成和数学推理等任务。文章还提供了实践部署建议和调优经验,帮助开发者更好地应用这一先进模型。 阅读详情

相关推荐

实战:如何通过修改VTS和HTS调整GC4653 sensor帧率(附完整计算步骤)

本文以GC4653图像传感器为例,详细解析了通过修改VTS和HTS寄存器来精确调整输出帧率的完整流程。文章深入剖析了帧率计算公式FPS = PCLK / (VTS × HTS)的核心原理,并提供了从获取寄存器参数、计算目标VTS值到系统验证的实战步骤,帮助工程师掌握独立优化Sensor性能、提升低照度画质的关键技能。

gin88的博客 338

【selenium自动化测试】如何定位页面元素,及对页面元素的操作方法

如果20秒内容元素没有找到,则超时。​ 在做自动化测试时,难免会碰到一些问题,比如你在脚本中操作某个对象时,页面还没有加载出来,你的操作语句已经被执行,从而导致脚本执行失败,针对这样的问题webdriver提供了等待操作,等待一定的时间,或在一个时间段内发现对象,则继续操作。By.CLASS_NAME:根据class属性值定位元素,需要注意,尽量不要用class定位,因为一个页面中,往往会出现多个元素的class属性值相同,所以在定位的时候,如果有多个属性值相同的元素,自动会定位第一个元素。

myh919的博客 2944

ESP32+micro-ROS机器人开发实战:轻量级ROS2嵌入式集成

ROS2是现代机器人软件栈的核心框架,其基于DDS的分布式通信与QoS保障能力为多节点协同提供基础支撑;而micro-ROS作为专为微控制器优化的ROS2兼容中间件,解决了资源受限设备(如ESP32)接入ROS2生态的关键难题。其通过分层架构将DDS通信下沉至上位机Agent,使MCU仅需运行轻量Client,大幅降低内存开销(实测<180KB)并保留标准ROS2接口语义。该方案广泛应用于教育机器人、移动底盘、传感器节点等嵌入式场景,尤其适合基于ESP-IDF开发的Wi-Fi/BLE物联网机器人系统。本文以

weixin_29025501的博客 398

Selenium查找元素

本文章讲述了selenium中查找元素的基本操作

Falicitas的博客 376

VisionPro开发实战:CogRecordDisplay控件显示与保存图片的完整流程(附C#代码示例)

本文详细解析了VisionPro开发中CogRecordDisplay控件的图像处理全流程,包括图像加载、显示优化、动态清屏及结果保存等关键操作。通过C#代码示例,展示了如何高效使用该控件进行工业视觉应用开发,特别适合自动化检测系统的开发者参考。

weixin_42523792的博客 274

Codesys电子凸轮功能块MC_CamIn的masteroffset和slaveoffset参数的使用

问题1:在Codesys使用作轴电子凸轮时,MC_CamTableSelect的参数设置为MasterAbsolute=1,SlaveAbsolute=1,此设置为绝得模式, 此时主从轴当前位置都不为零时,此时Masteroffset=0、slaveOffset=0,凸轮启时出现突变,实轴无法启动。问题分析:在觉得模式下,主轴位置和从轴为是对应凸轮表的相位的,Masteroffset=0、slaveOffset=0,启动点时在主轴位置=0,从轴位置=0的点启动,此时主轴当前位置不为零则主从轴位置发生突变,

weixin_43587371的博客 1799

Java+Selenium3方法篇8-findElement之By ClassName

本文继续介绍WebDriver关于元素定位系列方法,这篇介绍By ClassName。看到ClassName,LinkText,XPath,ID这些方法,所以说,要做好Web自动化测试,最好是需要了解一些前端的基本知识。有了前端知识,做元素定位会很轻松,同样写网络爬虫也很有帮助,话题扯远了,回到Selenium自动化测试。如何查找元素的ClassName,还是那句话,没有前端知识,就回到我之前写的

Anthony_tester的博客 1万+

Linux下驱动开发_块设备驱动开发(硬件上采用SD卡+SPI协议)

这一篇文章将采用SD卡作为存储硬件,利用SPI协议与SD卡通信,完成块设备驱动开发测试。 SD卡可以更加形象的表示块设备开发过程,明白硬件如何交互,完成数据读写。

2601

selenium中获取页面元素方法介绍以及定位页面元素

1. 通过浏览器驱动获取 单个元素页面元素的8种方式 # 通过 id获取元素 el = driver.find_element_by_id(id) # 通过 name获取元素 el = driver.find_element_by_name(name) # 通过 className获取元素 el = driver.find_element_by_class_name(className) # 通过 tagName获取元素 el = driver.find_element_by_tag_name(t

weixin_45217451的博客 5504

(ICLR 2025)【源码讲解+复现】TIMER-XL: Long-Context Transformers for Unified Time Series Forecasting

本文提出了一种统一的多变量时序预测模型Timer-XL,其核心创新包括:1)采用自回归解码器架构,将多变量时序预测统一为next-token预测问题;2)设计TimeAttention机制,通过相对位置编码和因果掩码捕获时序位置和变量间交互;3)支持长上下文预训练以提升零样本迁移能力。模型架构包含嵌入层、时间感知注意力块和预测头,采用MSE损失进行端到端训练。实验表明该方法在多种时序任务上表现优异,特别是在长跨度预测和少样本场景下。代码实现提供了完整的模型定义、数据加载和训练流程,支持自定义配置参数。

1145

Claude Code 分布式并行开发最佳实践:1中枢+10Worker跨多Git仓库全流程落地

本文介绍了一套基于Claude Code和Git Worktree的分布式并行开发方案,解决多仓库、微服务开发中的核心痛点。方案采用"1个决策中枢+10个并行Worker"架构,中枢负责任务拆解和调度,每个Worker绑定独立仓库实现完全隔离开发。关键优势包括:任务并行效率提升10倍、跨仓库依赖自动编排、版本统一管理、零第三方依赖。文章详细提供了环境准备、架构设计、中枢搭建和初始化脚本等全流程落地指南,特别适合多仓库协同的全栈开发场景。

AI天才研究院 243

Selenium元素定位之页面检测技巧

在进行web自动化测试的时候进行XPath或者CSS定位,需要检测页面元素定位是否正确,如果用脚本去检测,那么效率是极低的。

软件测试技术资源分享官 474

【OpenClaw企业级智能体实战】第16篇:电商“龙虾”掘金记:用OpenClaw实现小红书/抖音/淘宝全自动矩阵运营(2026实测版)

2026年,OpenClaw(小龙虾)已成为电商运营的核心效率工具——从公众号文案3分钟生成到TikTok爆款视频1小时复刻,从多平台内容同步到自动比价加购,彻底重构了电商运营的工作模式。本文基于真实商业案例(元岳科技、TikTok跨境卖家、淘宝MCP工具),系统拆解电商智能体的落地路径:先详解OpenClaw在电商场景的核心原理与变现模式(代部署、模板售卖、轻定制、内容套利),再提供阿里云/本地双部署方案,完整实现小红书/抖音/淘宝的自动化运营(热点抓取、内容生成、多平台分发、数据分析)。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2281

selenium+python自动化测试之页面元素定位

搜索框的父元素为span标签,span的父元素为form,form有id和class属性,可以通过这两个属性来定位,找到form元素后,form下有多个span标签,所以要使用span:nth-child(1),表示form下的第一个span标签,这种用法很容易理解,表示第几个孩子,最后是span下的input标签,span下只有一个input,所以就可以定位到搜索框。这种方式类似于link_text的定位方式,如果一个元素的文本过长,不需要使用文本的所有信息,可以使用其中的部分文本就可以定位。

kk_lzvvkpj的博客 987

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python做自动化如何定位动态元素_selenium+python自动化测试之页面元素定位

上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进行操作,操作页面元素,首先要找到操作的元素,对元素进行定位查看页面源码要定位页面元素,需要找到页面的源码,IE浏览器中,打开页面后,在页面上点击鼠标右键,会有“查看源代码”的选项,点击后就会进入页面源...

weixin_39614877的博客 2913

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【技术分享】selenium+python自动化测试之页面元素定位

搜索框的父元素为span标签,span的父元素为form,form有id和class属性,可以通过这两个属性来定位,找到form元素后,form下有多个span标签,所以要使用span:nth-child(1),表示form下的第一个span标签,这种用法很容易理解,表示第几个孩子,最后是span下的input标签,span下只有一个input,所以就可以定位到搜索框。这种方式类似于link_text的定位方式,如果一个元素的文本过长,不需要使用文本的所有信息,可以使用其中的部分文本就可以定位。

人生不怕起点低,就怕没追求 370

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

[python][selenium] Web UI自动化8种页面元素定位方式

第一:webdriver.Chrome()这句话,通过WebDriver的构造方法,拿到浏览器驱动的对象,然后通过这个对象,就可以调用一系列操作浏览器的方法。大家应该都知道网页F12的开发者工具里右键复制,虽然快捷,但在复杂的页面并不好用,不准确,有时生成的值还很长看着臃肿。元素的id属性定位,id在当前页面是唯一的,但不是所有元素都有,有些页面值是动态的。也是根据可点击的链接的文本去定位,但这是文本的模糊匹配,只要包含有关键字就可以匹配。元素的name属性定位,也是不是所有都有,有些页面值是动态的。

xt1989288的博客 590

UI自动化:Selenium常规的页面元素定位方法

中定位页面元素是自动化测试的核心操作之一。:使用相对 XPath 或 CSS 选择器,减少对页面结构的依赖。掌握这些方法后,可以覆盖 99% 的页面元素定位场景!:ID 唯一且加载快,但部分动态页面可能缺失或重复。灵活性高,支持层级、属性、文本等多种定位方式。:适用于表单元素,但 Name 可能不唯一。性能略低于 CSS 选择器,但适合复杂场景。:Class 可能重复,需确保唯一性。:改用 CSS 选择器或优化表达式。:使用其他固定属性或层级关系定位。:等待元素加载完成后再操作。中,或等待时间不足。

全栈测试 1477

Python+Selenium自动化-定位页面元素的八种方法

Python+Selenium自动化-定位页面元素的八种方法 本篇文字主要学习selenium定位页面元素的集中方法,以百度首页为例子。 0.元素定位方法主要有: id定位:find_element_by_id(' ') name定位:find_element_by_name(' ') class定位:find_element_by_class_name(...

weixin_30907523的博客 513

基于Java+Selenium的WebUI自动化测试框架(一)---页面元素定位器

对于自动化测试,尤其是UI的自动化测试。是很多做黑盒功能测试的同学,入门自动化测试一个最为直观的或者说最容易理解的途径之一。

apex_eixl的博客 948

python页面元素定位_selenium+python自动化测试之页面元素定位

selenium+python自动化测试之页面元素定位

weixin_39643865的博客 74

java自动化之弹窗元素定位_基于Selenium2+Java的UI自动化(3) - 页面元素定位

一、几种网页定位方式webdriver的页面定位很灵活,提供了8种定位方式;其中,常见的有三种:id 、cssSelector 、xpath;一个元素如果存在 id 属性,则这个 id 的值,在当前页面绝对是唯一的,测试代码根据id来查找元素,速度也是最快的,所以如果条件允许,当然用id最省事;而很多时候,元素对象并不存在id、或者存在动态的id,那么选择xpath、或者 cssSelector,...

weixin_42524750的博客 688

Web UI自动化测试框架搭建之九:Selenium定位web页面元素的原则、方法、工具

为了增加脚本的鲁棒性,减少代码维护的成本,又能缩短脚本的运行时间,页面元素定位的最佳实践为: 1:优先选用id, name定位; 2:其次是cssSelector,速度比xpath快 3:xpath定位能力强,用的相对路径来定位,避免未来页面元素的变动,而影响定位到的元素,从而增加代码维护成本。 Selenium支持很多种定位,网上参考文档也很多,这里不赘述,这里给出一个常用的易混

木子花的博客 920

自动化测试学习--selenium的页面元素定位

页面元素定位是selenium中的一个重要组件,也是自动化测试中一个不可或缺的部分。根据html内的标签以及标签属性来定位操作的位置,一共有以下几种,id、name、class、tag、xpath定位。

qq_49785440的博客 237
上一篇: Selenium 自动化 —— 切换浏览器窗口
下一篇: Selenium 自动化 —— 实战篇之自动登录163邮箱
postnull咖啡
博客等级 码龄10年 1026粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值