首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF编码的UI测试:可靠地定位桌面图标

WPF编码的UI测试:可靠地定位桌面图标
EN

Stack Overflow用户
提问于 2012-05-09 04:52:02
回答 1查看 757关注 0票数 0

谁知道使用编码的UI测试API可靠地定位桌面图标的正确方法?自动生成的代码是从记录的操作创建的,这些操作单击特定的桌面图标,并在记录当天工作。当我第二天打开我的笔记本电脑时,录制操作不再起作用,因为找不到图标。

我正在尝试手工制作这个,所以我尝试了:

代码语言:javascript
复制
public void LaunchOi()
{
   var desktop = ApplicationUnderTest.Desktop.GetChildren().First(c => c.Name == "Desktop");

   var folderView = new WinWindow(desktop);

   // I copied these numbers from autogenerated code.  
   // Yesterday, PropertyNames.Instance = 7, today = 9.  Why so?
   folderView.SearchProperties[WinWindow.PropertyNames.ControlId] = "1";
   folderView.SearchProperties[WinWindow.PropertyNames.Instance] = "9";
   folderView.Find();

   var winList = new WinListItem(folderView);
   winList.SearchProperties[WinListItem.PropertyNames.Name] = "OCC600 OI";          
   winList.Find();

   Mouse.DoubleClick(winList, MouseButtons.Left);
}

正如我在评论中指出的,WinWindow.PropertyNames.Instance不会保持不变。当我昨天播放这段录音时,WinWindow.PropertyNames.Instance是7岁。今天是9岁。有人知道为什么吗?我找不到任何关于这方面的文档。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-09 20:26:50

正如Schaliasos在注释中提到的,您应该从删除实例属性开始。实例属性非常不可靠,特别是在像桌面这样频繁变化的情况下。

关于实例属性的更多说明...当缺少有效的搜索属性时,通常在录制中使用实例属性。因此,作为录制的最后努力,记录器会说我有20个具有相同搜索属性的控件,应该使用的控件是7。然后,第二天当你运行应用程序时,你可能添加或删除了几个桌面图标,并说你现在有22个图标。现在框架仍然在寻找控件的实例7,但昨天的7是今天的9。

如果有任何其他可用的搜索属性,您应该查找并使用这些属性,而不是instance。如果这是不可能的,寻找其他方法来实现相同的目标,也许可以尝试直接在C#中打开文件,而不是使用UI。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10506313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档