Skip to content

自动化测试定位策略


简介

Web 自动化测试定位策略是指在自动化测试脚本中用于准确定位和操作 Web 页面元素的方法和规则。

选择正确的定位策略对于成功执行自动化测试非常重要,因为它直接影响到测试脚本的稳定性和可维护性。


定位方式

uml diagram


通用 Web 定位方式

通过八大定位方式进行定位:

定位策略 描述
class name 通过 class 属性定位元素
css selector 通过匹配 css selector 定位元素
id 通过 id 属性匹配元素
name 通过 name 属性定位元素
link text 通过 <a>text</a> 标签中间的 text 文本定位元素
partial link text 通过 <a>text</a> 标签中间的 text 文本的部分内容定位元素
tag name 通过 tag 名称定位元素
xpath 通过 xpath 表达式匹配元素

选择定位器通用原则

  1. 与研发约定的属性优先(class 属性: [name='locate'])
    • 在与开发团队约定的属性上进行定位,以确保一致性和可维护性。
  2. 身份属性 id,name(web 定位)

    • 使用 idname 属性进行定位,这些属性通常是唯一的,是首选的定位方法。
  3. 复杂场景使用组合定位:

    • 使用 xpathcss 选择器来处理复杂的定位需求。
    • 处理属性动态变化:通过 xpath
    • 重复元素属性(id,text,class)
    • 父子定位:通过定位父元素,然后在其内部查找子元素。
  4. js 定位
    • 使用 js 注入来定位元素,特别适用于处理动态或特殊交互的元素。

{.hidden .audio .subtitle}


特殊定位场景

{.hidden .audio .subtitle}


弹框-alert()

  • 场景
    • web 页面 alert 弹框
  • 解决:
    • web 需要使用 driver.switchTo().alert() 处理

{.hidden .audio .subtitle}


日期控件

  • 场景:

    • <input>标签组合的下拉框无法定位
    • <input>标签组合的日期控件无法定位
  • 解决:
    • 面对这些元素,我们可以引入 JS 注入技术来解决问题。

{.hidden .audio .subtitle}


文件上传

  • 场景:
    • input 标签文件上传
  • 解决:
    • input 标签直接使用 send_keys()方法

{.hidden .audio .subtitle}


总结

  • 定位方式
  • 选择定位器通用原则
  • 特殊定位场景