美文网首页
UIA(3)-查找控件

UIA(3)-查找控件

作者: yaoshunyu0921 | 来源:发表于2017-01-19 18:13 被阅读0次

    Root Element

    系统的root element就是windows的桌面,其他所有控件都是桌面的子控件。在自动化程序中查找控件,需要从一个父控件开始,这个父控件可以是任何控件,桌面是所有控件的父控件。我们可以通过下面的方法获取这个root element。

    var desktop=AutomationElement.RootElement;

    Condition

    在UIA中我们通过condition来查找元素,condition定义了查找元素的方式(属性)。

    UIA中有两个预定义condition:trueCondition和falseConditon。TrueCondition会返回指定搜索范围内的所有元素;相反,FalseCondition会防止搜索范围内任何元素被找到。

    除此之外,还有三个预定义的condition:ContentViewCondition,ControlViewCondition, 和RawViewCondition,它们可以单独使用也可以以组合条件的方式使用。

    我们也可以通过property构建特定属性的propertyCondition,比如可以构建支持某种control pattern的condition。我们也可以通过AndCondition, OrCondition, 和NotCondition来构建组合类型的condition.

    var condition=new PropertyCondition(AutomationElement.NameProperty,"test")

    var btnCondition=new AndCondition(

                  newPropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Button),

                  newPropertyCondition(AutomationElement.NameProperty,"ok"));

    Search Scope

    我们可以通过findfirst和findall两个函数来定位控件,这两个函数的入参包括查找的范围和查找条件。Findfirst会返回满足当前元素所在查找范围内符合条件的第一个元素,Findall会返回满足当前元素查找范围内符合条件的所有元素。search scope可以是以下多种查找范围的组合:Ancestors、Children、Descendants、Element、Parent和Subtree。

    var window=desktop.FindFirst(TreeScope.Children, condition);

    AutomationElementCollection elementCollection =

                                   elementWindowElement.FindAll(TreeScope.Children, conditions);

    相关文章

      网友评论

          本文标题:UIA(3)-查找控件

          本文链接:https://www.haomeiwen.com/subject/jowvbttx.html