控件路径生成方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:19489073 阅读:24 留言:0更新日期:2018-11-17 12:02
本发明专利技术公开了一种控件路径生成方法、装置、计算机设备及存储介质,在获取当前界面的控件触发请求之后,采用辅助功能类获取当前界面的XML文件,并且基于触发控件节点的节点信息,在当前界面的XML文件中获取触发控件节点的祖先节点的节点信息,最后基于触发控件节点的节点信息和祖先节点的节点信息,获取到触发控件节点的xpath路径。通过辅助功能类重构当前界面的XML文件,并基于触发控件节点的节点信息获取对应的祖先节点的节点信息,再根据对应的节点信息来得到触发控件节点的xpath路径,保证了xpath路径获取的便捷,并且该方法采用了Android系统通用的辅助功能类来实现,可以兼容Android系统中的不同定制系统,从而保证该xpath路径可以兼容于Android系统中不同的定制系统。

【技术实现步骤摘要】
控件路径生成方法、装置、计算机设备及存储介质
本专利技术涉及信息处理领域,尤其涉及一种控件路径生成方法、装置、计算机设备及存储介质。
技术介绍
Android是一种针对移动设备的开源软件平台,广泛地应用于各种智能手机、平板电脑、学习机或电子书等产品中。目前在应用了Android系统的移动设备中,常需要获取目标控件在当前界面的位置信息。对于获取该目标控件的位置信息有多种实现方式,其中较多地是通过PC端抓取dump之后再生成对应的xpath路径,但是这个抓取过程必须手动操作,而且整个方法需要借助PC端实现,操作过程也较为繁琐。此外,应用了Android系统的移动设备由于存在很多定制的系统。在传统的获取目标控件在当前界面的位置信息的方式中,常因为不同定制系统的差异而容易导致定位失败,无法保证该位置信息可以兼容于Android系统中不同的定制系统。
技术实现思路
本专利技术实施例提供一种控件路径生成方法、装置、计算机设备及存储介质,以解决控件路径获取效率不高,且容易失效的问题。第一方面,本专利技术实施例提供一种控件路径生成方法,包括以下步骤:获取当前界面的控件触发请求,所述控件触发请求包括触发控件节点的节点信息;采用辅助功能类获取当前界面的XML文件;基于所述触发控件节点的节点信息,在所述当前界面的XML文件中获取所述触发控件节点的祖先节点的节点信息;基于所述触发控件节点的节点信息和所述祖先节点的节点信息,获取所述触发控件节点的xpath路径。第二方面,本专利技术实施例提供一种控件路径生成装置,包括:控件触发请求获取装置,用于获取当前界面的控件触发请求,所述控件触发请求包括触发控件节点的节点信息;XML文件获取模块,用于采用辅助功能类获取当前界面的XML文件;祖先节点获取模块,用于基于所述触发控件节点的节点信息,在所述当前界面的XML文件中获取所述触发控件节点的祖先节点的节点信息;xpath路径获取模块,用于基于所述触发控件节点的节点信息和所述祖先节点的节点信息,获取所述触发控件节点的xpath路径。本专利技术第三方面提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本专利技术第一方面所述控件路径生成方法的步骤。本专利技术第四方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如本专利技术第一方面所述控件路径生成方法的步骤。本专利技术实施例提供的控件路径生成方法、装置、计算机设备及存储介质中,在获取到控件触发请求之后,通过采用辅助功能类获取当前界面的XML文件,并且基于触发控件节点的节点信息,在当前界面的XML文件中获取触发控件节点的祖先节点的节点信息,最后基于触发控件节点的节点信息和祖先节点的节点信息,获取到触发控件节点的xpath路径。通过辅助功能类重构当前界面的XML文件,并基于触发控件节点的节点信息获取对应的祖先节点的节点信息,再根据对应的节点信息来得到触发控件节点的xpath路径,保证了xpath路径获取的便捷,并且该方法采用了Android系统通用的辅助功能类来实现,可以兼容Android系统中的不同定制系统,从而保证该xpath路径可以兼容于Android系统中不同的定制系统。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例1中的控件路径生成方法的一流程图;图2是一个示例性的界面/窗口的所有节点的树状示意图;;图3是图1中步骤S20的一具体实施方式的一流程图;图4是图1中步骤S30的一具体实施方式的一流程图;图5是图1中步骤S40的一具体实施方式的一流程图;图6是图5中步骤S41的一具体实施方式的一流程图;图7是一个目标节点的目标节点信息示例图;图8是图5中步骤S41的另一具体实施方式的一流程图;图9是另一个目标节点的目标节点信息示例图;图10是本专利技术实施例2中的控件路径生成装置的一示意图;图11是本专利技术实施例4中的计算机设备的示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1图1示出本实施例中控件路径生成方法的一流程图。该控件路径生成方法应用在各种应用了Android系统的终端中,以解决控件路径获取效率不高,且容易失效的问题。如图1所示,该控件路径生成方法包括如下步骤:S10:获取当前界面的控件触发请求,控件触发请求包括触发控件节点的节点信息。其中,控件触发请求是指用户对终端的界面中的某一控件执行了相应操作而触发的对应请求。具体地,该操作可以是对当前界面的该控件的点击、触摸或者长按等。触发控件节点是指控件触发请求中对应的触发控件的节点。节点信息是对节点所包含的信息的属性描述。具体地,节点信息可以包括节点名称(nodeName)、节点值(nodeValue)以及节点类型(nodeType)等。可选地,可以通过Java的getSource()方法来获取触发控件节点的节点信息。Java的getSource()方法属于ActionEvent,是继承自EventObject。getSource()方法会返回当前动作所指向的对象(对控件的点击、触摸或者长按操作等),包含对象的所有信息(节点信息)。因此,可以通过该getSource()方法来获取触发控件节点的节点信息。示例性地,具体获取方式可以表示为:AccessibilityNodeInfosource=event.getSource();S20:采用辅助功能类获取当前界面的XML文件。其中,辅助功能类(AccessibilityService)是Android系统提供的一种继承Service类的服务。该服务提供了增强的用户界面,旨在帮助用户与设备进行充分地交互。辅助功能类主要提供了两种功能:查找界面元素和实现模拟点击。具体地,采用辅助功能类要求继承Service类并实现它的抽象方法。而XML(ExtensibleMarkupLanguage,可扩展标记语言)文件是标准通用标记语言的子集,其为一种用于标记电子文件使其具有结构性的标记语言。节点在XML文件中是有效而完整的结构的最小单元,在XML文件的DOM(DocumentObjectModel,文档对象模型)结构中,每个节点都是一个对象。在该步骤中,可以通过辅助功能类获取到当前界面的所有节点的节点信息,再基于所有节点的节点信息生成与当前界面相对应的XML文件。S30:基于触发控件节点的节点信息,在当前界面的XML文件中获取触发控件节点的祖先节点的节点信息。其中,祖先节点是在数据结构中,用来描述“树”型结构的名词。对于触发控件节点而言,其上级节点称为该触发控件节点的父节点,而父节点也可能会存在上级节点,触发控件节点的所有上级节点的集合就称为触发控件节点本文档来自技高网...

【技术保护点】
1.一种控件路径生成方法,其特征在于,包括以下步骤:获取当前界面的控件触发请求,所述控件触发请求包括触发控件节点的节点信息;采用辅助功能类获取当前界面的XML文件;基于所述触发控件节点的节点信息,在所述当前界面的XML文件中获取所述触发控件节点的祖先节点的节点信息;基于所述触发控件节点的节点信息和所述祖先节点的节点信息,获取所述触发控件节点的xpath路径。

【技术特征摘要】
1.一种控件路径生成方法,其特征在于,包括以下步骤:获取当前界面的控件触发请求,所述控件触发请求包括触发控件节点的节点信息;采用辅助功能类获取当前界面的XML文件;基于所述触发控件节点的节点信息,在所述当前界面的XML文件中获取所述触发控件节点的祖先节点的节点信息;基于所述触发控件节点的节点信息和所述祖先节点的节点信息,获取所述触发控件节点的xpath路径。2.如权利要求1所述的控件路径生成方法,其特征在于,所述采用辅助功能类获取当前界面的XML文件,包括以下步骤:采用所述辅助功能类获取当前界面的根节点的节点信息;基于所述根节点的节点信息,获取所述根节点对应的后代节点的节点信息;基于所述根节点的节点信息和所述后代节点的节点信息,生成所述当前界面的XML文件。3.如权利要求1所述的控件路径生成方法,其特征在于,所述基于所述触发控件节点的节点信息,在当前界面的XML文件中获取所述触发控件节点的祖先节点的节点信息,包括以下步骤:将所述触发控件节点作为当前节点,判断所述当前节点是否是根节点;若所述当前节点不是根节点,则基于所述当前节点的节点信息获取当前节点的父节点的节点信息,将所述父节点作为当前节点,并触发所述判断所述当前节点是否是根节点的步骤;若所述当前节点为根节点,则不获取当前节点的父节点的节点信息。4.如权利要求1所述的控件路径生成方法,其特征在于,所述基于所述触发控件节点的节点信息和所述祖先节点的节点信息,获取所述触发控件节点的xpath路径,包括以下步骤:在所述当前界面的XML文件中获取唯一属性信息;基于所述触发控件节点的唯一属性信息和所述祖先节点的唯一属性信息,获取所述触发控件节点的xpath绝对路径。5.如权利要求4所述的控件路径生成方法,其特征在于,所述在当前界面的XML文件中获取唯一属性信息,包括以下步骤:获取所述XML文件中的所有节点,作为目标节点,其中,每一目标节点包括至少一个目标节点信息,所述目标节点信息包括节点属性名和节点属性值;基于所有目标节点的目标节点信息中的每一个相同的所述节点属性名,获取对应的所述节点属性值的类别数量;判断是否存在所述节点属性值的类别数量等于所述目标节点的节点数量的所述节点属性名;若存在所述节点属性值的...

【专利技术属性】
技术研发人员:徐国诚
申请(专利权)人:深圳壹账通智能科技有限公司
类型:发明
国别省市:广东,44

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

1