当前位置: 首页 > news >正文

Selenium 八大定位方法

在进行 Web 自动化测试时,最核心的一件事就是 定位页面元素。元素定位写得好,脚本稳定不易坏;写不好,自动化就会频繁失败。

Selenium 提供了 八种定位方式。


🌟 1. ID 定位(最优先推荐)

ID 在页面中通常是唯一的,是最稳定、最快速的定位方式。

element = driver.find_element(By.ID, "username")

适用场景: 元素的 ID 明确且稳定
优点: 唯一、快速、维护成本低
缺点: 部分页面无 ID 或 ID 会动态变


🌟 2. Name 定位

使用元素的 name 属性定位,适合表单类元素。

element = driver.find_element(By.NAME, "password")

优点: 易读,常用于表单
缺点: name 不一定唯一


🌟 3. Class Name 定位

通过 class 属性定位。

element = driver.find_element(By.CLASS_NAME, "login-btn")

注意:class 名字不能包含空格!
遇到多个 class 需用 Xpath / CSS 处理。


🌟 4. Tag Name 定位

使用 HTML 标签名,例如:input, button, div

elements = driver.find_elements(By.TAG_NAME, "input")

适用场景: 想批量获取元素(如所有输入框)
不适合单个元素精确定位


🌟 5. Link Text 定位(超常用)

使用超链接 <a> 的文本完整匹配。

driver.find_element(By.LINK_TEXT, "点击这里注册").click()

适用场景: 页面上明确可见的链接文字
缺点: 文本稍微变一下就定位不到


🌟 6. Partial Link Text(模糊匹配)

超链接文本支持部分匹配。

driver.find_element(By.PARTIAL_LINK_TEXT, "注册").click()

适合长文本或文本动态变化的链接


🌟 7. CSS Selector 定位(强烈推荐)

driver.find_element(By.CSS_SELECTOR, "#username") driver.find_element(By.CSS_SELECTOR, ".btn.primary")

driver.find_element(By.CSS_SELECTOR, "input[type='password']") driver.find_element(By.CSS_SELECTOR, "div > span.item")

CSS 定位的优势:

  • 速度快

  • 可读性好

  • 灵活强大(适合复杂层级定位)

  • 前端工程师都用它,兼容性最好

掌握 CSS,你会比只会写 Xpath 的测试更强。


🌟 8. XPath 定位(最强、最灵活)

XPath 能定位几乎任何元素,是 Selenium 最强大的定位方式。

✔ 基本写法

driver.find_element(By.XPATH, "//input[@id='username']")

✔ 多属性定位

driver.find_element(By.XPATH, "//button[@class='btn' and @type='submit']")

✔ 模糊匹配(包含)

driver.find_element(By.XPATH, "//a[contains(text(), '注册')]")

✔ 相对路径(兄弟节点)

driver.find_element(By.XPATH, "//label[text()='用户名']/following-sibling::input")

优点: 强大无敌,啥都能定位
缺点: 可读性差、层级写不好容易很长
建议: 必要时使用,不要滥用

http://www.dtcms.com/a/619551.html

相关文章:

  • 做网站业务的怎么找资源seo公司推荐推广平台
  • 【开题答辩全过程】以 基于web网络的超级商场进行销存管理系统为例,包含答辩的问题和答案
  • 深度解析KingbaseES数据库备份利器sys_dump:从参数到实战的全流程指南
  • 岳阳网站界面设计全国企业信用查询系统
  • html网站免费模板下载指数基金投资指南
  • 百度小程序seo域名如何优化
  • dnf免做卡网站哪里查询网站备案
  • 北京酷站科技有限公司北仑seo排名优化技术
  • 佛山网站建设 骏域网站建设哈尔滨网站制作建设
  • 东莞网站建设 烤活鱼seo课程简介
  • 前端模块化:ESM 与 CJS
  • 4网站建设汕头市官网
  • 可以做产品推广的网站wordpress做网站过程
  • 《Unity Shader》 6.4.2 逐像素光照
  • 北京公司网站制作衡水 网站开发
  • 东莞做网站首选企业铭缙云县城乡建设局网站
  • 41 当前用户购物车数据
  • 公司网站建设需要什么网站开发过程文档
  • wordpress调用昵称静态网站怎么做优化
  • php网站开发建设网站云优化
  • 快排做网站排名爬取漫画数据做网站
  • 黄页游戏引流推广网站昆明建设招聘信息网站
  • 网站建设投诉去哪里投诉专业做家居的网站
  • 免费祝福网页在线制作网站在线优化工具
  • 【题解】P2324 [SCOI2005] 骑士精神 [IDA*]
  • 杭州自助建站网站网站变灰代码 所有浏览器
  • 中国建设银行官网站积分抽奖网站浮窗制作
  • 网站建设四网合一app开发与网站开发的区别
  • Leetcode 55
  • 网站上百度要怎么做的营销网名大全