c# - 如何检测 WPF 中的窗口内容变化?
问题描述
我想开发一个测试自动化的工具。我有被测应用程序的源代码,所以我有权在应用程序中添加一些自定义逻辑。
自定义逻辑的一部分是检测内容更改,分析更改并最终将结果报告给测试工具,例如:一条消息“登录窗口已准备好”,然后是 user_id 和密码控制的位置。
通过使用 VisualTreeHelper 和 LogicalTreeHelper 类,我可以知道窗口的当前状态,但我不知道何时遍历树。
我发现了一个类似的问题,但这是针对第 3 方窗口的,我想我可以访问源代码的应用程序可能有更好的解决方案。
在 win32 中,我可以挂钩 WM_PAINT 来检测窗口内容的变化。您对如何在 WPF 中执行此操作有任何提示吗?
顺便说一句,虽然我想为应用程序添加自定义逻辑,但我也想尽可能少地更改应用程序逻辑。
我是 WPF 的新手,如果有什么完全错误的地方,我很抱歉。
解决方案
您可能想要准确地指定您想要实现的目标,例如描述您想要做什么的示例。
你知道 VisualTreeHelper 类吗?https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.media.visualtreehelper
基于你所说的你想要达到的目标。我可能会订阅 UI 元素的一些“就绪”或“加载”事件。您应该能够通过 VisualTreeHelper 访问 UI 元素。
您还应该能够通过它与 UI 元素进行交互,例如。单击并输入信息。您还可以根据 UI 的状态运行测试(我认为)。
我也确信有很多 WPF 的自动化 UI 测试框架,只有谷歌:“WPF 的自动化 UI 测试框架”。
希望这可以帮助。
推荐阅读
- hadoop - HDFS如何存储大于块大小的单个数据?
- django - django 模板语句 if != Null 不起作用
- php - 如何在 HTML 网站 SQL SERVER 2017 上显示我的数据库数据
- python - 元组正在将浮点数转换为字符串
- php - 添加到缺货可用性文本,Woocommerce 单品中的可用日期
- javascript - 尝试从选择标记获取值时返回 URL
- javascript - Chatkit:创建新用户
- api - 创建 BIM360 文档的外部链接
- r - 具有多个字符串的字符串中每个元素的最佳匹配
- python - 使用 python 命令更改 jupyter 单元中的内核