模型管理器(Model Manager)概述

模型管理器(Model Manager)用来管理桌面应用控件对象的树状结构,它存储了测试对象,用于侦测对象、调试和生成调用脚本、以及截获控件的快照等。

模型管理器可以对测试对象的属性做各种编辑,调整它们的顺序。对象添加到模型后,用户可以在树状结构中拖动。模型管理器可以管理各种不同类型的测试对象,例如Windows对象、Qt对象、图案对象,虚拟控件对象等。

模型管理器也包含了多种的侦测方式,具体方式请参见侦测控件及对象添加

测试对象包含了控件对象的属性信息,可以用于定位对象。

打开模型管理器

模型管理器可以通过两种方式打开

  1. 主界面右上角的 模型管理器 按钮打开。
  2. 点击项目中的模型文件 *.tmodel

模型管理器界面

下图是模型管理器的界面:

模型管理器界面

  • 工具栏:包含常用的模型管理器的功能,比如文件操作、添加对象、控件高亮和截图等。
  • 搜索栏:用于在对象树中搜索。
  • 对象树:也叫对象模型树,用于维护和显示各类对象的名称和层级关系的树状视图。选中节点会在右侧显示节点的详细信息。
  • 详细页面:除了顶部的基本信息,下面还有三个标签页分别用于管理对象的识别属性、操作方法以及截图与级联控件。
    • 标识属性:管理对象匹配控件所使用的识别属性
    • 控件操作:提供调用和调试操作对象的所有可用方法,并且可以直接生成对应的调用脚本
    • 控件截屏:管理控件的截图,并且能够在截图的基础上添加图案控件与虚拟控件,这种在一棵对象树中使用多种类型技术的对象的方式,称作对象的级联
  • 状态栏:显示当前操作的结果。比如显示高亮的结果、显示正在侦听的Qt应用等。

工具栏

提供了几个常用的功能:

  • 基本操作:模型文件的新建 、打开 和保存
  • 添加对象 添加对象 :进入侦测模式,选中控件或区域生成对应技术类型的对象。关于支持哪些技术、以及如何侦测可以查看侦测控件及对象添加一章。
  • 对象操作:对选中对象节点的操作,如高亮 、截图 和删除 等。
  • 远程连接 远程连接 :启动后可以连接到远程桌面,建立连接后,下面几个操作也会相应的切换到远程模式
    • 添加对象 -> 从远程桌面中添加对象
    • 高亮 -> 高亮远程桌面中的控件
    • 启动应用 -> 在远程桌面中启动应用
  • 延时模式开关 :打开后可以延时执行其它功能(如侦测和高亮)。允许延时执行的功能会使用黄色背景显示。
  • 置顶模式开关 :打开后模型管理器始终显示在最顶层。

搜索栏

模型管理器左边部分的输入框是对象搜索栏,用搜索对象,在搜索栏中输入文本,用来过滤对象,会显示模型中所有匹配的对象以及它们所在的对象树。匹配逻辑会用输入的文本去匹配控件的名称、类型和它们的属性值。如果是这些值的子串,就会当作结果显示。

搜索框右边的两个按钮分别用与展开和折叠整棵树状结构。

例如下图显示了搜索文本“字体”时,搜索结果过滤的情况。匹配的对象都以红色标出:

对象模型树

模型管理器左边部分是对象模型树,使用树状结构来表示测试对象的结构信息,并且将模型树的信息以及对象的识别属性用于控件匹配,按照对象的树结构,从根节点开始一级一级的匹配。

为什么是树?

目前市面上的应用界面大部分都可以解析为一个控件树(比较常见的是网页中的DOM(文档对象模型,Document Object Model),模型管理器中的对象模型的概念与之相仿。

网页中所有的内容由元素(Element)组成,在DOM中映射为一个个元素对象(Element Object);而桌面应用中的内容由控件(Widget)组成,在对象模型中映射为一个个测试对象。

网页中的DOM 模型管理器中的树
根节点为<html>标签 根节点通常为应用窗口控件window
使用id/class/css选择器或xpath定位元素 使用对象树中的识别属性定位控件
调用元素对象上的方法获取元素属性 调用测试对象上的方法获取控件属性,或操作控件

如何添加和使用模型树?

当使用模型管理器打开一个空的模型文件时,通过侦测控件功能选中被测应用中的控件,会自动解析生成该控件的对象树,添加到模型中即可。

选中模型中的一个节点,就可以对其进行对象操作,可供使用的操作参考模型对象的操作一节。

详细页面

当点击对象树的任意一个节点,则在左边的面板中会显示这个测试对象的属性,如下图:

上半部分——对象信息

  • 左边是显示控件的名称和类型,名称可以由用户自由修改,不会影响控件的识别,只是用来给用户区分控件。类型是指这个控件的类型,是只读属性不能修改。
  • 右边显示控件的截屏,是在侦测控件时获取的。与控件截屏标签页中的图片相同。

下半部分——详细信息

选中对象后,在右侧的详细页中可以看到三个标签页,三个标签页分别用于管理对象的识别属性、操作方法以及截图与级联控件。

  1. 标识属性:管理对象匹配控件所使用的识别属性。详情查看标识属性标签页
  2. 控件操作:提供调用和调试操作对象的所有可用方法,并且可以直接生成对应的调用脚本。详情查看控件操作标签页
  3. 控件截屏:管理控件的截图,并且能够在截图的基础上添加图案控件虚拟控件,这种在一棵对象树中使用多种类型技术的对象的方式,称作对象的级联。详情查看控件截屏标签页
  4. 更新属性:重新侦测控件,并用于更新当前节点的属性。
  5. 复制节点信息:复制当前节点的标识属性,可以用于脚本中匹配控件
  6. 复制级联节点信息:与“复制节点信息”功能类似,但是会把节点的所有父节点信息一块复制,并以数组的形式呈现,也可用于脚本中匹配控件

状态栏

在模型管理器中,状态栏通常显示当前操作的运行结果。包括如下信息:

  1. 控件操作情况:成功时显示控件的位置和尺寸信息,找到多个控件时可以切换;失败时显示失败原因。
  2. 被测应用监听:所有使用Qt Hook方式启动的应用都会显示在此处。

另外还在右下角提供了取消高亮的按钮。

模型编辑

模型中的对象树和对象树节点的属性都是可以进行编辑的,模型管理器中无论是左侧的对象树结构,还是选中对象树节点以后的对象属性,都可以自由编辑。

对树结构和节点识别属性的修改可能会改变识别结果,因此最好一边修改一边使用“高亮”按钮确认识别情况。

通用编辑

  • 撤消(Ctrl+Z):撤销上一次的修改,支持连续撤销多步操作。
  • 重做(Ctrl+Shift+Z):从撤销的状态中恢复,允许用户连续执行重做操作。
  • 删除节点(Del):删除当前选中的节点。

对象树编辑

  • 创建组:在选中的控件下创建一个组。详情查看对象树编辑——创建组
  • 插入组:在当前位置创建一个组并将选中的对象放入其中。详情查看对象树编辑——插入组
  • 删除本节点:只删除该选中对象。删除后,它的所有子对象成为它父对象的子对象。详情查看对象树编辑——删除本节点
  • 删除子树:删除该对象及所有子对象。详情查看对象树编辑——删除子树
  • 合并到兄弟节点:有些对象自动添加到模型中时,引入了重复的父对象。可在重复对象的根节点上执行这个操作,将重复对象级联地合并到跟它重复的对象。模型管理器会递归的合并子对象,直到某一级上没有可合并的重复对象为止。合并的前提是两个对象有相同的识别属性。详情查看对象树编辑——合并到兄弟节点
  • 高亮:高亮选中的控件。详情查看高亮节点
  • 获取控件快照:识别并截图被选中的控件,同时更新控件的预览图。详情查看获取控件快照/控件截图
  • 编辑虚拟控件:编辑被选中控件中的虚拟控件。详情查看编辑虚拟控件
  • 上移(快捷键Ctrl+向上箭头):将节点向上移动,只会改变位置,不会改变层级关系。
  • 下移(快捷键Ctrl+向下箭头):将节点向下移动,只会改变位置,不会改变层级关系。
  • 拖拽:
    • 拖拽复制当前节点:按住键盘Ctrl键,拖拽需要复制的节点到指定位置。
    • 拖拽复制当前子树:按住键盘Ctrl+Shift键,拖拽需要复制的子树到指定位置。

results matching ""

    No results matching ""