自定义控件获取方法和装置制造方法及图纸

技术编号:11190651 阅读:105 留言:0更新日期:2015-03-25 19:19
本发明专利技术公开了一种自定义控件获取方法和装置,可以用于用户界面自动化测试。其中,自定义控件获取方法包括:获取目标控件的查询条件,其中,目标控件为待获取的自定义控件,查询条件为用于查询目标控件的条件;获取目标控件所在的父窗口;通过遍历父窗口的子控件来查询满足查询条件的控件,将满足查询条件的控件作为目标控件;在查询到目标控件之后,获取目标控件的位置属性,其中,位置属性为用于表示目标控件位置的属性;以及通过目标控件的位置属性获取目标控件的位置信息。通过本发明专利技术,解决了现有技术中无法获取到自定义控件的精确位置的问题,达到了获取到自定义控件的精确位置的效果。

【技术实现步骤摘要】
自定义控件获取方法和装置
本专利技术涉及自动化测试领域,具体而言,涉及一种自定义控件获取方法和装置。
技术介绍
在软件用户界面(UI)自动化测试过程中,为了准确地控制鼠标操作的位置,有一 套获取被测对象上目标控件的位置的机制。一般的Π 自动化测试通常会使用一些工具来 获取这些对象的具体位置,例如:VisualStudio中的Spy++,或者AutoIt中的WindowsInfo 工具。但是这些工具只能识别系统预设好的控件类型,如果界面上存在用户自己定义的控 件类型,则不能够获取到控件的精确位置。 例如,如图1所示,自定义控件无法通过常规工具来获取,则通过其相对于父窗 口左上角的相对位置的X、Y坐标来获取到控件的位置。相对坐标X、Y不够准确,即使在当 前环境能够准确获取到该控件的具体位置,但是在不同分辨率的屏幕或其他环境下,这个 相对坐标会有差异,这也就使得该方法获取到自定义控件的精确位置。 针对现有技术中无法获取到自定义控件的精确位置的问题,目前尚未提出有效的 解决方案。
技术实现思路
本专利技术的主要目的在于提供一种自定义控件获取方法和装置,以解决现有技术中 无法获取到自定义控件的精确位置的问题。 为了实现上述目的,根据本专利技术实施例的一个方面,提供了一种自定义控件获取 方法,用于用户界面自动化测试。根据本专利技术的自定义控件获取方法包括:获取目标控件的 查询条件,其中,所述目标控件为待获取的自定义控件,所述查询条件为用于查询所述目标 控件的条件;获取所述目标控件所在的父窗口;通过遍历所述父窗口的子控件来查询满足 所述查询条件的控件,将满足所述查询条件的控件作为所述目标控件;在查询到所述目标 控件之后,获取所述目标控件的位置属性,其中,所述位置属性为用于表示所述目标控件位 置的属性;以及通过所述目标控件的位置属性获取所述目标控件的位置信息。 进一步地,通过遍历所述父窗口的子控件来查询满足所述查询条件的控件包括: 判断所述父窗口的子控件中是否存在容器型控件,所述容器型控件内包含有多个控件;以 及如果判断出所述父窗口的子控件中存在所述容器型控件,则通过遍历所述父窗口的子控 件和所述容器型控件中的多个控件来查询满足所述查询条件的控件。 进一步地,所述查询条件包括以下至少之一:所述目标控件的名称、所述目标控件 的控件类型和所述目标控件的Text属性,通过遍历所述父窗口的子控件来查询满足所述 查询条件的控件包括:调用所述父窗口的子控件的名称、控件类型和Text属性;将所述目 标控件的名称、所述目标控件的控件类型和所述目标控件的Text属性分别与调用的所述 父窗口的子控件的名称、控件类型和Text属性进行比对;以及如果所述父窗口的子控件的 名称与所述目标控件的名称一致和/或所述父窗口的子控件的控件类型与所述目标控件 的控件类型一致和/或所述父窗口的子控件的Text属性与所述目标控件的Text属性一 致,则确定所述父窗口的子控件为所述目标控件。 进一步地,通过所述目标控件的位置属性获取所述目标控件的位置信息包括:使 用所述目标控件定义的类调用所述目标控件内部的接口;以及通过调用的所述目标控件内 部的接口获取所述目标控件的位置信息。 进一步地,在获取目标控件的查询条件之前,所述自定义控件获取方法还包括:获 取所述目标控件的动态链接库,其中,所述动态链接库为记录有所述目标控件的位置信息 的文件;将所述动态链接库引用到所述用户界面自动化测试工程,其中,通过所述目标控件 的位置属性获取所述目标控件的位置信息包括:通过所述目标控件的位置属性从引用的所 述动态链接库中获取所述目标控件的位置信息。 为了实现上述目的,根据本专利技术实施例的另一方面,提供了一种自定义控件获取 装置,用于用户界面自动化测试。根据本专利技术的自定义控件获取装置包括:第一获取单元, 用于获取目标控件的查询条件,其中,所述目标控件为待获取的自定义控件,所述查询条件 为用于查询所述目标控件的条件;第二获取单元,用于获取所述目标控件所在的父窗口; 查询单元,用于通过遍历所述父窗口的子控件来查询满足所述查询条件的控件,将满足所 述查询条件的控件作为所述目标控件;第三获取单元,用于在查询到所述目标控件之后,获 取所述目标控件的位置属性,其中,所述位置属性为用于表示所述目标控件位置的属性;以 及第四获取单元,用于通过所述目标控件的位置属性获取所述目标控件的位置信息。 进一步地,所述查询单元包括:判断模块,用于判断所述父窗口的子控件中是否存 在容器型控件,所述容器型控件内包含有多个控件;以及查询模块,用于如果判断出所述父 窗口的子控件中存在所述容器型控件,则通过遍历所述父窗口的子控件和所述容器型控件 中的多个控件来查询满足所述查询条件的控件。 进一步地,所述查询条件包括以下至少之一:所述目标控件的名称、所述目标控件 的控件类型、所述目标控件的Text属性,所述查询单元包括:第一调用模块,用于调用所述 父窗口的子控件的名称、控件类型和Text属性;比对模块,用于将所述目标控件的名称、所 述目标控件的控件类型和所述目标控件的Text属性分别与调用的所述父窗口的子控件的 名称、控件类型和Text属性进行比对;以及确定模块,用于如果所述父窗口的子控件的名 称与所述目标控件的名称一致和/或所述父窗口的子控件的控件类型与所述目标控件的 控件类型一致和/或所述父窗口的子控件的Text属性与所述目标控件的Text属性一致, 则确定所述父窗口的子控件为所述目标控件。 进一步地,所述第四获取单元包括:第二调用模块,用于使用所述目标控件定义的 类调用所述目标控件内部的接口;以及获取模块,用于通过调用的所述目标控件内部的接 口获取所述目标控件的位置信息。 进一步地,所述自定义控件获取装置还包括:第五获取单元,用于在获取目标控件 的查询条件之前,获取所述目标控件的动态链接库,其中,所述动态链接库为记录有所述目 标控件的位置信息的文件;引用单元,用于将所述动态链接库引用到所述用户界面自动化 测试工程,其中,所述第四获取单元还用于通过所述目标控件的位置属性从引用的所述动 态链接库中获取所述目标控件的位置信息。 根据本专利技术实施例,先获取目标控件的查询条件,通过遍历父窗口的子控件来查 询满足查询条件的控件,将满足查询条件的控件作为目标控件,在查询到目标控件之后,获 取目标控件的位置属性,最后通过目标控件的位置属性获取目标控件的位置信息,这样,通 过遍历父窗口的子控件来查找目标控件,然后利用目标控件的位置属性来获取目标控件的 位置信息,以得到目标控件的精确位置,解决了现有技术中无法获取到自定义控件的精确 位置的问题,达到了获取到自定义控件的精确位置的效果。 【附图说明】 构成本申请的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实 施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中: 图1是根据现有技术的一种父窗口的示意图; 图2是根据本专利技术实施例的自定义控件获取方法的流程图; 图3是根据本专利技术实施例的一种自定义控件的示意图;以及 图4是根据本专利技术实施例的自定义控件获取装置的本文档来自技高网...
自定义控件获取方法和装置

【技术保护点】
一种自定义控件获取方法,其特征在于,用于用户界面自动化测试,其中,所述自定义控件获取方法包括:获取目标控件的查询条件,其中,所述目标控件为待获取的自定义控件,所述查询条件为用于查询所述目标控件的条件;获取所述目标控件所在的父窗口;通过遍历所述父窗口的子控件来查询满足所述查询条件的控件,将满足所述查询条件的控件作为所述目标控件;在查询到所述目标控件之后,获取所述目标控件的位置属性,其中,所述位置属性为用于表示所述目标控件位置的属性;以及通过所述目标控件的位置属性获取所述目标控件的位置信息。

【技术特征摘要】
1. 一种自定义控件获取方法,其特征在于,用于用户界面自动化测试,其中,所述自定 义控件获取方法包括: 获取目标控件的查询条件,其中,所述目标控件为待获取的自定义控件,所述查询条件 为用于查询所述目标控件的条件; 获取所述目标控件所在的父窗口; 通过遍历所述父窗口的子控件来查询满足所述查询条件的控件,将满足所述查询条件 的控件作为所述目标控件; 在查询到所述目标控件之后,获取所述目标控件的位置属性,其中,所述位置属性为用 于表示所述目标控件位置的属性;W及 通过所述目标控件的位置属性获取所述目标控件的位置信息。2. 根据权利要求1所述的自定义控件获取方法,其特征在于,通过遍历所述父窗口的 子控件来查询满足所述查询条件的控件包括: 判断所述父窗口的子控件中是否存在容器型控件,所述容器型控件内包含有多个控 件;W及 如果判断出所述父窗口的子控件中存在所述容器型控件,则通过遍历所述父窗口的子 控件和所述容器型控件中的多个控件来查询满足所述查询条件的控件。3. 根据权利要求1所述的自定义控件获取方法,其特征在于,所述查询条件包括W下 至少之一;所述目标控件的名称、所述目标控件的控件类型和所述目标控件的Text属性, 通过遍历所述父窗口的子控件来查询满足所述查询条件的控件包括: 调用所述父窗口的子控件的名称、控件类型和Text属性; 将所述目标控件的名称、所述目标控件的控件类型和所述目标控件的Text属性分别 与调用的所述父窗口的子控件的名称、控件类型和Text属性进行比对;W及 如果所述父窗口的子控件的名称与所述目标控件的名称一致和/或所述父窗口的子 控件的控件类型与所述目标控件的控件类型一致和/或所述父窗口的子控件的Text属性 与所述目标控件的Text属性一致,则确定所述父窗口的子控件为所述目标控件。4. 根据权利要求1所述的自定义控件获取方法,其特征在于,通过所述目标控件的位 置属性获取所述目标控件的位置信息包括: 使用所述目标控件定义的类调用所述目标控件内部的接口; W及 通过调用的所述目标控件内部的接口获取所述目标控件的位置信息。5. 根据权利要求1所述的自定义控件获取方法,其特征在于,在获取目标控件的查询 条件之前,所述自定义控件获取方法还包括: 获取所述目标控件的动态链接库,其中,所述动态链接库为记录有所述目标控件的位 置信息的文件; 将所述动态链接库引用到所述用户界面自动化测试工程, 其中,通过所述目标控件的位置属性获取所述目标控件的位置信息包括;通过所述目 标控件的位置属性从引用的所述动态链接库中获取所述目标控件的位置信息。6. -种自定义控件获取装置,其...

【专利技术属性】
技术研发人员:宋兰
申请(专利权)人:北京国双科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1