Python 测开28期 - WL - 学习笔记 - 自动化测试定位策略

定位策略

  • 常遇问题
    • 不知道应该使用哪种定位方式?
    • 元素定位不到无法解决?

定位方式

1. 通用场景
  • 1.1. 通用 Web 定位方式
定位策略 描述
class name 通过 class 属性定位元素
css selector 通过匹配 css selector 定位元素
id 通过 id 属性匹配元素
name 通过 name 属性定位元素
link text 通过 text标签中间的 text 文本定位元素
partial link text 通过 text标签中间的 text 文本的部分内容定位元素
tag name 通过 tag 名称定位元素
xpath 通过 xpath 表达式匹配元素
  • 选择定位器通用原则
      1. 与研发约定的属性优先
      • class属性:[name=‘locate’]
      1. 身份属性 id,name(web定位)
      1. 复杂场景使用组合定位:
      • xpath,css
      • 属性动态变化(id,text)
      • 重复元素属性(id,text,class)
      • 父子定位(子定位父)
      1. js定位
  • 1.2. js 定位(CSS)
    • document.querySelector(“id的值”)
  • 相关章节
    • 高级定位 - xpath
    • 高级定位 - css
    • 执行 JavaScript 脚本
    • 面试题 - 定位不到元素
2. 特殊场景
  • 2.1. 弹框 - alert()
    • 场景:web 页面 alert 弹框
    • 解决:web 需要使用 driver.switchTo().alert() 处理
  • 2.2. 下拉框/日期控件
    • 场景:
      • input 标签组合的下拉框无法定位
      • input 标签组合的日期控件无法定位
    • 解决:面对这些元素,我们可以引入 JS 注入技术来解决问题
  • 2.3. 文件上传
    • 场景:input 标签文件上传
    • 解决:input 标签直接使用 send_keys() 方法
  • 2.4. 其他场景