题目:以下哪些做法能有效提升 Web UI 自动化用例的稳定性、降低"假失败"?(多选)
A. 用显式等待(WebDriverWait + 预期条件)替代固定 time.sleep()
B. 元素定位优先用 id / data-testid,避免依赖层级过深的绝对 XPath
C. 用例之间互相依赖执行顺序,前一条用例创建的数据直接给后一条用,减少重复前置操作
D. 定位失败时在测试方法里 try/except 吞掉异常继续往下跑,避免整个套件中断
E. 把公共操作(登录、加购、结算)封装成 BasePage / Fixture,每个用例自己准备并清理前置数据
F. 断言异步渲染的组件前,先等待该元素可见(visibility)再读取文本
难度:初级
题型:笔试(多选)
参考答案/答题要点:
答案:A、B、E、F
- C 错:用例串联会放大失败、无法单独重跑、无法并行,破坏用例独立性——这是自动化最常踩的坑。
- D 错:吞异常把真失败伪装成通过,制造假绿色,比失败更危险。失败要显式抛出并截图、留存 DOM/page source。
- 延伸考点:PO(Page Object)模式的价值是"页面变化只改一处";失败自动重试要限次(1~2 次)并单独统计重试率,重试率 > 5% 说明用例本身有问题;环境类抖动(数据、脏缓存、第三方依赖)才是"假失败"的主因,不是靠 sleep 解决。