锁定屏幕下Open File Dialog的Open按钮以Pane形式存在的访问问题
锁定屏幕下Open File对话框AutomationElement识别异常求助
测试套件基础信息
- 基于C#语言、NUnit框架开发的GUI测试套件
- 通过将GUI组件转换为
AutomationElement对象,实现界面访问与功能测试
问题现象
调整测试套件运行方式后,涉及Open File对话框的测试偶发失败(约50%概率):遍历AutomationElement树时,对话框中的"Open"按钮被识别为pane类型,而非预期的button类型。
背景信息
- 夜间测试通过Windows 10计划任务启动,出于安全要求,测试期间屏幕必须保持锁定状态
- 此前发现
SendKeys.SendWait在屏幕锁定时失效,因此改为遍历AutomationElement树操作Open File对话框,曾稳定运行 - 曾在启用自动备份的驱动器目录下手动测试,遇到过相同识别问题:Open按钮在元素树中显示为空
pane(无子元素),但GUI上按钮显示正常且可手动点击(带有文件历史版本下拉菜单)。当时通过切换焦点刷新内存中的GUI,pane会重新被识别为button,问题得以解决
当前困境
夜间测试(非备份目录环境)再次出现相同识别异常,但屏幕锁定时,切换焦点的方案完全无效:解锁屏幕后测试可正常通过,锁定状态下多次尝试设置焦点,Open按钮仍被识别为pane。
求助方向
已知SendKeys.SendWait、mouse_event在屏幕锁定时均无法使用,求问:
- 如何刷新Open File对话框的内存状态,使Open按钮能被正确识别为
button? - 或有其他可行的替代方案实现锁定屏幕下的Open File对话框操作?
内容的提问来源于stack exchange,提问作者doug4
相关产品推荐
相关产品推荐

