首页 > 解决方案 > UI 自动化:打开文件对话框元素树不包含所有元素

问题描述

我正在尝试使用带有 C# 的 UI 自动化在打开的Open对话框中键入文件路径,然后按打开按钮。我能够找到对话框本身,但搜索内部元素(文件路径文本框和打开按钮)没有结果。当我遍历元素树将元素写入日志文件时,我看到日志显然太短并且并非所有元素都打印出来。

奇怪的行为:如果我在另一个窗口上用鼠标切换,对话框的遍历会返回所有元素,我能够找到所需的控件并与它们交互。

我尝试了很多方法来绕过这个问题:

没有一种方法能给我想要的结果。

什么会导致使用 UI 自动化的元素树不完整,解决方法是什么?

我的情况是:

  1. 测试点击网页上的按钮
  2. 打开选择文件的标准 Windows 对话框
  3. 我正在尝试使用 UI 自动化填充文件路径文本框并按打开按钮

标签: c#ui-automation

解决方案


我终于找到了这个解决方法:

  1. 对话框以文本框为焦点打开,因此获取当前焦点控件的句柄;
  2. 抓住AutomationElement把手;
  3. 发送Alt+O使用SendKeys.SendWait.

推荐阅读