首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从AutomationElement中获取原始元素

如何从AutomationElement中获取原始元素
EN

Stack Overflow用户
提问于 2019-05-24 08:22:27
回答 2查看 1.3K关注 0票数 2

如何从AutomationElement获取实际的UWP控制元素

以下接口返回AutomationElement

代码语言:javascript
复制
parent.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.AutomationIdProperty, automationId));

我想断言元素的特定属性和相应值。对于ex。图像控件的url。

如何才能获得实际的控件或它的属性?谢谢

EN

回答 2

Stack Overflow用户

发布于 2019-06-04 19:01:23

如果是WPF应用程序,则需要执行以下步骤才能获得实际控制。

  1. 使用UITestControlFactory.FromNativeElement(automationelement,TechnologyName.UIA.ToString();将automationElement转换为UITestControl。上面的代码将返回UITestControl.
  2. Namespace Microsoft.VisualStudio.TestTools.UITesting.WpfControls的实例,提供了许多控件类来创建实例来访问它的properties.You,只需要在构造函数中传递UITestControl的对象即可。请参阅下面的图像

票数 1
EN

Stack Overflow用户

发布于 2019-05-24 16:58:51

首先,您必须确保automationId值与您的图像控件匹配。然后,您必须将FindFirst的结果转换为ImageControl。

代码语言:javascript
复制
var imageControl = parent.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.AutomationIdProperty, automationId)) as ImageControl;

我还建议使用更高级的UI自动化库,如TestStack.White或FlaUI,它们具有这些扩展方法,您可以根据控件类型和实际Id传递条件。

例如: Flaui有这样的接口:

代码语言:javascript
复制
var submitBtn= parent.FindFirstDescendant(cf => cf.ByName("SubmitBtn").And(cf.ByControlType(ControlType.Button)))?.AsButton();
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56284413

复制
相关文章

相似问题

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