尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

8种定位元素方法

8种定位元素方法
📅 发布时间:2026/6/20 0:37:04

ID定位

定义:通过元素的id属性来定位

示例:

往注册账号A填写admin,鼠标定位到输入框,发现有id属性。

image-20251126214841918

定位代码如下:

driver.find_element(By.ID,"userA").send_keys("admin")

name

定义:通过元素的name属性来定位元素

示例:

往注册账号A填写admin,鼠标定位到输入框,发现有name属性。

image-20251126215421230

定位代码如下:

driver.find_element(By.NAME,"userA").send_keys("admin")

class_name

定义:通过元素的class_name属性来定位元素

示例:

往电话号码A填写18611111111,鼠标定位到输入框,发现有class属性。

image-20251126215657819

定位代码如下:

driver.find_element(By.CLASS_NAME,"telA").send_keys("18611111111")

标签名

定义:通过元素的标签名来定位元素 (重复性高,不建议使用)

示例:

往注册账号A填写admin,鼠标定位到输入框,发现标签名为input。

image-20251126225122789

定位代码如下:

driver.find_element(By.TAG_NAME,"input").send_keys("admin")

link_text 定位

定义:专门用来定位超链接元素,全部文本

示例:

在百度页面点击左上角的新闻超链接。

image-20251127085603995

定位代码如下:

driver.find_element(By.LINK_TEXT,"新闻").click()

partial_link_text

定义:专门用来定位超链接元素,部分文本

示例:

在百度页面点击左上角的hao123超链接。

image-20251127085834624

定位代码如下:

driver.find_element(By.PARTIAL_LINK_TEXT,"1").click()

xpath

路径(不建议用,比较麻烦)

1.绝对路径:

定义:从最外层元素到指定元素之间所有经过的元素层级的路径,绝对路径以/html根节点开始,使用/来分隔元素层级。

示例:

往注册账号A填写admin,鼠标定位到输入框。

image-20251127092958251

定位代码如下:

driver.find_element(By.XPATH, "/html/body/form/div/fieldset/p[1]/input").send_keys("admin")

2.相对路径:

定义:

从目标定位元素的任意层级的上级元素开始到目标元素所经过的层级的路径。以//开始,后续每个层级都使用/来分隔。

示例:

往注册账号A填写123,鼠标定位到输入框。

image-20251127092958251

定位代码如下:

driver.find_element(By.XPATH,"//p[1]/input").send_keys("123")

属性定位

定义:

利用元素的属性来进行定位

示例:

往注册账号A填写admin,鼠标定位到输入框。

image-20251127102751879

定位代码如下:

driver.find_element(By.XPATH,"//input[@placeholder='账号A']").send_keys("admin")

注意:

尽量挑选能精准定位到唯一元素的属性,一般属性选特有的或者常用的。

属性与逻辑结合

定义:

利用元素的多个属性来进行定位。单个元素不行就用多个。

示例:

往注册账号A填写admin,鼠标定位到输入框。

image-20251127102751879

定位代码如下:

driver.find_element(By.XPATH,"//input[@placeholder='账号A' and @id='userA']").send_keys("admin")

属性与层级结合

定义:

先定位到其父级元素,然后再找到该元素。

示例:

往注册账号A填写admin,鼠标定位到输入框。

image-20251127102751879

定位代码如下:

driver.find_element(By.XPATH,"//p[@id='p1']/input").send_keys("admin")

文本定位

定义:

利用元素的文本定位元素

示例:

在百度页面点击上面的更多。

image-20251127114434823

定位代码如下:

driver.find_element(By.XPATH,"//*[text()='更多']").click()

局部属性定位

定义:

利用局部属性值定位元素

示例:

在百度页面点击上面的更多。

image-20251127114849099

定位代码如下:

driver.find_element(By.XPATH,"//*[contains(@href,'www.hao123.com')]").click()

css

ID选择器

定义:

利用元素ID属性来选择

示例:

使用css定位方式中id选择器定位用户名输入框,并输入:admin

image-20251127120119473

定位代码如下:

driver.find_element(By.CSS_SELECTOR,"#userA").send_keys("admin")

属性选择器

定义:

利用元素属性来定位

示例:

使用css定位方式中属性选择器定位密码输入框,并输入:123456

image-20251127120404416

定位代码如下:

driver.find_element(By.CSS_SELECTOR,"[name='passwordA']").send_keys("123456")

类选择器

定义:

利用元素class属性来定位

示例:

使用css定位方式中类选择器定位电话号码输入框,并输入:18600000000

image-20251127120711576

定位代码如下:

driver.find_element(By.CSS_SELECTOR,".telA").send_keys("18600000000")

元素选择器(不建议用,重复性较高)

定义:

利用元素的标签名来定位

示例:

使用css定位方式中元素选择器定位注册按钮,并点击

image-20251127121246587

定位代码如下:

driver.find_element(By.CSS_SELECTOR,"button").click()

层级选择器

定义:

根据元素的上级元素来选择元素(只要是目标元素上层元素即可)

示例1:

使用css定位方式中层级选择器定位用户名输入框,并输入:admin

image-20251127121820411

定位代码如下:

driver.find_element(By.CSS_SELECTOR,"#p1>input").send_keys("admin")

示例2:

使用CSS定位方式中层级选择器(祖辈)定位密码输入框,并输入:123

image-20251127122020331

定位代码如下:

driver.find_element(By.CSS_SELECTOR,"#zc #passwordA").send_keys("123")

局部属性值

定义:

利用局部属性值定位元素

示例:

用部分属性定位到账号输入框

image-20251127122357116

定位代码如下:

driver.find_element(By.CSS_SELECTOR,"[placeholder*='号']").send_keys("admin")

属性与逻辑结合

定义:

利用多个属性定位

示例:

属性与逻辑结合方式定位密码输入框,输入123

image-20251127122633671

定位代码如下:

driver.find_element(By.CSS_SELECTOR,"[name='passwordA']#passwordA").send_keys("123")

定位一组元素

定义:

定位所有符合条件的元素

示例:

查找所有的input标签,依次填入对应的值

image-20251127123253086

定位代码如下:

inputs = driver.find_elements(By.TAG_NAME,"input")
inputs[0].send_keys("admin")
inputs[1].send_keys("123456")
inputs[2].send_keys("13800001111")
inputs[3].send_keys("123@qq.com")

总结

元素定位方式的选择:

有ID优先使用ID,无ID看name,无name属性看class属性,无class属性看其他属性,单个属性不行使用多个属性,属性无法定位用层级,最后看文本。

相关新闻

  • 完整教程:掌握3D手部关键点检测:PyTorch深度学习实战
  • 2025年中国AI智能办公鼠标十大品牌推荐:鸿容AI智能办公
  • 【转载】Qt 断言Q_ASSERT的使用

最新新闻

  • 如何构建高效的股票智能分析系统:自动化部署与配置指南
  • DeepSeek V4双模架构解析:1M上下文与OPD训练的工程化落地
  • 2026目前最好的数字展厅全彩屏厂家怎么选 - 品牌排行榜
  • 98. 从单核到集群:如何评估与规划服务的QPS承载能力
  • 2026年苏州专攻离婚房产分割的律师选择参考 - 品牌排行榜
  • DeepSeek-V4高效长上下文推理技术解析

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号