控件执行方法和装置与流程

文档序号:12271203阅读:1095来源:国知局
控件执行方法和装置与流程

本发明涉及程序优化,具体地,涉及一种控件执行方法和装置。



背景技术:

传统的APP自动化定位控件触发位置以便执行控件的方法有两种,如下:

1、采用控件属性定位控件:

例如uiautomator控件定位的代码如下:

d(text="确定").click.wait(timeout=1000)#点击“确定”按钮;

其中确定为按钮的文本属性,部分情况下,该按钮可能无此文本属性。

其缺陷为:控件属性可能存在差异,这导致自动化过程中,需要频繁根据手机型号修改脚本,或者脚本中不断添加各种支持的断言,极大的耗费自动化开发者的时间。

2、采用像素坐标定位控件:

d.click(point['x'],point['y'])#点击坐标为(x,y)的点;

其缺陷为:针对不同系统,因像素差异,需要在自动化脚本中频繁根据像素修改目标像素值;APP在更新过程中,图片或者文字位置可能发生变化,此时在维护自动化过程中,需要不断根据最新的需求更新坐标,带来极大的工作量。



技术实现要素:

本发明的目的是提供一种控件执行方法和装置,该控件执行方法和装置能够提升自动化测试定位准确度,并减少开发成本。

为了实现上述目的,本发明提供一种控件执行方法,该控件执行方法包括:获取预存图片;提取屏幕上目标区域显示的内容作为目标图片;比较所述预存图片和所述目标图片,以在所述目标图片中确定与所述预存图片相同的部分作为触发控件执行的触发位置;在所述屏幕上模拟点击所述触发位置以执行所述控件。

优选地,所述获取预存图片的步骤包括:从至少一个预存图片中选择与需要执行的控件对应的预存图片;获取所选择的预存图片。

优选地,所述提取屏幕上目标区域显示的内容作为目标图片的步骤包括:截取当前屏幕图像,对所述屏幕图像显示的内容进行分割以形成多个所述目标图片,其中,该空间执行方法还包括:比较所述预存图片和所述多个目标图片中的每一个,以在所述多个目标图片中的一个目标图片中确定所述触发位置。

优选地,在所述提取屏幕上目标区域显示的内容作为目标图片的步骤之后,该控件执行方法还包括:对所述目标图片进行灰度和降噪处理。

优选地,所述预存图片包括唯一性客观特征。

优选地,所述触发位置为坐标的集合。

本发明还提供一种控件执行装置,该控件执行装置包括:

图像获取模块、处理模块以及执行模块,其中,所述图像获取模块用于提取屏幕上目标区域显示的内容作为目标图片;所述处理模块用于获取预存图片以及比较所述预存图片和所述目标图片,以在所述目标图片中确定与所述预存图片相同的部分作为触发控件执行的触发位置;所述执行模块(3)用于在所述屏幕上模拟点击所述触发位置以执行所述控件。

优选地,所述处理模块还用于:从至少一个预存图片中选择与需要执行的控件对应的预存图片;获取所选择的预存图片。

优选地,所述图像获取模块还用于截取当前屏幕图像;所述处理模块还用于对所述屏幕图像显示的内容进行分割以形成多个所述目标图片;比较所述预存图片和所述多个目标图片中的每一个,以在所述多个目标图片中的一个目标图片中确定所述触发位置。

优选地,所述处理模块还用于:在提取所述目标图片之后,对所述目标图片进行灰度和降噪处理。

优选地,所述预存图片包括唯一性客观特征。

优选地,所述触发位置为坐标的集合。

通过上述技术方案,采用本发明提供的控件执行方法和装置,该控件执行方法包括:获取预存图片;提取屏幕上目标区域显示的内容作为目标图片;比较所述预存图片和所述目标图片,以在所述目标图片中确定与所述预存图片相同的部分作为触发控件执行的触发位置;在所述屏幕上模拟点击所述触发位置以执行所述控件。该控件执行方法和装置提升了自动化测试定位准确度,减少了开发成本。

本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是本发明一实施例提供的控件执行方法的流程图;

图2是本发明一实施例提供的控件执行方法的流程图;

图3是本发明另一实施例提供的在屏幕布局可预期情况下的控件执行方法的流程图;

图4是本发明另一实施例提供的在屏幕布局可预期情况下的控件执行方法的流程图;

图5是本发明另一实施例提供的在屏幕布局不可预期情况下的控件执行方法的流程图;

图6是本发明一实施例提供的控件执行装置的结构示意图。

附图标记说明

1图像获取模块 2处理模块

3执行模块。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

在本发明中,提供的控件执行方法全程自动化完成,不需人为参与,从而模拟人为操作以便进行测试,在该操作中,可以精确寻找到屏幕中触发控件执行的触发位置(在屏幕中以图片和文字等展示),以便点击该触发位置来执行控件。

对于屏幕布局,分为可预期和不可预期两种,针对两种情况有不同的控件执行方法,以便在可预期的情况下可以加快处理速度,节省处理时间。

本发明将设置代码以代替人为操作,该代码提供了需要模拟点击的某文字、图片或其它唯一性客观特征。响应于此代码,进行以下控件执行方法:

图1是本发明一实施例提供的控件执行方法的流程图。如图1所示,在本实施例中,该控件执行方法包括:获取预存图片(步骤S11);提取屏幕上目标区域显示的内容作为目标图片(步骤S12);比较所述预存图片和所述目标图片,以在所述目标图片中确定与所述预存图片相同的部分作为触发控件执行的触发位置(步骤S13);在所述屏幕上模拟点击所述触发位置以执行所述控件(步骤S14)。

在本实施例中,目标区域可以是整个屏幕图像,也可以是可预期的屏幕图像的一部分。对于可预期的屏幕图像,可以获取可预期区域显示的内容,也可以截取整个屏幕图像之后进行分割;对于不可预期的屏幕图像,可以直接截取屏幕图像。以上多种可能将在下文实施例中描述。

图2是本发明另一实施例提供的控件执行方法的流程图。如图2所示,本实施例对实施例进行扩展,提供一种更加优选的控件执行方法。

该控件执行方法包括:从至少一个预存图片中选择与需要执行的控件对应的预存图片(步骤S21);获取所选择的预存图片(步骤S22);提取屏幕上目标区域显示的内容作为目标图片(步骤S23);对所述目标图片进行灰度和降噪处理(步骤S24);比较所述预存图片和所述目标图片,以在所述目标图片中确定与所述预存图片相同的部分作为触发控件执行的触发位置(步骤S25);在所述屏幕上模拟点击所述触发位置以执行所述控件(步骤S26)。

在本实施例中,目标区域可以是整个屏幕图像,也可以是可预期的屏幕图像的一部分。本实施例细化了获取预存图片的步骤。具体为根据代码获知需要执行的控件,并在保存有预存图片的库中选择与需要执行的控件对应的预存图片。另外,在所述提取屏幕上目标区域显示的内容作为目标图片的步骤之后,对所述目标图片进行灰度和降噪处理,以便更好地执行之后的图片对比等步骤。

图3是本发明一实施例提供的在屏幕布局可预期情况下的控件执行方法的流程图。如图3所示,本实施例提供一种在屏幕布局可预期情况下,已知触发控件执行的触发位置在屏幕中的大致位置的控件执行方法,可以较快实现执行控件的目的。由于在本实施例中,已知触发控件执行的触发位置的在屏幕中的大致位置,因此,被提取的可预期区域即包含触发控件执行的触发位置,并且可预期区域不是整个屏幕图像。

该控件执行方法包括:获取预存图片(步骤S31);提取屏幕上可预期区域显示的内容作为目标图片(步骤S32);比较所述预存图片和所述目标图片,以在所述目标图片中确定与所述预存图片相同的部分作为触发控件执行的触发位置(步骤S33);在所述屏幕上模拟点击所述触发位置以执行所述控件(步骤S34)。

为了模拟人为的登录过程,现有写好的代码大致效用为:输入用户名,输入密码,模拟点击“登录”图片(或图标)。其关键在于寻找点击“登录”的位置。首先获取预存图片“登录”,在已知“登录”位于屏幕右半边时,提取屏幕右半边的内容作为目标图片,比较目标图片和预存图片“登录”,找到目标图片中显示“登录”的位置,该位置就是触发“登录”控件执行的触发位置,最后在屏幕右半边模拟点击该位置以执行控件。

图4是本发明另一实施例提供的在屏幕布局可预期情况下的控件执行方法的流程图。如图4所示,本实施例提供一种在屏幕布局可预期情况下,已知屏幕布局划分,但不知触发控件执行的触发位置在屏幕中的大致位置的控件执行方法,例如已知屏幕可以划分为4部分,但是不知道触发控件执行的触发位置在哪个部分内。该实施例也可以较快实现执行控件的目的。

该控件执行方法包括:获取预存图片(步骤S41);截取当前屏幕图像,对所述屏幕图像显示的内容进行分割以形成多个所述目标图片(步骤S42),比较所述预存图片和所述多个目标图片中的每一个,以在所述多个目标图片中的一个目标图片中确定所述触发位置(步骤S43);在所述屏幕上模拟点击所述触发位置以执行所述控件(步骤S44)。

为了避免赘述,本实施例步骤中并未体现对实施例的扩展步骤,但本领域技术人员应该理解,本实施例也可以包括:从至少一个预存图片中选择与需要执行的控件对应的预存图片;获取所选择的预存图片。并在对所述屏幕图像显示的内容进行分割以形成多个所述目标图片之后,对所述目标图片进行灰度和降噪处理。

图5是本发明另一实施例提供的在屏幕布局不可预期情况下的控件执行方法的流程图。如图5所示,本实施例提供一种在屏幕布局不可预期情况下的控件执行方法,虽然较慢,但仍可以实现执行控件的目的。由于在本实施例中,不知触发控件执行的触发位置的在屏幕中的位置,因此,相比于获取可预期区域的显示内容,本实施例需要截取整个屏幕。

该控件执行方法包括:获取预存图片(步骤S51);截取当前屏幕图像作为目标图片(步骤S52);比较所述预存图片和所述目标图片,以在所述目标图片中确定与所述预存图片相同的部分作为触发控件执行的触发位置(步骤S53);在所述屏幕上模拟点击所述触发位置以执行所述控件(步骤S54)。

本实施例也可以包括:从至少一个预存图片中选择与需要执行的控件对应的预存图片;获取所选择的预存图片;以及对所述目标图片进行灰度和降噪处理。

对于上述四个实施例,优选地,所述预存图片包括唯一性客观特征。唯一性客观特征是例如唯一的图片,唯一的文字或唯一的指纹图等等。上述四个实施例中的图片比较并在目标图片中找到与预存图片相同部分的过程,可以使用图像识别技术来进行。另外,如果在目标图片中并未找到与预存图片相同部分,则直接结束程序不再尝试执行控件。

优选地,所述触发位置为坐标的集合。在比较所述预存图片和所述目标图片之后,可以在所述目标图片中确定与所述预存图片相同的部分的坐标作为触发控件执行的触发位置的坐标;在所述屏幕上所述触发位置的一个或多个坐标处模拟点击以执行所述控件。坐标可以为像素点的坐标。其中,确定的坐标大多不唯一,数量根据预存图片的大小以及屏幕坐标轴的设置而变化。在模拟点击时,只需要模拟点击其中一个坐标即可执行控件。

对于可预期的屏幕,由于获取的目标图片不是整个屏幕的截屏,因此坐标的设置会有两种可能。如果在获取目标图片之前已经设置好坐标轴,则无论是获取屏幕的一部分或者将屏幕图像进行分割,都可以在获知触发控件执行的触发位置的坐标之后,直接在屏幕上模拟点击触发位置的坐标以执行控件;如果设置坐标轴是在获取目标图片之后,则可以在获知触发控件执行的触发位置的坐标之后,对坐标进行处理,使坐标转化为针对整个屏幕的坐标,然后再进行模拟点击以执行控件。

图6是本发明一实施例提供的控件执行装置的结构示意图。如图5所示,本发明还提供一种控件执行装置,该控件执行装置包括:图像获取模块1、处理模块2以及执行模块3,其中,所述图像获取模块1用于提取屏幕上目标区域显示的内容作为目标图片;所述处理模块2用于获取预存图片以及比较所述预存图片和所述目标图片,以在所述目标图片中确定与所述预存图片相同的部分作为触发控件执行的触发位置;所述执行模块3用于在所述屏幕上模拟点击所述触发位置以执行所述控件。

优选地,所述处理模块2还用于:从至少一个预存图片中选择与需要执行的控件对应的预存图片;获取所选择的预存图片。

优选地,所述图像获取模块1还用于截取当前屏幕图像;所述处理模块2还用于对所述屏幕图像显示的内容进行分割以形成多个所述目标图片;比较所述预存图片和所述多个目标图片中的每一个,以在所述多个目标图片中的一个目标图片中确定所述触发位置。

优选地,所述处理模块2还用于:在提取所述目标图片之后,对所述目标图片进行灰度和降噪处理。

所述预存图片包括唯一性客观特征;所述触发位置为坐标的集合。

通过上述技术方案,采用本发明提供的控件执行方法和装置,该控件执行方法包括:获取预存图片;提取屏幕上目标区域显示的内容作为目标图片;比较所述预存图片和所述目标图片,以在所述目标图片中确定与所述预存图片相同的部分作为触发控件执行的触发位置;在所述屏幕上模拟点击所述触发位置以执行所述控件。该控件执行方法和装置提升了自动化测试定位准确度,减少开发成本。

以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1