Web 自动化测试-Selenium元素定位之实战篇

Web 自动化测试-Selenium元素定位之实战篇

技术教程gslnedu2025-07-10 16:40:091A+A-

常规的selenium有多种定位方式,但在工作中最常用的还是 id,xpath。 但是也不是所有的元素都适合通过id定位。如果id是动态生成的,则id定位就不合适。 同样的,好用耐用的xpath 定位也需要根据页面元素特点和上下文结构来写。


  1. 优先使用稳定属性

当id动态变化时,可改用name 等静态属性定位。如果是表单元素(比如input ,select等)则更应该直接使用name 属性


driver.find_element_by_name("username") # 替代动态ID

  1. 通过多属性组合提高唯一性


driver.find_element_by_css_selector("input[type='submit'][value='登录']")

  1. 使用部分匹配策略

driver.find_element_by_css_selector("div[id^='fixedPrefix_']")

  1. 对于xpath,要避免绝对路径,减少因DOM结构变动导致的失效

# 不推荐

/html/body/div[2]/form/input

# 推荐

//input[@name='email']

  1. 通过多个属性降低耦合度

//input[@type='text' and @placeholder='搜索']


在Selenium体系中, CSS定位和Xpath定位基本都可以完成大部分的元素定位工作。它们的主要区别在于

  1. Xpath 可以通过元素内容定位,而CSS定位不可以
  2. CSS定位通常更快,尤其是移动端Appium测试
  3. Shadow DOM 内的元素只能用CSS定位。
点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8