gpt4 book ai didi

c# - 在白色中按类查找桌面窗口

转载 作者:太空宇宙 更新时间:2023-11-03 12:26:10 34 4
gpt4 key购买 nike

我正在使用 White 构建一个自动化测试套件。我需要做的一件事是单击系统升级通知区域(开始栏右下角)中的图标。不过,我无法向 White 识别它。使用 Spy++,我发现它在没有标题可供搜索的窗口中嵌套了三层,这是怀特识别窗口的正常方式。因此,我试图按类找到正确的窗口。

根据 Spy++,我首先需要获取窗口 10042,它具有类“Shell_TrayWnd”。然后是其子窗口 10048,类为 TrayNotifyWnd,最后是系统升级通知区域,窗口 1005E,类为 ToolbarWindow32。从 this 中得到一些提示回答,我试过下面的代码:

win=Desktop.Instance.Get<Window>(SearchCriteria.ByNativeProperty(AutomationElement.ClassNameProperty, "Shell_TrayWnd"));

但是当我尝试运行它时,我记录了这个错误(原文如此):

异常:获取 (),AutomationElementIdentifiers.ClassNameProperty=Shell_TrayWnd 时出错

有什么想法吗?

编辑:我更改了错误日志记录,所以我得到了完整的回溯而不仅仅是异常消息,并且发现 System.ArgumentException: Must specify at least two conditions.

所以我修改了代码

win = Desktop.Instance.Get<Window>(SearchCriteria.ByClassName("Shell_TrayWnd").AndIndex(0));

但尽管我指定了两个条件,它仍然给出完全相同的错误消息。

Exception: TestStack.White.WhiteException: Error occurred while getting (),ClassName=Shell_TrayWnd,Index=0 ---> System.ArgumentException: 必须指定至少两个条件。

最佳答案

在 White UI Automation 中,SearchCriteriaSearchConditions 之间存在区别。 SearchConditions 由框架内部使用,而 criteria 作为参数在外部添加,然后在内部转换为条件(然后甚至进一步转换为 Microsoft UIAutomation 框架)。

如果将搜索条件更改为

SearchCriteria.ByClassName("Shell_TrayWn").NotIdentifiedByText(String.Empty)

它将停止抛出错误。

这是因为它默认以名称/文本搜索的所有内容作为搜索条件,并抛出一条不相关的错误消息(它应该是一个 ArgumentException 消息“必须指定名称/文本条件")

关于c# - 在白色中按类查找桌面窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44903655/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com