1

我正在尝试使用WinApp 驱动程序在 Visual Studio 2017 中自动化扩展的 UI(WPF),但在使用Inspect.exe(Windows SDK)捕获元素时找不到自动化 ID

最初,在 Inspect.exe 检查时没有找到自动化 ID。因此,我在 XAML 文件的自动化属性中设置了自动化 ID,并在 Visual Studio 中安装了新的 VSIX,但在捕获元素时上述设置的 ID 仍然不可见。

但是在我如上所述在 XAML 中设置 id/s 后尝试捕获 UI 对象后,使用检查元素工具,偶尔会出现自动化 id 但它不一致,我找不到它不可用/不可见的原因始终如一。

通过使用“FindElementByName”和“FindElementByClassName”,我在某些情况下取得了成功,但我的意图是使用自动化 ID 更准确地捕获元素。

下面是我设置 AutomationId 的 XAML 代码;

Button Content="Close" Width="80" Height="25" Margin="10,0,0,0" Visibility="{Binding abc}" Click="CloseButton_Click" AutomationProperties.AutomationId="BtnCloseExample"

下面是我设置 id 以在我的测试项目中捕获元素的代码行;

session.FindElementById("BtnCloseExample").Click(); Thread.Sleep(TimeSpan.FromSeconds(3));

我希望以一致的方式设置和获取自动化 ID,以便使用 FindElementById 或 xpath。可悲的是,我也找不到与此问题相关的好文章。

请阐明并提供一些指导方针来完成这项任务。如果可能的话,如果有人可以发布自动化 wpf 应用程序的示例,那将是非常有价值的。

谢谢你。

4

1 回答 1

1

如果您尝试通过自动化 ID 定位 UI 元素,则应使用FindElementByAccessibilityId而不是FindElementById(它将查找运行时 ID),如此处所述:https ://github.com/microsoft/WinAppDriver#supported-locators-to-find-ui -元素

于 2019-08-22T18:40:53.110 回答