滑动控件的识别方法、装置和电子设备与流程
未命名
07-29
阅读:138
评论:0
1.本发明涉及计算机技术领域,尤其是涉及一种滑动控件的识别方法、装置和电子设备。
背景技术:
2.在应用程序的界面中,经常出现滑动控件。由于界面的显示区域有限,如果某个ui(user interface,用户界面)模块中的内容较多,不能同时将全部内容显示在界面上,该情况下需要使用滑动控件,用户通过对滑动控件执行滑动操作,查看ui模块中没有显示在界面上的内容。在程序测试时,需要先识别出应用程序中的滑动控件,相关技术中,可以从ui界面程序中,根据节点的属性判断某一节点是否是滑动控件,由于不同的应用程序中的滑动控件属性是不同的,所以该方式的通用性较差;也可以通过图像识别的方式识别滑动控件,但该方式需要大量的人力成本训练识别模型,同时识别的准确率较低。
技术实现要素:
3.有鉴于此,本发明的目的在于提供一种滑动控件的识别方法、装置和电子设备,以提升识别工具的通用性和识别准确率。
4.第一方面,本发明实施例提供了一种滑动控件的识别方法,识别目标页面中的点击控件,得到第一识别结果;其中,第一识别结果中包括:点击控件在目标页面中的控件显示区域;其中,点击控件为可执行点击操作的控件;确定第一识别结果中是否存在满足预设条件的多个点击控件;其中,预设条件包括:多个点击控件的控件显示区域具有预设的几何关系,和/或,多个点击控件的控件节点具有预设的节点层级关系;如果存在满足预设条件的多个点击控件,确定多个点击控件属于同一滑动控件,基于多个点击控件得到滑动控件的识别结果;其中,滑动控件为可执行滑动操作的控件。
5.第二方面,本发明实施例提供了一种滑动控件的识别装置,该装置包括:第一识别模块,用于识别目标页面中的点击控件,得到第一识别结果;其中,第一识别结果中包括:点击控件在目标页面中的控件显示区域;其中,点击控件为可执行点击操作的控件;第一确定模块,用于确定第一识别结果中是否存在满足预设条件的多个点击控件;其中,预设条件包括:多个点击控件的控件显示区域具有预设的几何关系,和/或,多个点击控件的控件节点具有预设的节点层级关系;第一获取模块,用于如果存在满足预设条件的多个点击控件,确定多个点击控件属于同一滑动控件,基于多个点击控件得到滑动控件的识别结果;其中,滑动控件为可执行滑动操作的控件。
6.第三方面,本发明实施例提供了一种滑动控件的识别设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现上述滑动控件的识别方法。
7.第四方面,本发明实施例提供了一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理
器实现上述滑动控件的识别方法。
8.本发明实施例带来了以下有益效果:
9.上述滑动控件的识别方法、装置和电子设备,识别目标页面中的点击控件,得到第一识别结果;其中,第一识别结果中包括:点击控件在目标页面中的控件显示区域;其中,点击控件为可执行点击操作的控件;确定第一识别结果中是否存在满足预设条件的多个点击控件;其中,预设条件包括:多个点击控件的控件显示区域具有预设的几何关系,和/或,多个点击控件的控件节点具有预设的节点层级关系;如果存在满足预设条件的多个点击控件,确定多个点击控件属于同一滑动控件,基于多个点击控件得到滑动控件的识别结果;其中,滑动控件为可执行滑动操作的控件。该方式中,识别目标页面中的点击控件,通过点击控件的控件显示区域的几何关系和控件节点的节点层级关系,确定属于同一滑动控件的多个点击控件,进而得到滑动控件的识别结果。该方式可以识别各类应用程序中的滑动控件,通用性强,且具有较高的识别准确率。
10.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
11.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
12.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1为本发明实施例提供的一种滑动控件的识别方法的流程图;
14.图2为本发明实施例提供的一种第一识别结果的示意图;
15.图3为本发明实施例提供的一种点击控件的节点层级结构示意图;
16.图4为本发明实施例提供的一种用户界面示意图;
17.图5为本发明实施例提供的另一种用户界面示意图;
18.图6为本发明实施例提供的另一种用户界面示意图;
19.图7为本发明实施例提供的另一种用户界面示意图;
20.图8为本发明实施例提供的另一种用户界面示意图;
21.图9为本发明实施例提供的一种滑动控件的识别装置的示意图;
22.图10为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.在应用程序(application program,简称app)的界面中,用户最常进行的操作就是点击和滑动。如果当前页面中,某个ui模块的内容较多,无法全部显示在屏幕中,一般就会使用滑动控件来显示相关信息,用户可以通过对滑动控件进行滑动,来控制当前显示在屏幕中的内容。在app自动化测试领域,尤其是稳定性测试任务中,需要模拟用户可能进行的所有操作。准确获取到app中点击、滑动等各类型的控件,是实现高覆盖率的基础。
25.相关技术中,一般可以利用识别工具采用程序插桩的方式获取app当前界面的所有ui控件信息来识别控件,具体地,可以通过使用识别工具获取ui控件在当前页面的整个ui树结构,以及各个控件节点的详细信息和当前用户界面的截图,进一步地,可以根据控件节点的type属性判断当前节点对应的控件是否是滑动控件。然而,程序插桩的方式虽然能获取到比较详细的ui信息,但缺乏普适的滑动控件识别方案。造成上述问题的原因在于,不同app实现滑动控件的技术方案不一致,很难用一套通用的框架去获取到各类app中的滑动控件。同时,对于游戏app来说,不同游戏app可能采用了不同的游戏引擎,因此识别游戏app中的滑动控件更加困难。例如使用获取ui信息时,不同app中滑动控件的type属性是不同的,无法从节点的属性信息中直接判断是否存在滑动控件。
26.相关技术中,除了程序插桩方式外,还可以采用基于图像识别ui控件的方式。该方式需要预先收集大量的app截图,并将这些截图中存在的ui控件标注出来作为训练数据;然后利用上述数据在成熟的目标检测模型上进行训练。训练完成后,以app当前页面的截图作为模型的输入,识别出截图中存在的ui控件。该方式需要预先消耗大量的人力成本标注数据,且无法保证识别的准确率,同时也无法获取到详细的ui信息,识别的准确率较低。
27.基于上述,本发实施例提供的一种滑动控件的识别方法、装置及电子设备,该技术可以应用于各类app控件测试,尤其是游戏app之中。
28.为便于对本实施例进行理解,首先对本发明实施例所公开的一种滑动控件的识别方法进行详细介绍,如图1所示,该方法包括如下步骤:
29.步骤s102,识别目标页面中的点击控件,得到第一识别结果;其中,该第一识别结果中包括:点击控件在目标页面中的控件显示区域;其中,点击控件为可执行点击操作的控件;
30.上述点击控件可以是通过单击、双击等点击控件的方式触发的控件;上述控件显示区域可以是识别工具识别到控件在目标页面的显示区域。利用识别工具识别目标页面中的点击控件,可以识别出点击控件的属性信息,例如:控件在目标页面上的控件显示区域及控件显示区域位置尺寸、控件类型、控件层级路径等信息。在这里,识别目标页面中的点击控件,得到第一识别结果,该第一识别结果包括点击控件在目标页面中的控件显示区域。
31.通过识别工具识别后的第一识别结果的效果图如图2所示,图中图标为目标页面上的一个点击控件,虚线线框部分为该点击控件对应的第一识别结果,每个虚线线框部分都会对应一个数值代表点击控件的编号,图2中编号1-编号6分别对应一个点击控件。根据目标页面上控件的多少,第一识别结果中控件显示区域的数量可以是一个或多个。
32.步骤s104,确定第一识别结果中是否存在满足预设条件的多个点击控件;其中,该预设条件包括:多个点击控件的控件显示区域具有预设的几何关系,和/或,多个点击控件的控件节点具有预设的节点层级关系;
33.上述几何关系可以理解为,多个点击控件的控件显示区域在宽度、高度上的尺寸
大小关系,也可以是控件在目标页面上的排列关系,示例地,预设几何关系可以是多个点击控件的控件显示区域具有相同宽度或高度。
34.上述控件节点的层级关系,可以理解为,应用程序页面中的页面内容预设有节点,根据页面内容之间的从属关系,以页面上一个点击控件为一个节点,控件节点之间也建立有层级关系,下一层级的控件节点对应的页面内容从属于上一层级的控件节点对应的页面内容。
35.在这里,可以通过识别工具获取目标页面上,控件对应的控件显示区域和控件节点的节点层级,以点击控件的控件显示区域的几何关系和控件节点的节点层级关系作为预设条件,从第一识别结果中筛选出满足预设条件的多个点击控件,为后续滑动控件的识别做准备。需要说明的是,该预设条件可以是多个点击控件同时满足控件显示区域具备预设的几何关系和控件节点具备预设的节点层级关系,也可以仅仅满足几何关系或节点层级关系之一。
36.步骤s106,如果存在满足预设条件的多个点击控件,确定多个点击控件属于同一滑动控件,基于多个点击控件得到滑动控件的识别结果;其中,滑动控件为可执行滑动操作的控件。
37.上述滑动控件是由若干点击控件作为子控件组成的组合控件,通过执行滑动操作可以改变滑动控件中点击控件的位置,某些滑动控件会包含上百个点击控件,需要连续朝一个方向滑动数十次,才能看到其最底部的点击控件。因此,滑动模块不仅包含点击模块,还需要能够执行滑动操作。
38.在这里,当第一识别结果中存在满足预设条件的多个点击控件,可以确定这些点击控件属于同一滑动控件,再结合上述多个点击控件的分布状态等信息确定这些点击控件是否具有可滑动性,进而确定组成的滑动控件是否能够执行滑动操作,当滑动控件能够执行滑动操作时,才可以将上述多个点击控件组成的滑动控件确定为最终识别的滑动控件,该最终识别的滑动控件作为识别工具识别滑动控件的识别结果。
39.该方式下,根据几何关系或节点层级关系,将满足预设条件的多个点击控件确定为同一滑动控件,再结合多个点击控件得到滑动控件的识别结果,该方式通用性强,不受限于识别工具的具体技术路线,解决了现有识别工具无法识别准确识别不同应用程序中滑动控件的难题。
40.上述滑动控件的识别方法,识别目标页面中的点击控件,得到第一识别结果;其中,第一识别结果中包括:点击控件在目标页面中的控件显示区域;其中,点击控件为可执行点击操作的控件;确定第一识别结果中是否存在满足预设条件的多个点击控件;其中,预设条件包括:多个点击控件的控件显示区域具有预设的几何关系,和/或,多个点击控件的控件节点具有预设的节点层级关系;如果存在满足预设条件的多个点击控件,确定多个点击控件属于同一滑动控件,基于多个点击控件得到滑动控件的识别结果;其中,滑动控件为可执行滑动操作的控件。该方式中,识别目标页面中的点击控件,通过点击控件的控件显示区域的几何关系和控件节点的节点层级关系,确定属于同一滑动控件的多个点击控件,进而得到滑动控件的识别结果。该方式可以识别各类应用程序中的滑动控件,通用性强,且具有较高的识别准确率。
41.下述实施例提供预设条件的具体实现形式。如前文所述,预设条件可以是多个点
击控件同时满足控件显示区域具备预设的几何关系和控件节点具备预设的节点层级关系,也可以仅仅满足几何关系或节点层级关系之一。
42.一种方式下,预设条件包括:多个点击控件的控件显示区域具有预设的几何关系;其中,该几何关系包括:多个点击控件的控件显示区域在指定维度上的尺寸相同;指定维度包括:宽度维度和/或高度维度;和/或,多个点击控件的控件显示区域沿着指定方向排列;指定方向包括:竖直方向和/或水平方向。
43.上述预设几何关系,可以是要求多个点击控件同时满足,控件显示区域在指定维度上的尺寸相同和多个点击控件的控件显示区域沿着指定方向排列两个条件;也可以仅仅满足控件显示区域在指定维度上的尺寸相同,或个点击控件的控件显示区域沿着指定方向排列条件之一。其中,指定维度可以是宽度维度和高度维度,也可以仅仅是宽度维度或高度维度之一。指定方向可以是竖直方向和水平方向,也可以仅仅是竖直方向或水平方向之一
44.示例地,预设的几何条件可以是要求多个点击控件的显示区域具有相同的宽度和高度尺寸,并且在目标页面空间上的分布属于竖直方向间隔排列、水平方向间隔排列两种排列中的一种。
45.另一种方式下,上述预设条件包括:多个点击控件的控件节点具有预设的节点层级关系;其中,节点层级关系包括:多个点击控件的节点层级路径的长度相同;点击控件属于所述目标页面的页面内容;目标页面中的页面内容预设有节点;基于页面内容之间的从属关系,节点之间建立有层级关系;下一层级的节点对应的页面内容从属于上一层级的节点对应的页面内容。
46.如前文所述,控件节点之间也建立有层级关系,下一层级的控件节点对应的页面内容从属于上一层级的控件节点对应的页面内容。在当前页面获取到的控件的节点层级结构一般呈树状结构,每个节点都拥有一个相对于根节点的路径,也就是节点层级路径,节点层级路径可以指示控件节点的层级位置。比如,节点层级路径[2,3,1]代表为该控件节点是根节点第2个子节点的第3个子节点的第1个子节点。
[0047]
也就是说,预设条件包括节点层级关系,可以是多个点击控件的节点层级路径的长度相同,当目标页面中多个点击控件的节点层级路径的长度相同时,可以确定这些点击控件属于同一个滑动控件。以图3所示的控件的节点层级结构为例,5至8号节点的路径分别为[1,2,1],[1,2,2],[1,2,3],[1,2,4],路径长度均等于3,因此5至8号节点满足预设条件中的节点层级关系条件。
[0048]
上述实施例中提供了预设条件中确定几何条件和节点层级关系的几种实现形式,明确多个点击控件间的几何关系和层级关系,为后续确定同一个滑动控件包含的点击控件做了准备。
[0049]
下述实施例提供确定第一识别结果中是否存在满足预设条件的多个点击控件的具体实现形式。
[0050]
具体地,从第一识别结果中确定基准点击控件;针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足预设条件的目标点击控件;如果存在目标点击控件,将基准点击控件和目标点击控件确定为满足预设条件的多个点击控件。
[0051]
上述基准点击控件可以理解为,是为了筛选出满足前述预设条件的多个点击控件
而设置的模板控件。根据基准点击控件的状态条件进行筛选,可以得到与基准点击控件满足预设条件的目标点击控件,则基准点击控件和目标点击控件确定为满足预设条件的多个点击控件。
[0052]
具体地,针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足第一条件的第一点击控件;其中,第一条件包括:第一点击控件与基准点击控件的横坐标相同、控件显示区域的宽度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;针对第一识别结果中除基准点击控件和所述第一点击控件以外的点击控件,确定是否存在与基准点击控件或第一点击控件满足第二条件的第二点击控件;其中,第二条件包括:第二点击控件与基准点击控件或第一点击控件的纵坐标相同、控件显示区域的高度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;将第一点击控件和第二点击控件确定为目标点击控件。
[0053]
需要说明的是,第一条件可以是第一点击控件满足与基准点击控件的横坐标相同、控件显示区域的宽度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;一些情况下,第一条件也可以是需要第一点击控件,同时满足与基准点击控件的横坐标相同、控件显示区域的宽度相同、节点层级路径的长度相同、节点类型相同这四个条件。同样的,第二条件可以是第二点击控件满足与基准点击控件或第一点击控件的纵坐标相同、控件显示区域的高度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;一些情况下,第一条件也可以是需要第二点击控件,同时满足与基准点击控件或第一点击控件的纵坐标相同、控件显示区域的高度相同、节点层级路径的长度相同、节点类型相同。
[0054]
实际实现时,确定目标点击控件的过程可以参考下述方式进行:
[0055]
1)将目标页面中的点击控件按从上至下,从左至右的顺序进行排列,取第一个点击控件作为基准点击控件;
[0056]
2)在第一识别结果中搜索同时满足与基准点击控件横坐标相同、控件显示区域宽度相同、路径长度相同、节点类型相同的点击控件,将这些点击控件确定为上述第一点击控件;
[0057]
3)将第一控件或基准点击控件作为水平锚点控件,以每个水平锚点控件为标准分别进行搜索,在第一识别结果中继续寻找和水平锚点控件纵坐标相同、控件显示区域高度相同、路径长度相同、节点类型相同的点击控件,搜索到的这些控件就是上述第二点击控件;
[0058]
4)将第一点击控件和第二点击控件确定为目标点击控件。
[0059]
进一步地,目标点击控件后,将基准点击控件和目标点击控件作为一个控件集合;其中,属于同一控件集合的点击控件属于同一滑动控件;将基准点击控件和目标点击控件从第一识别结果中剔除,得到包含剩余控件的第一识别结果;继续执行下述步骤,直至第一识别结果中的剩余控件的数量小于预设数量阈值:从第一识别结果中确定基准点击控件;针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足预设条件的目标点击控件;如果存在目标点击控件,将基准点击控件和目标点击控件确定为满足预设条件的多个点击控件。
[0060]
也就是说,得到目标点击控件后,将基准点击控件和筛选得到的目标点击控件确定为同一个滑动控件包含的点击控件,接着,在第一识别结果中剔除基准点击控件和目标
点击控件的控件显示区域后,继续在第一识别结果中的剩余控件中确定基准点击控件,执行前述确定目标点击控件的过程,直至第一识别结果中的剩余控件的数量小于预设数量阈值。
[0061]
下述实施例提供得到滑动控件的识别结果的具体实现方式。
[0062]
如前文所述,滑动模块不仅包含点击模块,还需要能够执行滑动操作。因此,需要对上述多个点击控件进行再次校验,推断滑动控件的滑动方向。
[0063]
基于多个点击控件的控件显示区域的分布状态,确定多个点击控件的排列方式;其中,该排列方式包括:沿竖直方向排列、沿水平方向排列或网格状排列;基于排列方式,以及多个点击控件的控件显示区域在指定维度上的尺寸,校验多个点击控件组成的滑动控件是否可执行滑动操作;如果多个点击控件组成的滑动控件可执行滑动操作,将多个点击控件组成的滑动控件确定为最终识别的滑动控件。
[0064]
也就是说,根据目标点击控件在目标页面中显示区域的分布状态,确定目标点击控件的排列方式,例如,沿竖直方向排列、沿水平方向排列或网格状排列。根据排列方式以及目标点击控件的控件显示区域高度或宽度尺寸大小,可以校验多个目标点击控件组成的滑动控件是否可执行滑动操作,如果滑动控件可执行滑动操作,那么由多个目标点击控件组成的滑动控件确定为最终识别的滑动控件。
[0065]
实际实现时,可以采取以下方式校验滑动控件是否可执行滑动操作:
[0066]
如果排列方式为沿竖直方向排列,且控件显示区域的宽度与高度的比值大于第一比值阈值,确定多个点击控件组成的滑动控件可执行滑动操作;如果排列方式为沿水平方向排列,且控件显示区域的高度与宽度的比值大于第二比值阈值,确定多个点击控件组成的滑动控件可执行滑动操作;如果排列方式为网格状排列,确定多个点击控件组成的滑动控件可执行滑动操作。
[0067]
可以理解的,只有点击控件可以发生滑动,那么这些目标点击控件组成的滑动控件就可以执行滑动操作。而根据ui设计习惯,可竖直滑动的点击控件一般都是宽度大于高度的,可水平滑动的点击控件一般都是高度大于宽度。因此,可以设置第一比值阈值和第二比值阈值,当多个目标点击控件的排列方式为沿竖直方向排列,且控件显示区域的宽度与高度的比值大于第一比值阈值,可以确定由该目标点击控件组成的滑动控件可执行滑动操作;当多个目标点击控件的排列方式为沿水平方向排列,且控件显示区域的高度与宽度的比值大于第二比值阈值,可以确定由该目标点击控件组成的滑动控件可执行滑动操作;当多个目标点击控件的排列方式为网格状排列,可以直接确定由该目标点击控件组成的滑动控件可执行滑动操作。
[0068]
相应的,也可以确定滑动控件的方向,具体地,如果排列方式为沿竖直方向排列,且控件显示区域的宽度与高度的比值大于第一比值阈值,确定多个点击控件组成的滑动控件的滑动方向为竖直方向;如果排列方式为沿水平方向排列,且控件显示区域的高度与宽度的比值大于第二比值阈值,确定多个点击控件组成的滑动控件的滑动方向为水平方向;如果排列方式为网格状排列,确定多个点击控件组成的滑动控件的滑动方向为竖直方向。
[0069]
实际实现时,校验滑动控件的可滑动性并推断滑动控件的滑动方向的过程,可以通过下述方式实现:
[0070]
a.假设目标点击控件有x排、y列,若min(x,y)≥p1(p1为自定义的阈值,为大于1的
整数),则目标点击控件呈网格状排列,可判断这些目标点击控件组成了滑动控件,并且默认滑动控件能沿竖直方向滑动,如图4所示用户界面中左侧的滑动控件a。
[0071]
b.若x≥p1,y小于p1,则认为目标点击控件沿竖直方向排列。假设目标点击控件的控件显示区域宽度和高度分别为w、h。若w/h》p2(p2为自定义的阈值,0《p2《1),则可判断这些目标点击控件组成了滑动控件,并且默认滑动控件能沿竖直方向滑动。通过控件显示区域的宽度和高度进行二次校验是为了降低误识别,例如,以图4右上角的3、4、5控件为例,这三个控件可以组成一组目标点击控件,但实际上这三个点击控件不可滑动。根据ui设计习惯,能沿水平方向滑动的滑动控件其点击控件的宽度应该是小于高度的,而这4个点击控件的宽度远大于高度,可以据此判断这些控件大概率不是滑动控件。因此,可降低误识别。
[0072]
c.若y≥p1,x《p1,则认为目标点击控件沿水平方向排列。若还满足h/w》p2,则可判断这些目标点击控件组成了滑动控件,并且默认滑动控件能沿水平方向滑动。
[0073]
值得注意的是,有时滑动控件中的每个点击控件还有子控件,如图5中滑动模块s1包含的1号-9号点击控件上均含有一个子控件。这些子控件10-18控件之间也具备预设条件,组合起来也会被识别成新的滑动控件,但实际上滑动控件滑动的同时,这些子控件也会跟随滑动,识别成两个滑动控件会造成滑动控件的冗余。针对这种情况,在对滑动控件进行识别过程中,需要设置如下滑动控件去重规则:
[0074]
如果识别结果中包括多个滑动控件,确定任意两个滑动控件的控件显示区域的重合程度;如果存在第一滑动控件和第二滑动控件对应的重合程度高于预设程度阈值,基于第一滑动控件和第二滑动控件的节点层级路径,从识别结果中删除第一滑动控件或第二滑动控件。
[0075]
上述控件显示区域的重合程度可以通过计算滑动控件两两之间控件显示区域的交并比得到,当计算得到的重合程度高于预设程度阈值,需要根据两个滑动控件的节点层级路径,从识别结果中删除其中一个滑动控件。
[0076]
具体地,如果第一滑动控件的节点层级路径的路径长度长于第二滑动控件的节点层级路径的路径长度,从识别结果中删除第一滑动控件;如果第二滑动控件的节点层级路径的路径长度长于第一滑动控件的节点层级路径的路径长度,从识别结果中删除第二滑动控件。
[0077]
也就是说,对于重合程度高于阈值的两个滑动控件,舍弃点击控件路径更长的滑动控件。
[0078]
示例地,如图5所示,1、2、3、4、5、6、7、8、9这9个点击控件被识别为一个滑动控件s1。此外,10、11、12、13、14、15、16、17、18等点击控件又被识别为一个新的滑动控件s2。显然s1和s2中有一个是冗余的,需要被舍弃。根据识别工具识别到的节点层级路径,得到10号点击控件是1号点击控件的子节点,说明s2所包含的点击控件是s1所包含的点击控件的子节点,对s1进行滑动操作,会使s2所包含的点击控件跟着滑动,因此s2是冗余的。按照上文提到的滑动控件去重规则,由于10号的路径长度要长于1号;又由于滑动控件s1和s2高度重合,因此将冗余滑动控件s2给过滤掉。
[0079]
在一个实施例中,详细介绍了图6左侧滑动控件s3被识别到的过程:以1号点击控件作为基准点击控件,通过识别工具寻找与控件显示区域的横坐标相同、宽度相同、路径长度相同、节点类型相同的点击控件。寻找完成后,可以发现2、3、4、5、6、7这6个控件均满足条
件,因此,1号点击控件沿竖直方向搜索到了6个可能与其同属于一个滑动控件的点击控件,这六个点击控件就是第一点击控件。接下来以1、2、3、4、5、6、7这7个点击控件作为水平锚点控件,寻找和这些水平锚点控件纵坐标相同、高度相同、路径长度相同、节点类型相同的点击控件,显然当前页面没有满足条件的控件。因此沿竖直和水平方向搜索完毕后,当前共有1、2、3、4、5、6、7这7个目标点击控件,这些控件呈7排1列,因此x=11,y=1.
[0080]
由于x≥p1,y《p1(这里p1取3),因此判断该滑动控件是竖直方向上的滑动控件。接下来根据点击控件的宽和高再次进行校验。1号点击控件的宽度明显高于高度,即,w/h》p2(p2取的0.8),因此二次校验通过,可以判定1、2、3、4、5、6、7组成了可以沿竖直方向滑动的滑动控件。
[0081]
该方式下,通过控件显示区域的几何关系和控件节点的节点层级关系,在页面中能识别出滑动控件,得到滑动控件的滑动方向和包含的点击控件,该方式通用性强,不受限于识别工具的具体技术路线,提升了识别工具的通用性和识别准确率。
[0082]
在实际应用中,由于受屏幕大小限制,当前页面中可能只会显示滑动控件包含的个别点击控件,该滑动控件的其他点击控件只能在下个页面中展示,但是现有的识别工具只能对当前页面的控件进行识别,无法融合多个页面的控件信息、更无法获取滑动控件的完整信息。而对于控件识别,不仅需要识别到滑动控件,还希望获取到其包含的所有点击控件。
[0083]
基于此,本技术公开了一种多页面滑动控件的合并方式:
[0084]
具体地,获取目标页面的后续页面,以及后续页面的滑动控件的识别结果;后续页面的显示时间在目标页面的显示时间之后;如果目标页面中的第三滑动控件,与后续页面中的第四滑动控件存在相同的点击控件,确定第三滑动控件和第四滑动控件为同一滑动控件,合并第三滑动控件和第四滑动控件中的点击控件。
[0085]
也就是说,获取在目标页面后面显示的后续页面,通过前述滑动控件识别过程得到后续页面的滑动控件的识别结果,如果两个页面中存在含有相同点击控件的滑动控件,则这些滑动控件视为同一个滑动控件,并且合并这些滑动控件中的点击控件。
[0086]
实际实现时,可以通过如下方式对不同页面的滑动控件中的点击控件进行合并:沿着第三滑动控件的滑动方向,排列第三滑动控件中的点击控件,得到第一序列;沿着第四滑动控件的滑动方向,排列第四滑动控件中的点击控件,得到第二序列;基于第三滑动控件与第四滑动控件的相同点击控件,分别在第一序列和第二序列中的位置,合并第一序列和第二序列,得到合并后的点击控件。
[0087]
也就是说,根据目标页面和后续页面中同一滑动控件的滑动方向,将其所属的点击控件按滑动控件的滑动方向排序,例如:从上至下、从左至右的顺序排序,得到第一序列、第二序列,根据两个滑动控件的相同点击控件分别在第一序列和第二序列中的位置,合并两个系列,得到合并后的点击控件序列及控件信息。
[0088]
该方式下,将不同页面中含有相同点击控件的滑动控件,按照滑动控件的滑动方向对各个滑动控件点击控件排序,通过序列合并实现滑动控件的合并。若同一个滑动控件多次被识别到,通过上述方式能不断对其所包含的点击控件进行补充,使获取到的滑动控件的控件信息更加完整。
[0089]
为了提高滑动控件的合并效率,还可以借助控件库对滑动控件进行管理:
[0090]
第一步:创建点击控件库。
[0091]
每次获取到目标页面的控件信息后,将识别到的点击控件与点击控件库中的进行对比。若当前识别到的某个点击控件a与点击控件库中的某个点击控件b的信息高度一致,则认为a和b是同一个点击控件,令a沿用b在点击控件库中的编号。若当前识别到的某个点击控件a与控件库中所有点击控件都不相同,则为a分配新的编号,并将其添加到控件库中。其中,信息高度一致的判定方法可以为:控件a和b的控件显示区域截图高度相似,并且a和b的节点层级路径的长度、节点类型均相同。
[0092]
以图7中的(a)和(b)为例,其中(a)出现的时间早于(b),因此首先对(a)的控件进行识别,为识别到的点击控件分配编号,并将这些点击控件添加到控件库中。然后对(b)中的点击控件进行识别,并将这些控件与控件库中的进行对比。(b)中的2号点击控件和(a)中的2号点击控件是同一个点击控件,因此(b)中的2号控件沿用了(a)中的2号控件的编号(2号);(b)中的3号点击控件是(a)中没有的,因此为其分配新的编号(3号),并将其添加到控件库中。
[0093]
第二步:创建滑动控件库。
[0094]
每次识别到滑动控件后,将其所属的点击控件按从上至下、从左至右的顺序进行排序,然后建立序列,该序列可以以链表结构展示,令前一个控件指向下一个控件。图7中的(a)左侧滑窗对应的链表可表示为:1
→
20
→
25
→
29。若这些点击控件不属于滑动控件库中其他滑动控件,则将本次识别到的滑动控件作为新的滑动控件添加到滑动控件库中;否则进行滑动控件的合并。
[0095]
另一个实施例中,以图8为例,图8中的(a)、(b)、(c)依次出现。首先记录图8中的(a)中左侧滑动控件的链表为17
→
20
→
25
→
29,将该滑动控件称为a并添加到滑动控件库中。
[0096]
对于图8中的(b)左侧的滑动控件,其包含点击控件为40、42、44、46,对应的链表为40
→
42
→
44
→
46,称该滑动控件为b。b与当前滑动控件库中a所包含的点击控件不重合,因此认定b为新的滑动控件将其添加到滑动控件库中。此时滑动控件库中有a、b两个滑动控件。
[0097]
对于图8中的(c)左右侧的滑动控件,其包含的点击控件为20、25、29、40,对应的链表为20
→
25
→
29
→
40,称该滑动控件为c。c所包含的点击控件中20、25、29属于a,40属于b,因此判断c和a以及c和b是同一个控件(即a、b、c为同一个滑动控件),需要进行合并。
[0098]
第三步:滑动控件的合并。
[0099]
对于需要合并的若干滑动控件,可以通过链表的形式整合点击控件信息,并创建新的滑动控件以替换原有的若干滑动控件。
[0100]
以合并a、b、c的步骤为例:
[0101]
(1)创建a时建立的链表为17
→
20
→
25
→
29。
[0102]
(2)创建b时建立的链表为40
→
42
→
44
→
46。
[0103]
(3)创建c时建立的链表为20
→
25
→
29
→
40。
[0104]
(4)统计a、b、c所包含的点击控件为17、20、25、29、40、42、44、46,这些点击控件中,只有17号控件指向了别的控件且没有被别的控件指向,因此17号控件是链表的头。从17号控件开始查询指向,可得到新的链表17
→
20
→
25
→
29
→
40
→
42
→
44
→
46。
[0105]
(5)创建新的滑动控件对象d,记录d的控件为17、20、25、29、40、42、44、46,d的链表为17
→
20
→
25
→
29
→
40
→
42
→
44
→
46,从滑动控件库中移除a、b,将d添加至滑动控件库中。
[0106]
合并完成后当我们看到图8中的(c)时,能根据d所储存的链表推断出20号控件上方还有17号控件,能推断出40号控件下方还依次有42、44、46三个点击控件。通过滑动控件的匹配与合并,获取了更加完整的ui信息。
[0107]
上述遍历测试任务中,根据滑动控件合并方法,能够动态的对识别到的滑动控件信息进行补充,有助于提升遍历的效率和覆盖率。
[0108]
对应于上述方法实施例,参见图9所示的一种滑动控件的识别装置;该装置包括:
[0109]
第一识别模块902,用于识别目标页面中的点击控件,得到第一识别结果;其中,第一识别结果中包括:点击控件在目标页面中的控件显示区域;其中,点击控件为可执行点击操作的控件;
[0110]
第一确定模块904,用于确定第一识别结果中是否存在满足预设条件的多个点击控件;其中,预设条件包括:多个点击控件的控件显示区域具有预设的几何关系,和/或,多个点击控件的控件节点具有预设的节点层级关系;
[0111]
第一获取模块906,用于如果存在满足预设条件的多个点击控件,确定多个点击控件属于同一滑动控件,基于多个点击控件得到所述滑动控件的识别结果;其中,滑动控件为可执行滑动操作的控件。
[0112]
该方式中,识别目标页面中的点击控件,通过控件显示区域的几何关系和控件节点的节点层级关系,确定多个点击控件是否属于同一滑动控件,得到滑动控件的识别结果。该方式通用性强,不受限于识别工具的具体技术路线,提升了识别工具的通用性和识别准确率。
[0113]
上述预设条件包括:多个点击控件的控件显示区域具有预设的几何关系;其中,几何关系包括:多个点击控件的控件显示区域在指定维度上的尺寸相同;指定维度包括:宽度维度和/或高度维度;和/或,多个点击控件的控件显示区域沿着指定方向排列;指定方向包括:竖直方向和/或水平方向。
[0114]
上述预设条件包括:多个点击控件的控件节点具有预设的节点层级关系;其中,节点层级关系包括:多个点击控件的节点层级路径的长度相同;点击控件属于所述目标页面的页面内容;目标页面中的页面内容预设有节点;基于页面内容之间的从属关系,节点之间建立有层级关系;下一层级的节点对应的页面内容从属于上一层级的节点对应的页面内容。
[0115]
上述第一确定模块,还用于从第一识别结果中确定基准点击控件;针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足预设条件的目标点击控件;如果存在目标点击控件,将基准点击控件和目标点击控件确定为满足预设条件的多个点击控件。
[0116]
上述装置还包括第二确定模块,用于针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足第一条件的第一点击控件;其中,第一条件包括:第一点击控件与基准点击控件的横坐标相同、控件显示区域的宽度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;针对第一识别结果中除基准点击控件和所述第一点击控件以外的点击控件,确定是否存在与基准点击控件或所述第一点击控件满足第
二条件的第二点击控件;其中,第二条件包括:第二点击控件与基准点击控件或第一点击控件的纵坐标相同、控件显示区域的高度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;将第一点击控件和第二点击控件确定为目标点击控件。
[0117]
上述装置还包括第三确定模块,用于将基准点击控件和目标点击控件作为一个控件集合;其中,属于同一控件集合的点击控件属于同一滑动控件;将基准点击控件和目标点击控件从所述第一识别结果中剔除,得到包含剩余控件的第一识别结果;继续执行下述步骤,直至第一识别结果中的剩余控件的数量小于预设数量阈值:从第一识别结果中确定基准点击控件;针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足预设条件的目标点击控件;如果存在目标点击控件,将基准点击控件和目标点击控件确定为满足预设条件的多个点击控件。
[0118]
上述第一获取模块,还用于基于多个点击控件的控件显示区域的分布状态,确定多个点击控件的排列方式;其中,排列方式包括:沿竖直方向排列、沿水平方向排列或网格状排列;基于排列方式,以及多个点击控件的控件显示区域在指定维度上的尺寸,校验多个点击控件组成的滑动控件是否可执行滑动操作;如果多个点击控件组成的滑动控件可执行滑动操作,将多个点击控件组成的滑动控件确定为最终识别的滑动控件。
[0119]
上述装置还包括第四确定模块,用于如果排列方式为沿竖直方向排列,且控件显示区域的宽度与高度的比值大于第一比值阈值,确定多个点击控件组成的滑动控件可执行滑动操作;如果排列方式为沿水平方向排列,且控件显示区域的高度与宽度的比值大于第二比值阈值,确定多个点击控件组成的滑动控件可执行滑动操作;如果排列方式为网格状排列,确定多个点击控件组成的滑动控件可执行滑动操作。
[0120]
上述装置还包括第五确定模块,用于如果排列方式为沿竖直方向排列,且控件显示区域的宽度与高度的比值大于第一比值阈值,确定多个点击控件组成的滑动控件的滑动方向为竖直方向;如果排列方式为沿水平方向排列,且控件显示区域的高度与宽度的比值大于第二比值阈值,确定多个点击控件组成的滑动控件的滑动方向为水平方向;如果排列方式为网格状排列,确定多个点击控件组成的滑动控件的滑动方向为竖直方向。
[0121]
上述装置还包括第一删除模块,用于如果识别结果中包括多个滑动控件,确定任意两个滑动控件的控件显示区域的重合程度;如果存在第一滑动控件和第二滑动控件对应的重合程度高于预设程度阈值,基于第一滑动控件和第二滑动控件的节点层级路径,从识别结果中删除第一滑动控件或第二滑动控件。
[0122]
上述装置还包括第二删除模块,用于如果第一滑动控件的节点层级路径的路径长度长于第二滑动控件的节点层级路径的路径长度,从识别结果中删除第一滑动控件;如果第二滑动控件的节点层级路径的路径长度长于第一滑动控件的节点层级路径的路径长度,从识别结果中删除第二滑动控件。
[0123]
上述装置还包括第一合并删除模块,用于获取目标页面的后续页面,以及后续页面的滑动控件的识别结果;后续页面的显示时间在目标页面的显示时间之后;如果目标页面中的第三滑动控件,与后续页面中的第四滑动控件存在相同的点击控件,确定第三滑动控件和第四滑动控件为同一滑动控件,合并第三滑动控件和第四滑动控件中的点击控件。
[0124]
上述装置还包括第二合并模块,用于沿着第三滑动控件的滑动方向,排列第三滑动控件中的点击控件,得到第一序列;沿着第四滑动控件的滑动方向,排列第四滑动控件中
的点击控件,得到第二序列;基于第三滑动控件与第四滑动控件的相同点击控件,分别在第一序列和第二序列中的位置,合并第一序列和第二序列,得到合并后的点击控件。
[0125]
本实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现上述滑动控件的识别方法。
[0126]
参见图10所示,上述电子设备包括处理器100和存储器101,该存储器101存储有能够被处理器100执行的机器可执行指令,该处理器100执行机器可执行指令以实现上述滑动控件的识别方法。
[0127]
进一步地,图10所示的电子设备还包括总线102和通信接口103,处理器100、通信接口103和存储器101通过总线102连接。
[0128]
其中,存储器101可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0129]
处理器100可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器100中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器100可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器101,处理器100读取存储器101中的信息,结合其硬件完成前述实施例的方法的步骤。
[0130]
该方式中,识别目标页面中的点击控件,通过控件显示区域的几何关系和控件节点的节点层级关系,确定多个点击控件是否属于同一滑动控件,得到滑动控件的识别结果。该方式通用性强,不受限于识别工具的具体技术路线,提升了识别工具的通用性和识别准确率。
[0131]
上述预设条件包括:多个点击控件的控件显示区域具有预设的几何关系;其中,几何关系包括:多个点击控件的控件显示区域在指定维度上的尺寸相同;指定维度包括:宽度维度和/或高度维度;和/或,多个点击控件的控件显示区域沿着指定方向排列;指定方向包括:竖直方向和/或水平方向。
[0132]
上述预设条件包括:多个点击控件的控件节点具有预设的节点层级关系;其中,节点层级关系包括:多个点击控件的节点层级路径的长度相同;点击控件属于所述目标页面
的页面内容;目标页面中的页面内容预设有节点;基于页面内容之间的从属关系,节点之间建立有层级关系;下一层级的节点对应的页面内容从属于上一层级的节点对应的页面内容。
[0133]
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述滑动控件的识别方法的下述操作:从第一识别结果中确定基准点击控件;针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足预设条件的目标点击控件;如果存在目标点击控件,将基准点击控件和目标点击控件确定为满足预设条件的多个点击控件。
[0134]
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述滑动控件的识别方法的下述操作:针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足第一条件的第一点击控件;其中,第一条件包括:第一点击控件与基准点击控件的横坐标相同、控件显示区域的宽度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;针对第一识别结果中除基准点击控件和所述第一点击控件以外的点击控件,确定是否存在与基准点击控件或所述第一点击控件满足第二条件的第二点击控件;其中,第二条件包括:第二点击控件与基准点击控件或第一点击控件的纵坐标相同、控件显示区域的高度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;将第一点击控件和第二点击控件确定为目标点击控件。
[0135]
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述滑动控件的识别方法的下述操作:将基准点击控件和目标点击控件作为一个控件集合;其中,属于同一控件集合的点击控件属于同一滑动控件;将基准点击控件和目标点击控件从所述第一识别结果中剔除,得到包含剩余控件的第一识别结果;继续执行下述步骤,直至第一识别结果中的剩余控件的数量小于预设数量阈值:从第一识别结果中确定基准点击控件;针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足预设条件的目标点击控件;如果存在目标点击控件,将基准点击控件和目标点击控件确定为满足预设条件的多个点击控件。
[0136]
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述滑动控件的识别方法的下述操作:基于多个点击控件的控件显示区域的分布状态,确定多个点击控件的排列方式;其中,排列方式包括:沿竖直方向排列、沿水平方向排列或网格状排列;基于排列方式,以及多个点击控件的控件显示区域在指定维度上的尺寸,校验多个点击控件组成的滑动控件是否可执行滑动操作;如果多个点击控件组成的滑动控件可执行滑动操作,将多个点击控件组成的滑动控件确定为最终识别的滑动控件。
[0137]
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述滑动控件的识别方法的下述操作:如果排列方式为沿竖直方向排列,且控件显示区域的宽度与高度的比值大于第一比值阈值,确定多个点击控件组成的滑动控件可执行滑动操作;如果排列方式为沿水平方向排列,且控件显示区域的高度与宽度的比值大于第二比值阈值,确定多个点击控件组成的滑动控件可执行滑动操作;如果排列方式为网格状排列,确定多个点击控件组成的滑动控件可执行滑动操作。
[0138]
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述滑动控件的识别方法的下述操作:如果排列方式为沿竖直方向排列,且控件显示区域的宽度与高度的
比值大于第一比值阈值,确定多个点击控件组成的滑动控件的滑动方向为竖直方向;如果排列方式为沿水平方向排列,且控件显示区域的高度与宽度的比值大于第二比值阈值,确定多个点击控件组成的滑动控件的滑动方向为水平方向;如果排列方式为网格状排列,确定多个点击控件组成的滑动控件的滑动方向为竖直方向。
[0139]
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述滑动控件的识别方法的下述操作:如果识别结果中包括多个滑动控件,确定任意两个滑动控件的控件显示区域的重合程度;如果存在第一滑动控件和第二滑动控件对应的重合程度高于预设程度阈值,基于第一滑动控件和第二滑动控件的节点层级路径,从识别结果中删除第一滑动控件或第二滑动控件。
[0140]
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述滑动控件的识别方法的下述操作:如果第一滑动控件的节点层级路径的路径长度长于第二滑动控件的节点层级路径的路径长度,从识别结果中删除第一滑动控件;如果第二滑动控件的节点层级路径的路径长度长于第一滑动控件的节点层级路径的路径长度,从识别结果中删除第二滑动控件。
[0141]
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述滑动控件的识别方法的下述操作:获取目标页面的后续页面,以及后续页面的滑动控件的识别结果;后续页面的显示时间在目标页面的显示时间之后;如果目标页面中的第三滑动控件,与后续页面中的第四滑动控件存在相同的点击控件,确定第三滑动控件和第四滑动控件为同一滑动控件,合并第三滑动控件和第四滑动控件中的点击控件。
[0142]
上述电子设备中的处理器,通过执行机器可执行指令,可以实现上述滑动控件的识别方法的下述操作:沿着第三滑动控件的滑动方向,排列第三滑动控件中的点击控件,得到第一序列;沿着第四滑动控件的滑动方向,排列第四滑动控件中的点击控件,得到第二序列;基于第三滑动控件与第四滑动控件的相同点击控件,分别在第一序列和第二序列中的位置,合并第一序列和第二序列,得到合并后的点击控件。
[0143]
本实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现上述滑动控件的识别方法。
[0144]
该方式中,识别目标页面中的点击控件,通过控件显示区域的几何关系和控件节点的节点层级关系,确定多个点击控件是否属于同一滑动控件,得到滑动控件的识别结果。该方式通用性强,不受限于识别工具的具体技术路线,提升了识别工具的通用性和识别准确率。
[0145]
上述预设条件包括:多个点击控件的控件显示区域具有预设的几何关系;其中,几何关系包括:多个点击控件的控件显示区域在指定维度上的尺寸相同;指定维度包括:宽度维度和/或高度维度;和/或,多个点击控件的控件显示区域沿着指定方向排列;指定方向包括:竖直方向和/或水平方向。
[0146]
上述预设条件包括:多个点击控件的控件节点具有预设的节点层级关系;其中,节点层级关系包括:多个点击控件的节点层级路径的长度相同;点击控件属于所述目标页面的页面内容;目标页面中的页面内容预设有节点;基于页面内容之间的从属关系,节点之间建立有层级关系;下一层级的节点对应的页面内容从属于上一层级的节点对应的页面内
容。
[0147]
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述滑动控件的识别方法中的下述操作:从第一识别结果中确定基准点击控件;针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足预设条件的目标点击控件;如果存在目标点击控件,将基准点击控件和目标点击控件确定为满足预设条件的多个点击控件。
[0148]
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述滑动控件的识别方法中的下述操作:针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足第一条件的第一点击控件;其中,第一条件包括:第一点击控件与基准点击控件的横坐标相同、控件显示区域的宽度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;针对第一识别结果中除基准点击控件和所述第一点击控件以外的点击控件,确定是否存在与基准点击控件或所述第一点击控件满足第二条件的第二点击控件;其中,第二条件包括:第二点击控件与基准点击控件或第一点击控件的纵坐标相同、控件显示区域的高度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;将第一点击控件和第二点击控件确定为目标点击控件。
[0149]
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述滑动控件的识别方法中的下述操作:将基准点击控件和目标点击控件作为一个控件集合;其中,属于同一控件集合的点击控件属于同一滑动控件;将基准点击控件和目标点击控件从所述第一识别结果中剔除,得到包含剩余控件的第一识别结果;继续执行下述步骤,直至第一识别结果中的剩余控件的数量小于预设数量阈值:从第一识别结果中确定基准点击控件;针对第一识别结果中除基准点击控件以外的点击控件,确定是否存在与基准点击控件满足预设条件的目标点击控件;如果存在目标点击控件,将基准点击控件和目标点击控件确定为满足预设条件的多个点击控件。
[0150]
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述滑动控件的识别方法中的下述操作:基于多个点击控件的控件显示区域的分布状态,确定多个点击控件的排列方式;其中,排列方式包括:沿竖直方向排列、沿水平方向排列或网格状排列;基于排列方式,以及多个点击控件的控件显示区域在指定维度上的尺寸,校验多个点击控件组成的滑动控件是否可执行滑动操作;如果多个点击控件组成的滑动控件可执行滑动操作,将多个点击控件组成的滑动控件确定为最终识别的滑动控件。
[0151]
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述滑动控件的识别方法中的下述操作:如果排列方式为沿竖直方向排列,且控件显示区域的宽度与高度的比值大于第一比值阈值,确定多个点击控件组成的滑动控件可执行滑动操作;如果排列方式为沿水平方向排列,且控件显示区域的高度与宽度的比值大于第二比值阈值,确定多个点击控件组成的滑动控件可执行滑动操作;如果排列方式为网格状排列,确定多个点击控件组成的滑动控件可执行滑动操作。
[0152]
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述滑动控件的识别方法中的下述操作:如果排列方式为沿竖直方向排列,且控件显示区域的宽度与高度的比值大于第一比值阈值,确定多个点击控件组成的滑动控件的滑动方向为竖直方向;如果排列方式为沿水平方向排列,且控件显示区域的高度与宽度的
比值大于第二比值阈值,确定多个点击控件组成的滑动控件的滑动方向为水平方向;如果排列方式为网格状排列,确定多个点击控件组成的滑动控件的滑动方向为竖直方向。
[0153]
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述滑动控件的识别方法中的下述操作:如果识别结果中包括多个滑动控件,确定任意两个滑动控件的控件显示区域的重合程度;如果存在第一滑动控件和第二滑动控件对应的重合程度高于预设程度阈值,基于第一滑动控件和第二滑动控件的节点层级路径,从识别结果中删除第一滑动控件或第二滑动控件。
[0154]
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述滑动控件的识别方法中的下述操作:如果第一滑动控件的节点层级路径的路径长度长于第二滑动控件的节点层级路径的路径长度,从识别结果中删除第一滑动控件;如果第二滑动控件的节点层级路径的路径长度长于第一滑动控件的节点层级路径的路径长度,从识别结果中删除第二滑动控件。
[0155]
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述滑动控件的识别方法中的下述操作:获取目标页面的后续页面,以及后续页面的滑动控件的识别结果;后续页面的显示时间在目标页面的显示时间之后;如果目标页面中的第三滑动控件,与后续页面中的第四滑动控件存在相同的点击控件,确定第三滑动控件和第四滑动控件为同一滑动控件,合并第三滑动控件和第四滑动控件中的点击控件。
[0156]
上述机器可读存储介质存储中的机器可执行指令,通过执行该机器可执行指令,可以实现上述滑动控件的识别方法中的下述操作:沿着第三滑动控件的滑动方向,排列第三滑动控件中的点击控件,得到第一序列;沿着第四滑动控件的滑动方向,排列第四滑动控件中的点击控件,得到第二序列;基于第三滑动控件与第四滑动控件的相同点击控件,分别在第一序列和第二序列中的位置,合并第一序列和第二序列,得到合并后的点击控件。
[0157]
本发明实施例所提供的一种滑动控件的识别方法、装置、电子设备,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
[0158]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0159]
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0160]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0161]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0162]
最后应说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
技术特征:
1.一种滑动控件的识别方法,其特征在于,所述方法包括:识别目标页面中的点击控件,得到第一识别结果;其中,所述第一识别结果中包括:所述点击控件在所述目标页面中的控件显示区域;其中,所述点击控件为可执行点击操作的控件;确定所述第一识别结果中是否存在满足预设条件的多个点击控件;其中,所述预设条件包括:所述多个点击控件的控件显示区域具有预设的几何关系,和/或,所述多个点击控件的控件节点具有预设的节点层级关系;如果存在满足所述预设条件的多个点击控件,确定所述多个点击控件属于同一滑动控件,基于所述多个点击控件得到所述滑动控件的识别结果;其中,所述滑动控件为可执行滑动操作的控件。2.根据权利要求1所述的方法,其特征在于,所述预设条件包括:所述多个点击控件的控件显示区域具有预设的几何关系;其中,所述几何关系包括:所述多个点击控件的控件显示区域在指定维度上的尺寸相同;所述指定维度包括:宽度维度和/或高度维度;和/或,所述多个点击控件的控件显示区域沿着指定方向排列;所述指定方向包括:竖直方向和/或水平方向。3.根据权利要求1所述的方法,其特征在于,所述预设条件包括:所述多个点击控件的控件节点具有预设的节点层级关系;所述节点层级关系包括:所述多个点击控件的节点层级路径的长度相同;其中,所述点击控件属于所述目标页面的页面内容;所述目标页面中的页面内容预设有节点;基于所述页面内容之间的从属关系,所述节点之间建立有层级关系;下一层级的节点对应的页面内容从属于上一层级的节点对应的页面内容。4.根据权利要求1所述的方法,其特征在于,确定所述第一识别结果中是否存在满足预设条件的多个点击控件的步骤,包括:从所述第一识别结果中确定基准点击控件;针对所述第一识别结果中除所述基准点击控件以外的点击控件,确定是否存在与所述基准点击控件满足所述预设条件的目标点击控件;如果存在所述目标点击控件,将所述基准点击控件和所述目标点击控件确定为满足所述预设条件的多个点击控件。5.根据权利要求4所述的方法,其特征在于,针对所述第一识别结果中除所述基准点击控件以外的点击控件,确定是否存在与所述基准点击控件满足所述预设条件的目标点击控件的步骤,包括:针对所述第一识别结果中除所述基准点击控件以外的点击控件,确定是否存在与所述基准点击控件满足第一条件的第一点击控件;其中,所述第一条件包括:所述第一点击控件与所述基准点击控件的横坐标相同、控件显示区域的宽度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;针对所述第一识别结果中除所述基准点击控件和所述第一点击控件以外的点击控件,确定是否存在与所述基准点击控件或所述第一点击控件满足第二条件的第二点击控件;其中,所述第二条件包括:所述第二点击控件与所述基准点击控件或所述第一点击控件的纵
坐标相同、控件显示区域的高度相同、节点层级路径的长度相同、节点类型相同中的一种或多种;将所述第一点击控件和所述第二点击控件确定为目标点击控件。6.根据权利要求4所述的方法,其特征在于,如果存在所述目标点击控件,将所述基准点击控件和所述目标点击控件确定为满足所述预设条件的多个点击控件的步骤之后,所述方法还包括:将所述基准点击控件和所述目标点击控件作为一个控件集合;其中,属于同一所述控件集合的点击控件属于同一滑动控件;将所述基准点击控件和所述目标点击控件从所述第一识别结果中剔除,得到包含剩余控件的第一识别结果;继续执行下述步骤,直至所述第一识别结果中的剩余控件的数量小于预设数量阈值:从所述第一识别结果中确定基准点击控件;针对所述第一识别结果中除所述基准点击控件以外的点击控件,确定是否存在与所述基准点击控件满足所述预设条件的目标点击控件;如果存在所述目标点击控件,将所述基准点击控件和所述目标点击控件确定为满足所述预设条件的多个点击控件。7.根据权利要求1所述的方法,其特征在于,基于所述多个点击控件得到所述滑动控件的识别结果的步骤,包括:基于所述多个点击控件的控件显示区域的分布状态,确定所述多个点击控件的排列方式;其中,所述排列方式包括:沿竖直方向排列、沿水平方向排列或网格状排列;基于所述排列方式,以及所述多个点击控件的控件显示区域在指定维度上的尺寸,校验所述多个点击控件组成的滑动控件是否可执行滑动操作;如果所述多个点击控件组成的滑动控件可执行滑动操作,将所述多个点击控件组成的滑动控件确定为最终识别的滑动控件。8.根据权利要求7所述的方法,其特征在于,基于所述排列方式,以及所述多个点击控件的控件显示区域在指定维度上的尺寸,校验所述多个点击控件组成的滑动控件是否可执行滑动操作的步骤,包括:如果所述排列方式为沿竖直方向排列,且所述控件显示区域的宽度与高度的比值大于第一比值阈值,确定所述多个点击控件组成的滑动控件可执行滑动操作;如果所述排列方式为沿水平方向排列,且所述控件显示区域的高度与宽度的比值大于第二比值阈值,确定所述多个点击控件组成的滑动控件可执行滑动操作;如果所述排列方式为网格状排列,确定所述多个点击控件组成的滑动控件可执行滑动操作。9.根据权利要求7所述的方法,其特征在于,所述方法还包括:如果所述排列方式为沿竖直方向排列,且所述控件显示区域的宽度与高度的比值大于第一比值阈值,确定所述多个点击控件组成的滑动控件的滑动方向为竖直方向;如果所述排列方式为沿水平方向排列,且所述控件显示区域的高度与宽度的比值大于第二比值阈值,确定所述多个点击控件组成的滑动控件的滑动方向为水平方向;如果所述排列方式为网格状排列,确定所述多个点击控件组成的滑动控件的滑动方向为竖直方向。
10.根据权利要求1所述的方法,其特征在于,基于所述多个点击控件得到所述滑动控件的识别结果的步骤之后,所述方法还包括:如果所述识别结果中包括多个滑动控件,确定任意两个滑动控件的控件显示区域的重合程度;如果存在第一滑动控件和第二滑动控件对应的重合程度高于预设程度阈值,基于所述第一滑动控件和所述第二滑动控件的节点层级路径,从所述识别结果中删除所述第一滑动控件或所述第二滑动控件。11.根据权利要求10所述的方法,其特征在于,基于所述第一滑动控件和所述第二滑动控件的节点层级路径,从所述识别结果中删除所述第一滑动控件或所述第二滑动控件的步骤,包括:如果所述第一滑动控件的节点层级路径的路径长度长于所述第二滑动控件的节点层级路径的路径长度,从所述识别结果中删除所述第一滑动控件;如果所述第二滑动控件的节点层级路径的路径长度长于所述第一滑动控件的节点层级路径的路径长度,从所述识别结果中删除所述第二滑动控件。12.根据权利要求1所述的方法,其特征在于,基于所述多个点击控件得到所述滑动控件的识别结果的步骤之后,所述方法还包括:获取所述目标页面的后续页面,以及所述后续页面的滑动控件的识别结果;所述后续页面的显示时间在所述目标页面的显示时间之后;如果所述目标页面中的第三滑动控件,与所述后续页面中的第四滑动控件存在相同的点击控件,确定所述第三滑动控件和所述第四滑动控件为同一滑动控件,合并所述第三滑动控件和所述第四滑动控件中的点击控件。13.根据权利要求12所述的方法,其特征在于,合并所述第三滑动控件和所述第四滑动控件中的点击控件的步骤,包括:沿着所述第三滑动控件的滑动方向,排列所述第三滑动控件中的点击控件,得到第一序列;沿着所述第四滑动控件的滑动方向,排列所述第四滑动控件中的点击控件,得到第二序列;基于所述第三滑动控件与所述第四滑动控件的相同点击控件,分别在所述第一序列和所述第二序列中的位置,合并所述第一序列和所述第二序列,得到合并后的点击控件。14.一种滑动控件的识别装置,其特征在于,所述装置包括:第一识别模块,用于识别目标页面中的点击控件,得到第一识别结果;其中,所述第一识别结果中包括:所述点击控件在所述目标页面中的控件显示区域;其中,所述点击控件为可执行点击操作的控件;第一确定模块,用于确定所述第一识别结果中是否存在满足预设条件的多个点击控件;其中,所述预设条件包括:所述多个点击控件的控件显示区域具有预设的几何关系,和/或,所述多个点击控件的控件节点具有预设的节点层级关系;第一获取模块,用于如果存在满足所述预设条件的多个点击控件,确定所述多个点击控件属于同一滑动控件,基于所述多个点击控件得到所述滑动控件的识别结果;其中,所述滑动控件为可执行滑动操作的控件。
15.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-13任一项所述的滑动控件的识别方法。16.一种机器可读存储介质,其特征在于,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现权利要求1-13任一项所述的滑动控件的识别方法。
技术总结
本发明提供了一种滑动控件的识别方法、装置和电子设备,其中,方法包括:识别目标页面中的点击控件,得到第一识别结果;其中,第一识别结果中包括:点击控件在目标页面中的控件显示区域;确定第一识别结果中是否存在满足预设条件的多个点击控件;其中,预设条件包括:多个点击控件的控件显示区域具有预设的几何关系,和/或,多个点击控件的控件节点具有预设的节点层级关系;如果存在满足预设条件的多个点击控件,确定多个点击控件属于同一滑动控件,基于多个点击控件得到滑动控件的识别结果;其中,滑动控件为可执行滑动操作的控件。该方式可以识别各类应用程序中的滑动控件,通用性强,且具有较高的识别准确率。且具有较高的识别准确率。且具有较高的识别准确率。
技术研发人员:代凌云 徐博磊 叶均杰
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2023.03.29
技术公布日:2023/7/28
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
