博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动化测试:UIA
阅读量:5219 次
发布时间:2019-06-14

本文共 1964 字,大约阅读时间需要 6 分钟。

      在win8/8.1上做Metro app 的自动化测试,其中主要用到UIA相关的技术,下面就作一个简单的记录:

UIA原理图:(摘抄)

   

 

UIA基础:(VB.net版)

1.添加应用:UIAutomationClient.dll ,UIAutomationTypes.dll

 

2.UIA 的一些常用方法: 

1>对于一般的桌面应用程序,我们首先都会获取根元素,然后再通过FindFirst/FindAll 来寻找子元素: 

Dim Desktop As AutomationElement = AutomationElement.RootElement

  但是在Win8中对于Metro UI这个就不好用了,所以我们得用它的另外一个方法:

AutomationElement.FromHandle(HWND).FindFirst(......

 

2>根据条件查找:

单一条件: 

.FindAll(TreeScope.Children, New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.ListItem))

多条件:

.FindFirst(TreeScope.Descendants, New AndCondition(New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.List), New PropertyCondition(AutomationElement.AutomationIdProperty, "xx")))

找到所以孩子:

.FindAll(TreeScope.Children, Condition.TrueCondition)

 

 

3>获取属性值:   

.GetCurrentPropertyValue(AutomationElementIdentifiers.NameProperty)

 

4>操作:

点击button:

DirectCast(btn.GetCurrentPattern(InvokePattern.Pattern), InvokePattern).Invoke()

选择:

DirectCast(ele.GetCurrentPattern(SelectionItemPattern.Pattern), SelectionItemPattern).Select() 如果没选中: If DirectCast(ele.GetCurrentPattern(SelectionItemPattern.Pattern), SelectionItemPattern).Current.IsSelected() = False Then end if

ToggleSwitchs:如果=off ,则设为ON

If DirectCast(toggleswitch.GetCurrentPattern(TogglePattern.Pattern), TogglePattern).Current.ToggleState.ToString.Equals("Off") Then     DirectCast(toggleswitch.GetCurrentPattern(TogglePattern.Pattern), TogglePattern).Toggle()End If

combbox:

DirectCast(combbox.GetCurrentPattern(ExpandCollapsePattern.Pattern), ExpandCollapsePattern).Expand()

editbox:

设值: DirectCast(editbox.GetCurrentPattern(ValuePattern.Pattern), ValuePattern).SetValue("xx") 获取里面的值: DirectCast(editbox.GetCurrentPattern(ValuePattern.Pattern), ValuePattern).Current.Value

获取第一个子孩子的值:

TreeWalker.ControlViewWalker.GetFirstChild(xxEle)

获取元素的坐标:

GetCurrentPropertyValue(AutomationElement.ClickablePointProperty).ToString()

 

参考:Test win8 app

转载于:https://www.cnblogs.com/Alvin-x/p/3455372.html

你可能感兴趣的文章
java的Array和List相互转换
查看>>
layui父页面执行子页面方法
查看>>
如何破解域管理员密码
查看>>
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
vue:axios二次封装,接口统一存放
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
图片加载失败显示默认图片占位符
查看>>
【★】浅谈计算机与随机数
查看>>
《代码阅读方法与实现》阅读笔记一
查看>>
解决 sublime text3 运行python文件无法input的问题
查看>>
javascript面相对象编程,封装与继承
查看>>
Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
查看>>