基本上我正在使用 Visual Studio CODE UI 对基于 Windows 的应用程序进行 UI 自动化测试,当布局更改或在 GUI 中添加一些新控件时出现问题,并且控件的控件 ID 发生更改。正如我们所见从屏幕截图中可以看出,CODE UI builder 重新记录了一个典型的层次结构:-
主窗口 -> 具有控件 ID 属性的窗口 -> 实际控件。
所以这是我与这个层次结构和控制 ID 有关的问题?
1) 这些控件 ID 是如何生成的?
a) 我知道生成这些控件 ID 号的逻辑取决于 GUI 中控件的深度,但我无法找到任何一致的生成方式,例如在图像中两个按钮connect 和 help似乎在同一级别的 GUI 中,但它们的控件 ID 仍然如此不同1 和 5013。
b) 这些控件 ID 是由测试环境中使用的编码 UI 构建器生成的,还是产品开发方面的一些逻辑或生成它们的代码本身
2)有没有办法跳过这个带有控件ID的中间层窗口并成功地进行录制和播放。(在我的例子中,我们可以访问所有控件的逻辑名称,这些控件本身在本质上是唯一的,我们很好摆脱这些控制ID)
3)另外,我们是否可以采用混合方法,其中几乎所有控件都有两层,但对于某些特殊情况下三层,其中不可能仅使用逻辑名称或标签,并且我们明确要求控件 ID
4)最后但并非最不重要的一点是,据我所知,这种类型的可访问性实现有多少可以在测试环境中完成在测试环境中使用各种工具(如 CODE UI)进行测试。但是对于大型产品,我认为这不是一个好方法,因为它给开发方面带来了额外的负担,就像在需要交付给客户的产品中添加额外的不必要的代码(仅用于测试目的)。
为了清楚我的问题,请参阅下面的图片作为参考。
第一张图片显示远程桌面 GUI
第 2 显示计算机:由 CODED UI 记录的控件属性
第 3 显示了 CODED UI 记录的连接按钮属性
4th 显示了 CODED UI 记录的帮助按钮属性