一种界面元素定位方法、设备及存储介质
文献发布时间:2023-06-19 11:05:16
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种界面元素定位方法、设备及存储介质。
背景技术
随着计算机技术和终端技术的快速发展,终端的使用频率越来越高,使用范围越来越广泛,而且在终端中可以安装应用程序,为用户提供服务。为了给用户提供较好的使用体验,终端厂家在终端上市前或者应用程序提供者在应用程序提供前,都需要对终端显示界面中的界面元素进行测试,以及时发现并修正各种问题。
对终端显示界面中的界面元素进行测试的前提是进行界面元素定位,只有准确进行界面元素定位才能对界面元素进行进一步的测试等操作。目前,多是通过获取界面元素的一些标识,如文本(text)、资源标识(resourceID)、描述(description)等,定位到相应的界面元素。但是有些界面元素不具有相关标识,无法通过获取标识对其进行定位,从而导致无法准确进行界面元素的定位,无法为后续的测试等工作提供保障,需要人工参与,工作效率较低。
发明内容
本申请的目的是提供一种界面元素定位方法、设备及存储介质,以进行界面元素的准确定位,减少操作者的操作,为后续的测试等工作的顺利进行提供保障,提高了工作效率。
为解决上述技术问题,本申请提供如下技术方案:
一种界面元素定位方法,包括:
获得参照图片,所述参照图片中包含待定位的界面元素;
在达到定位触发条件的情况下,截取当前终端的当前显示界面;
将所述参照图片与所述当前显示界面进行对比;
根据对比结果,确定所述参照图片包含的界面元素在所述当前显示界面中的位置。
在本申请的一种具体实施方式中,所述参照图片为预先在所述当前终端或者其他终端的屏幕截图中截取的图片。
在本申请的一种具体实施方式中,所述获得参照图片,包括:
接收对所述当前终端的屏幕截取指令,所述屏幕截取指令中携带屏幕截取区域信息;
根据所述屏幕截取指令,截取所述当前终端的所述屏幕截取区域对应的图片;
将截取的所述屏幕截取区域对应的图片确定为参照图片。
在本申请的一种具体实施方式中,所述根据对比结果,确定所述参照图片包含的界面元素在所述当前显示界面中的位置,包括:
根据对比结果,确定所述当前显示界面中与所述参照图片相似度最高的区域;
将所述相似度最高的区域所在位置确定为所述参照图片包含的界面元素在所述当前显示界面中的位置。
在本申请的一种具体实施方式中,在所述将所述相似度最高的区域所在位置确定为所述参照图片包含的界面元素在所述当前显示界面中的位置之前,还包括:
确定所述相似度最高的区域与所述参照图片的相似度是否大于预设相似度阈值;
如果大于,则执行所述将所述相似度最高的区域所在位置确定为所述参照图片包含的界面元素在所述当前显示界面中的位置的步骤。
在本申请的一种具体实施方式中,还包括:
如果所述相似度最高的区域与所述参照图片的相似度小于或等于所述相似度阈值,则重复执行所述截取当前终端的当前显示界面的步骤。
在本申请的一种具体实施方式中,在所述将所述参照图片与所述当前显示界面进行对比之前,还包括:
将所述参照图片或所述当前显示界面进行分辨率转换,以使所述参照图片和所述当前显示界面的分辨率相同。
在本申请的一种具体实施方式中,还包括:
基于确定出的所述参照图片包含的界面元素在所述当前显示界面中的位置,对所述当前显示界面中的界面元素执行设定操作。
在本申请的一种具体实施方式中,在达到定位触发条件的情况下,在所述截取当前终端的当前显示界面之前,还包括:
确定是否获取到所述待定位的界面元素的属性信息;
如果未获取到,则执行所述截取当前终端的当前显示界面的步骤。
在本申请的一种具体实施方式中,还包括:
如果获取到所述待定位的界面元素的属性信息,则根据所述属性信息,确定所述待定位的界面元素在所述当前终端的所述当前显示界面中的位置。
一种界面元素定位设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述界面元素定位方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述界面元素定位方法的步骤。
应用本申请实施例所提供的技术方案,获得包含待定位的界面元素的参照图片后,在达到定位触发条件的情况下,截取当前终端的当前显示界面,将参照图片与当前显示界面进行对比,根据对比结果,确定参照图片包含的界面元素在当前显示界面中的位置。通过当前显示界面与参照图片的对比,可以准确确定出待定位的界面元素在当前显示界面中的位置,减少了操作者的操作,为后续的测试等工作的顺序进行提供保障,提高了工作效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种界面元素定位方法的实施流程图;
图2为本申请实施例中参照图片示意图;
图3为本申请实施例中当前终端的当前显示界面的示意图;
图4为本申请实施例中一种界面元素定位装置的结构示意图;
图5为本申请实施例中一种界面元素定位设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,为本申请实施例所提供的一种界面元素定位方法的实施流程图,该方法可以包括以下步骤:
S110:获得参照图片。
参照图片中包含待定位的界面元素。
所谓界面元素可以是能够在终端屏幕的显示界面中输出显示的元素,比如窗口、对话框、滚动条、图标、图形等。
参照图片中包含待定位的界面元素。如图2所示,参照图片中包含来电接听按钮这个界面元素。参照图片可以由操作者提供。可以为操作者提供输入界面,操作者在输入界面可以输入参照图片的存储路径,通过该存储路径可以获得参照图片。参照图片还可以依据屏幕截取指令等截取得到。获得参照图片后,可以继续执行步骤S120的操作。
S120:在达到定位触发条件的情况下,截取当前终端的当前显示界面。
在本申请实施例中,可以根据实际情况预先设定定位触发条件。
如可以对当前终端进行监测,在监测到设定事件发生时,认为达到定位触发条件。举例而言,要对当前终端的来电接听按钮进行定位,待定位的界面元素即为该来电接听按钮,在当前终端有来电事件发生时,则认为达到定位触发条件。
还可以在接收到操作者发送的定位指令时,认为达到定位触发条件。
在达到定位触发条件的情况下,可以截取当前终端的当前显示界面。具体的,可以直接截取当前终端的当前显示界面,还可以调用截屏工具截取当前终端的当前显示界面。如图3所示,为当前终端的当前显示界面示意图。
S130:将参照图片与当前显示界面进行对比。
获得参照图片,并在达到定位触发条件的情况下,截取到当前终端的当前显示界面之后,可以将参照图片与当前显示界面进行对比。
在将参照图片与当前显示界面进行对比时,可以逐个像素依次对比,还可以按照像素均值进行对比。具体的,可以使用传统数字图像处理算法在当前显示界面中搜寻参照图片,保证在图像旋转、大小变化以及图片部分可见等情况下的对比精度。
S140:根据对比结果,确定参照图片包含的界面元素在当前显示界面中的位置。
将参照图片与当前显示界面进行对比,可以得到参照图片与当前显示界面的对比结果,根据该对比结果,可以判定能否在当前显示界面中找到与参照图片相似的区域。如果能够找到,则可以认为参照图片包含的界面元素可以在当前显示界面正常显示,在与参照图片相似的区域中,从而可以确定出参照图片包含的界面元素在当前显示界面中的位置。具体可以通过坐标进行位置表示。
如果在当前显示界面中无法找到与参照图片相似的区域,则可以认为参照图片包含的界面元素没有在当前显示界面正常显示,可能存在差错,可以在达到定位触发条件的情况下,重复执行截取当前终端的当前显示界面的步骤,重新进行图片对比,以准确确定出参照图片包含的界面元素在当前显示界面中的位置。
应用本申请实施例所提供的方法,获得包含待定位的界面元素的参照图片后,在达到定位触发条件的情况下,截取当前终端的当前显示界面,将参照图片与当前显示界面进行对比,根据对比结果,确定参照图片包含的界面元素在当前显示界面中的位置。通过当前显示界面与参照图片的对比,可以准确确定出待定位的界面元素在当前显示界面中的位置,减少了操作者的操作,为后续的测试等工作的顺序进行提供保障,提高了工作效率。
在本申请的一个实施例中,参照图片可以为预先在当前终端或者其他终端的屏幕截图中截取的图片。
可以理解的是,本申请实施例需要将参照图片与截取到的当前终端的当前显示界面进行对比,根据对比结果,确定参照图片包含的界面元素在当前显示界面中的位置,所以,参照图片的质量高低直接决定能否准确地对界面元素进行定位。
在本申请实施例中,在要进行界面元素的定位需要提供参照图片时,可以先对当前终端或者其他终端能够正常显示待定位的界面元素的显示界面进行截图,获得屏幕截图,再从屏幕截图中截取部分或者全部作为参照图片。即参照图片为预先在当前终端或者其他终端的屏幕截图中截取的图片。这种方式相较于直接构造参照图片或者使用示例作为参照图片,更适合于与截取的当前终端的当前显示界面进行对比,因为都是通过终端屏幕截取得到的图片,可对比性更强,可以提高对界面元素进行定位的准确性。
在本申请的另一种具体实施方式中,步骤S110可以包括以下步骤:
步骤一:接收对当前终端的屏幕截取指令,屏幕截取指令中携带屏幕截取区域信息;
步骤二:根据屏幕截取指令,截取当前终端的屏幕截取区域对应的图片;
步骤三:将截取的屏幕截取区域对应的图片确定为参照图片。
为便于描述,将上述三个步骤结合起来进行说明。
在本申请实施例中,在有界面元素定位的需求时,操作者可以发出对当前终端的屏幕截取指令,屏幕截取指令中可以携带屏幕截取区域信息。在接收到对当前终端的屏幕截取指令后,可以根据该屏幕截取指令,截取当前终端的屏幕截取区域对应的图片。举例而言,在有对来电接听按钮定位的需求时,操作者可以将来电接听按钮所在区域划定为屏幕截取区域,发出对当前终端的屏幕截取指令,屏幕截取指令中携带该屏幕截取区域信息。在接收到屏幕截取指令后,可以截取该屏幕截取区域对应的图片,该图片中包含来电接听按钮这个界面元素。
截取到当前终端的屏幕截取区域对应的图片后,可以将截取的屏幕截取区域对应的图片确定为参照图片,参照图片中包含待定位的界面元素。
根据屏幕截取指令,自动在当前终端的屏幕中截取得到参照图片,使得参照图片与后续截取得到的当前显示界面均来自于同一个终端,图片分辨率等因素具有一致性,将参照图片与当前显示界面进行对比,可以得到较准确的对比结果。
在本申请的一个实施例中,步骤S140可以包括以下步骤:
第一个步骤:根据对比结果,确定当前显示界面中与参照图片相似度最高的区域;
第二个步骤:将相似度最高的区域所在位置确定为参照图片包含的界面元素在当前显示界面中的位置。
为便于描述,将上述两个步骤结合起来进行说明。
在本申请实施例中,将参照图片与当前显示界面进行对比之后,可以得到对比结果,对比结果可以是参照图片与当前显示界面的各个区域的相似度,当前显示界面的各个区域与参照图片大小相同。
根据对比结果,可以确定当前显示界面中与参照图片相似度最高的区域。相似度越高,可以认为与参照图片越相近。将相似度最高的区域所在位置确定为参照图片包含的界面元素在当前显示界面中的位置。这样可以提高定位准确性。
在本申请的一种具体实施方式中,在将相似度最高的区域所在位置确定为参照图片包含的界面元素在当前显示界面中的位置之前,还可以先确定相似度最高的区域与参照图片的相似度是否大于预设相似度阈值,如果大于,则执行将相似度最高的区域所在位置确定为参照图片包含的界面元素在当前显示界面中的位置的步骤。
相似度阈值可以根据实际情况进行设定和调整,如设定为90%,只有相似度最高的区域与参照图片的相似度大于该相似度阈值时,才认为在当前显示界面中寻找到了参照图片包含的界面元素,在这种情况下,将相似度最高的区域所在位置确定为参照图片包含的界面元素在当前显示界面中的位置,可以进一步提高定位准确性。
在本申请的另一种具体实施方式中,如果相似度最高的区域与参照图片的相似度小于或等于相似度阈值,则可以重复执行截取当前终端的当前显示界面的步骤。
将参照图片与当前显示界面进行对比,根据对比结果,确定当前显示界面中与参照图片相似度最高的区域,如果相似度最高的区域与参照图片的相似度小于或等于相似度阈值,则表明二者的相似度并不高,在该相似度最高的区域中可能不存在参照图片包含的界面元素。在这种情况下,可以重复执行截取当前终端的当前显示界面及其以下步骤,以将参照图片与重新截取得到的当前显示界面进行对比,并在在相似度最高的区域与参照图片的相似度大于相似度阈值时,将相似度最高的区域所在位置确定为参照图片包含的界面元素在当前显示界面中的位置。
当然,如果重复执行多次截取当前终端的当前显示界面,将参照图片与当前显示界面进行对比,根据对比结果,均无法确定出参照图片包含的界面元素在当前显示界面中的位置,则可能是参照图片存在问题,可以重新获得参照图片,或者输出相应的错误提示信息,以便操作者能够及时进行问题排查。
在本申请的一个实施例中,在将参照图片与当前显示界面进行对比之前,该方法还可以包括以下步骤:
将参照图片或当前显示界面进行分辨率转换,以使参照图片和当前显示界面的分辨率相同。
在本申请实施例中,获得的参照图片与截取到的当前显示界面的分辨率可能不同,如果直接进行图片对比,可能无法得到较准确的对比结果。所以,可以将参照图片或当前显示界面进行分辨率转换,使得参照图片和当前显示界面的分辨率相同,二者分辨率相同后再进行对比,可以得到较准确的对比结果,进而可以提高定位准确性。
在本申请的一个实施例中,该方法还可以包括以下步骤:
基于确定出的参照图片包含的界面元素在当前显示界面中的位置,对当前显示界面中的界面元素执行设定操作。
将参照图片与截取到的当前终端的当前显示界面进行对比之后,根据对比结果,确定出参照图片包含的界面在当前显示界面中的位置,基于该位置,可以对当前显示界面中的该界面元素执行设定操作,对该界面元素进行相应测试。如点击、滑动、拖动等操作。具体执行哪种操作可以根据实际情况预先设定。
在本申请的一个实施例中,在达到定位触发条件的情况下,在截取当前终端的当前显示界面之前,该方法还可以包括以下步骤:
确定是否获取到待定位的界面元素的属性信息;如果未获取到,则执行截取当前终端的当前显示界面的步骤。
在实际应用中,可以通过调用属性查询等工具,查询得到终端显示界面的某些界面元素的属性信息。在达到定位触发条件的情况下,可以先尝试获取待定位的界面元素的属性信息。属性信息可以包括文本(text)、资源标识(resourceID)、描述(description)等。
如果未获取到待定位的界面元素的属性信息,则截取当前终端的当前显示界面,将参照图片与当前显示界面进行对比,根据对比结果,确定参照图片包含的界面元素在当前显示界面中的位置。
如果获取到待定位的界面元素的属性信息,则根据属性信息,确定待定位的界面元素在当前终端的当前显示界面中的位置。
将基于属性信息对界面元素进行定位和基于图片对比对界面元素进行定位结合起来,在能够获取到待定位的界面元素的属性信息的情况下,使用前者方案,在不能够获取到待定位的界面元素的属性信息的情况下,使用后者方案,使得无论在哪种情况下,都可以快速准确地对界面元素进行定位,提高自动化覆盖率,降低测试成本。
相应于上面的方法实施例,本申请实施例还提供了一种界面元素定位装置,下文描述的界面元素定位装置与上文描述的界面元素定位方法可相互对应参照。
参见图4所示,该装置可以包括以下模块:
参照图片获得模块410,用于获得参照图片,参照图片中包含待定位的界面元素;
显示界面截取模块420,用于在达到定位触发条件的情况下,截取当前终端的当前显示界面;
图片对比模块430,用于将参照图片与当前显示界面进行对比;
界面元素定位模块440,用于根据对比结果,确定参照图片包含的界面元素在当前显示界面中的位置。
应用本申请实施例所提供的装置,获得包含待定位的界面元素的参照图片后,在达到定位触发条件的情况下,截取当前终端的当前显示界面,将参照图片与当前显示界面进行对比,根据对比结果,确定参照图片包含的界面元素在当前显示界面中的位置。通过当前显示界面与参照图片的对比,可以准确确定出待定位的界面元素在当前显示界面中的位置,减少了操作者的操作,为后续的测试等工作的顺序进行提供保障,提高了工作效率。
在本申请的一种具体实施方式中,参照图片为预先在当前终端或者其他终端的屏幕截图中截取的图片。
在本申请的一种具体实施方式中,参照图片获得模块410,用于:
接收对当前终端的屏幕截取指令,屏幕截取指令中携带屏幕截取区域信息;
根据屏幕截取指令,截取当前终端的屏幕截取区域对应的图片;
将截取的屏幕截取区域对应的图片确定为参照图片。
在本申请的一种具体实施方式中,界面元素定位模块440,用于:
根据对比结果,确定当前显示界面中与参照图片相似度最高的区域;
将相似度最高的区域所在位置确定为参照图片包含的界面元素在当前显示界面中的位置。
在本申请的一种具体实施方式中,界面元素定位模块440,还用于:
在将相似度最高的区域所在位置确定为参照图片包含的界面元素在当前显示界面中的位置之前,确定相似度最高的区域与参照图片的相似度是否大于预设相似度阈值;
如果大于,则执行将相似度最高的区域所在位置确定为参照图片包含的界面元素在当前显示界面中的位置的步骤。
在本申请的一种具体实施方式中,界面元素定位模块440,还用于:
在相似度最高的区域与参照图片的相似度小于或等于相似度阈值的情况下,重复执行截取当前终端的当前显示界面的步骤。
在本申请的一种具体实施方式中,还包括分辨率转换模块,用于:
在将参照图片与当前显示界面进行对比之前,将参照图片或当前显示界面进行分辨率转换,以使参照图片和当前显示界面的分辨率相同。
在本申请的一种具体实施方式中,还包括界面元素操作模块,用于:
基于确定出的参照图片包含的界面元素在当前显示界面中的位置,对当前显示界面中的界面元素执行设定操作。
在本申请的一种具体实施方式中,还包括属性信息获取模块,用于:
在达到定位触发条件的情况下,在截取当前终端的当前显示界面之前,确定是否获取到待定位的界面元素的属性信息;
如果未获取到,则触发显示界面截取模块420执行截取当前终端的当前显示界面的步骤。
在本申请的一种具体实施方式中,界面元素定位模块440,还用于:
在获取到待定位的界面元素的属性信息的情况下,根据属性信息,确定待定位的界面元素在当前终端的当前显示界面中的位置。
相应于上面的方法实施例,本申请实施例还提供了一种界面元素定位设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述界面元素定位方法的步骤。
如图5所示,为界面元素定位设备的组成结构示意图,界面元素定位设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
在本申请实施例中,处理器10可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行界面元素定位方法的实施例中的操作。
存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:
获得参照图片,参照图片中包含待定位的界面元素;
在达到定位触发条件的情况下,截取当前终端的当前显示界面;
将参照图片与当前显示界面进行对比;
根据对比结果,确定参照图片包含的界面元素在当前显示界面中的位置。
在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能(比如屏幕截取功能、图片对比功能)所需的应用程序等;存储数据区可存储使用过程中所创建的数据,如图片数据、位置数据等。
此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
当然,需要说明的是,图5所示的结构并不构成对本申请实施例中界面元素定位设备的限定,在实际应用中界面元素定位设备可以包括比图5所示的更多或更少的部件,或者组合某些部件。
相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述界面元素定位方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
- 一种用户界面元素定位方法、系统、计算机设备和存储介质
- 界面元素定位方法、装置、计算机设备和存储介质