08 三种等待方式的区别?怎么用才对?
2026/9/8...大约 2 分钟
08|三种等待方式的区别?怎么用才对?
开场逐个定义加评价,先把三种等待摆清楚。
回答思路
第一步:三种逐个定义
| 等待方式 | 特点 |
|---|---|
| 强制 sleep | 死等固定秒数——稳定但极慢,把等待时长写死是用例变慢的头号原因 |
| 隐式等待 | 对全局所有找元素动作生效的兜底等待——找到就继续,超时抛异常,设置一次全局有效 |
| 显式等待 | 针对单个条件的最优解——配合 expected_conditions 等具体条件(元素可点击、可见、消失),满足即走不浪费时间 |
第二步:核心对比讲透
隐式是「等元素出现」,显式是「等条件成立」——元素可点击、输入框可编辑、加载动画消失,这些状态隐式等待管不了,只能显式等。这个区别是本题的得分核心。
第三步:给工程用法
全局设一个小的隐式兜底(几秒),关键交互点用显式等待精确控制,彻底禁用 sleep——这个组合拳是标准答案。
第四步:进阶讲自定义等待
expected_conditions 不够用时,用 lambda 自己写等待条件(比如等到某个请求返回的数据渲染出来)——能讲自定义条件,说明真被复杂页面逼过。
收尾:提一个坑
隐式和显式同时用可能互相干扰(叠加等待时长),部分场景要在显式前把隐式归零——踩过这个坑的人讲出来,面试官会心一笑。
考察重点
| 维度 | 说明 |
|---|---|
| 企业动机 | 等待问题是 UI 自动化不稳定的头号来源。企业要的是能从根上治理 flaky 的人——sleep 堆出来的脚本没有任何团队敢挂到 CI 上 |
| 过线标准 | 三种定义清楚 + 「等元素」和「等条件」的区别 |
| 区分度 | 讲自定义等待条件、讲隐显式混用干扰的是深水区选手;只背三种定义的是背题 |
| 加分项 | 给出「隐式兜底加显式精确」的组合策略 |
| 减分项 | 脚本里到处 sleep 还觉得「稳」——反面教材本材 |
来源
整理自知识星球帖《面试情报 03|自动化测试 20 题》,返回题库。