繁体   English   中英

UI自动化:“打开文件”对话框元素树并不包含所有元素

[英]UI Automation: Open File dialog elements tree contains not all elements

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

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

我尝试了许多方法来绕过该问题:

  • 打开一些窗口,使用AutomationElement.SetFocus切换到该窗口;
  • 使用Win API( FindWindowEx )搜索元素;
  • 通过对话框的边界矩形内的屏幕上的点,通过xy进行迭代来获取AutomationElement

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

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

我的情况是:

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

我终于来到了这种解决方法:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM