CN112162735A - 控件标识生成方法、装置、计算机设备及存储介质 - Google Patents
控件标识生成方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112162735A CN112162735A CN202011172225.7A CN202011172225A CN112162735A CN 112162735 A CN112162735 A CN 112162735A CN 202011172225 A CN202011172225 A CN 202011172225A CN 112162735 A CN112162735 A CN 112162735A
- Authority
- CN
- China
- Prior art keywords
- control
- source code
- target
- identification
- levels
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000006870 function Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 abstract description 11
- 238000012360 testing method Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 241000282326 Felis catus Species 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请关于一种控件标识生成方法、装置、计算机设备及存储介质,涉及计算机技术领域。该方法包括:获取目标源码,该目标源码是目标控件对应的具有层级结构的代码;对目标源码进行解析,获取目标控件中至少两个层级的源码节点内容;根据至少两个层级的源码节点内容生成目标控件的控件标识,该控件标识用以定位目标控件。通过上述方法,基于控件对应的多个层级的层级信息生成控件标识,使得在生成控件标识的过程中,能够基于控件对应的多个层级的层级信息生成控件标识,从而提高了控件标识的稳定性和唯一性。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种控件标识生成方法、装置、计算机设备及存储介质。
背景技术
在APP(Application,应用程序)开发过程中,需要对APP进行UI(User Interface,用户界面)测试,而UI测试强依赖于对页面控件的定位,一般通过添加页面控件标识的方式实现对页面控件的定位。
在相关技术中,对RN(React Native)页面控件增加标识时,需要对每个控件人工添加对应于该控件自身信息的控件标识,控件的自身信息包括控件对应的点击事件的方法名以及控件对应的字符串。
然而,在上述相关技术中,为控件添加控件标识的操作依赖于人工操作,且控件标识的生成依赖于控件自身的信息,从而使得生成的控件标识的稳定性、唯一性较差。
发明内容数据
本申请关于一种控件标识生成方法、装置、计算机设备及存储介质,可以提高控件标识的稳定性和唯一性。该技术方案如下:
一方面,提供了一种控件标识生成方法,所述方法包括:
获取目标源码,所述目标源码是目标控件对应的具有层级结构的代码;
对所述目标源码进行解析,获取所述目标源码中至少两个层级的源码节点内容;所述源码节点内容用以表示当前源码节点的代码片段所描述的内容;
根据至少两个层级的所述源码节点内容生成所述目标控件的控件标识,所述控件标识用以定位所述目标控件。
另一方面,提供了一种控件标识生成装置,所述装置包括:
源码获取模块,用于获取目标源码,所述目标源码是目标控件对应的源码;所述目标源码是具有层级结构的代码;
源码解析模块,用于对所述目标源码进行解析,获取所述目标源码中至少两个层级的源码节点内容;所述源码节点内容用以表示当前源码节点的代码片段所描述的内容;
控件标识生成模块,用于根据至少两个层级的所述源码节点内容生成所述目标控件的控件标识,所述控件标识用以定位所述目标控件。
在一种可能的实现方式中,所述至少两个层级的所述源码节点内容包括:所述目标控件所属文件的文件名、指定级数内的函数名、组件名以及关键内容中的至少两个。
在一种可能的实现方式中,所述控件标识生成模块,包括:
组合子模块,用于按照指定顺序对至少两个层级的所述源码节点内容进行组合;
控件标识生成子模块,用于将组合结果获取为所述目标控件的所述控件标识。
在一种可能的实现方式中,所述源码解析模块,包括:
控件标签获取子模块,用于获取所述目标控件的控件标签,所述控件标签用以指示所述目标控件是否为待添加控件标识的控件;
源码节点内容获取子模块,用于响应于所述目标控件的控件标签指示所述目标控件为待添加控件标识的控件,对所述目标源码进行解析,获取所述目标源码中至少两个层级的所述源码节点内容。
在一种可能的实现方式中,所述源码节点内容获取子模块,用于,
响应于所述目标控件的控件标签指示所述目标控件为非待添加控件标识的控件,跳过获取所述目标源码中至少两个层级的所述源码节点内容,以及,根据至少两个层级的所述源码节点内容生成所述目标控件的控件标识的步骤。
在一种可能的实现方式中,所述装置还包括:
加密模块,用于在所述根据至少两个层级的所述源码节点内容生成所述目标控件的控件标识之后,对所述控件标识进行加密。
在一种可能的实现方式中,所述装置还包括:
解密方法生成模块,用于基于对所述控件标识进行加密的加密方法,生成解密方法,所述解密方法用于对加密后的所述控件标识进行解密。
另一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现本申请实施例中提供的控件标识生成方法。
另一方面,提供了一种计算机可读存储介质,可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述本申请实施例中提供的控件标识生成方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的控件标识生成方法。
本申请提供的技术方案带来的有益效果至少包括:
通过基于具有层级结构的目标源码中所包含的至少两个层级的源码节点内容,生成对应于该目标源码的目标控件的控件标识,使得在生成控件标识的过程中,能够基于控件对应的多个层级的层级信息生成控件标识,从而使得该控件标识的生成基础不单一局限在控件自身的信息上,进而提高了控件标识的稳定性和唯一性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一示例性实施例示出的控件标识生成方法的流程图;
图2示出了本申请一示例性实施例示出的控件标识生成方法的流程图;
图3示出了本申请一示例性实施例示出的控件标识生成系统的示意图;
图4是根据本申请一示例性实施例示出的控件标识生成装置的方框图;
图5是根据一示例性实施例示出的计算机设备的结构框图;
图6是根据一示例性实施例示出的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单的介绍:
1)React Native(RN)
React Native是一个使用React和应用平台的原生功能来构建Android和iOS应用的开源框架。用户可以通过React Native使用JavaScript来访问移动平台的API(Application Programming Interface,应用程序接口),以及使用React组件来描述UI的外观和行为:一系列可重用、可嵌套的代码。
2)控件
控件是指对数据和方法的封装。控件可以有自己的属性和方法,其中属性是控件数据的简单访问者,方法则是控件的一些简单而可见的功能,对于移动终端应用来说,应用上展示的所有内容都是由一个个控件所构成的,比如用来点击的按钮,用来阅读的新闻内容等。
在移动终端APP的测试过程中,往往采用一些用例对移动终端APP中的控件进行测试,或者通过使用自动化的测试工具,通过编写自动化测试脚本来实现对APP中的控件的测试,从而减少测试过程中的人员需求,提高测试效率。在通过测试工具对应用程序进行测试的过程中,需要通过控件的XPath(XML Path Language,XML路径语言)获取每个控件的标识来实现对各个控件的定位。本申请提供了一种控件标识生成方法,能够提高控件标识的稳定性和唯一性。图1示出了本申请一示例性实施例示出的控件标识生成方法的流程图,该方法可以由计算机设备执行,该计算机设备可以实现为终端或者服务器,如图1所示,该方法包括:
步骤110,获取目标源码,该目标源码是目标控件对应的具有层级结构的代码。
在一种可能的实现方式中,该目标源码为RN源码。其中,RN源码是指基于RN框架开发的应用代码,该RN源码中包含RN框架的JS(JavaScript)代码以及RN业务的JS代码。
视图是UI的基本组成部分,屏幕上的一个矩形元素、可用于显示文本、图像或响应用户输入的元素,甚至应用程序最小的视觉元素(例如一行文本或一个按钮)都是各种视图。在React Native中,开发人员使用React组件通过JavaScript来调用这些视图。在RN源码中包含各个控件对应的JS代码。在获取目标源码时,可以获取其中一个控件为目标控件,并获取其对应的RN源码为目标源码。
在一种可能的实现方式中,目标源码是具有层级结构的代码,例如上述的RN源码,即对于一个目标控件对应的目标源码而言,其包含至少一组子目标源码,各组子目标源码之间存在一定的顺序关系。
步骤120,对目标源码进行解析,获取目标控件中至少两个层级的源码节点内容;该源码节点内容用以表示当前源码节点的代码片段所描述的内容。
在一种可能的实现方式中,一个层级的源码节点内容是对应于该层级的源码节点的代码所描述的内容进行定义的,比如,代码<Text>Hello,I am your cat!</Text>,用以表示文本“Hello,I am your cat!”,其对应源码节点内容Text用以表示该代码所描述的内容为文本内容。
步骤130,根据至少两个层级的源码节点内容生成目标控件的控件标识,该控件标识用以定位目标控件。
在一种可能的实现方式中,该目标控件的控件标识是将至少两个层级的源码节点内容按照指定的排列顺序进行排列所获得的,该指定顺序可以由开发人员根据实际需求进行设定。
在一种可能的实现方式中,计算机设备将生成的控件标识设置在其对应的目标控件的属性中,以便于在APP自动化测试中,能够根据该控件标识实现对该目标控件的定位。
综上所述,本申请实施例提供的控件标识生成方法,通过基于具有层级结构的目标源码中所包含的至少两个层级的源码节点内容,生成对应于该目标源码的目标控件的控件标识,使得在生成控件标识的过程中,能够基于控件对应的多个层级的层级信息生成控件标识,从而使得该控件标识的生成基础不单一局限在控件自身的信息上,进而提高了控件标识的稳定性和唯一性。
在一种可能的实现方式中,在一次APP测试中,并非所有的控件都需要参与测试,即并非所有的控件都需要设置有对应的控件标识以使得在APP测试过程中对其进行定位。图2示出了本申请一示例性实施例示出的控件标识生成方法的流程图,该方法可以由计算机设备执行,该计算机设备可以实现为终端或者服务器,如图2所示,该方法包括:
步骤210,获取目标控件的控件标签,该控件标签用以指示该目标控件是否为待添加控件标识的控件。
在一种可能的实现方式中,该目标控件的控件标签是根据自动化测试需求或者业务特点自定义制定的,其中,自动化测试包括UI自动化测试,兼容性自动化测试等一系列自动化测试;而业务特点是指基于本次测试的测试目标进行目标控件自定义,即若本次测试只针对某一类控件进行测试,则只在该类控件中设置对应的控件标签,比如只对Text控件进行测试,那么可以只在Text控件中设置对应的控件标签;计算机设备在进行控件标识添加时,检测到Text控件具有指示该控件为待添加控件标识的控件标签,则针对该Text控件生成并添加控件标识。
在一种可能的实现方式中,在各个控件的属性中均设置有控件标签,其中,待测试控件的控制标签为第一类控件标签;非待测试控件的控件标签为第二类控件标签,其中第一类控件标签与第二类控件标签不同。
或者,在另一种可能的实现方式中,在待测试控件的属性中添加有控件标签,在非待测试控件的属性中没有添加控件标签,从而减少在控件标签添加过程中的不必要的设置操作,以节省计算机设备的相关资源。
步骤220,响应于目标控件的控件标签指示目标控件为待添加控件标识的控件,对目标源码进行解析,获取目标源码中至少两个层级的源码节点内容。
以各个控件的属性中均设置有控件标签为例,在一种可能的实现方式中,响应于目标控件的控件标签为第一类控件标签,对目标源码进行解析,获取目标源码中至少两个层级的源码节点内容;该第一类控件标签指示目标控件为待添加控件标识的控件。
在一种可能的实现方式中,响应于目标控件的控件标签指示目标控件为非待添加控件标识的控件,跳过获取目标源码中至少两个层级的源码节点内容,以及,根据至少两个层级的源码节点内容生成目标控件的控件标识的步骤。
对应于指示目标控件为待添加控件标识的控件的第一类控件标签,响应于目标控件的控件标签为第二类控件标签,确认该目标控件为非待添加控件标识的控件,则跳过对该目标控件生成控件标识的步骤;该第二类控件标签指示目标控件为非待添加控件标识的控件。
在一种可能的实现方式中,至少两个层级的源码节点内容包括:目标控件所属文件的文件名,指定级数内的函数名、组件名以及关键内容中的至少两个。
例如,一个目标控件所属文件为index.tsx文件,其中的代码为:
其中,index.tsx为文件名,render为函数名,Text为组件名,key为关键内容。其中,指定级数内的函数名在上述代码中并未体现,在一种可能的实现方式中,可以获取指定级数内的任意一个函数名作为生成控件标识的依据,或者,也可以获取距离组件名最近的一个函数名作为生成控件标识的依据。
在一种可能的实现方式中,该指定级数为三级。
步骤230,按照指定顺序对至少两个层级的源码节点内容进行组合。
在一种可能的实现方式中,按照层级范围由大到小,或者,执行信息由前到后的顺序对至少两个层级的源码节点内容进行组合,比如,如上述代码,按照层级范围由大到小,或者,执行信息由前到后的顺序对四个层级的源码节点内容进行组合可以是index、render、Text、key。
需要说明的是,上述对指定顺序的说明,以及组合成控件标识的源码节点内容的数量的说明仅为示意性的,开发人员可以基于实际需求对源码节点内容的排列顺序,以及组合成控件标识的源码节点内容的数量进行调整,本申请对此不进行限制。
步骤240,将组合结果获取为目标控件的控件标识。
在一种可能的实现方式中,计算机设备通过将按照指定顺序组合的至少两层源码节点内容的组合结果的格式更改为预设的控件标识格式,以生成目标控件的控件标识,比如,如上述代码基于四个层级的源码节点内容生成的控件标识可以是index_render_Text_key。
由于该控件标识是基于目标控件对应的目标源码的层级结构生成的,在一定程度上包含了目标源码的层级结构信息,为了防止因控件标识造成对目标源码的层级结构信息的泄露,在一种可能的实现方式中,在根据至少两个层级的源码节点内容生成目标控件的控件标识之后,该方法还包括:
对该控件标识进行加密。
在一种可能的实现方式中,基于对控件标识进行加密的加密方法,生成解密方法,该解密方法用于对加密后的控件标识进行解密。
由于在目标源码中添加控件标识会给所属的应用程序的安装包造成一定的体积增量,为减少由于增加的控件标识对应用程序安装包的体积的影响,同时兼顾对目标源码的层级结构信息的保护,同时防止控件标识被篡改,在一种可能的实现方式中,采用MD5消息摘要算法(Message-Digest Algorithm 5,消息摘要算法第五版)对生成的控件标识进行加密,同时生成一份对照表,基于MD5消息摘要算法的不可逆性,该对照表是在对源码打包时实时生成的,保存在本地,用以为控件标识的使用方提供解密反查的依据。
当该源码为RN源码时,基于RN源码可以应用于多个平台的特性,在一种可能的实现方式中,在对源码进行打包之前,该方法还包括:
获取该源码对应的应用平台;
根据该源码对应的应用平台对各个控件增加相应的属性。
该应用平台可以是Android平台,也可以是iOS平台,以保证该源码在各个平台上添加的控件标识的统一。
综上所述,本申请实施例提供的控件标识生成方法,通过基于具有层级结构的目标源码中所包含的至少两个层级的源码节点内容,生成对应于该目标源码的目标控件的控件标识,使得在生成控件标识的过程中,能够基于控件对应的多个层级的层级信息生成控件标识,从而使得该控件标识的生成基础不单一局限在控件自身的信息上,进而提高了控件标识的稳定性和唯一性。
图3示出了本申请一示例性实施例示出的控件标识生成系统的示意图,如图3所示,计算机设备300获取到目标控件对应的源码,通过源码解析模块310对目标控件的源码进行解析,获得控件标签以及源码内容,将解析获得的目标控件的控件标签发送给控件标签识别模块320,响应于该控件标签指示该目标控件为非待添加控件标识的控件,结束对该目标控件的控件标识生成操作,响应于该控件标签指示该目标控件为待添加控件标识的控件,将源码内容发送给源码节点内容获取模块330,获得至少两个层级的源码节点内容,如图3中所示的文件名(index.tsx)、函数名(render)、组件名(Text)以及关键内容(key)中的至少两个,并将源码节点内容发送给控件标识生成模块340,生成相应的控件标识:index_render_Text_key(以四个层级的源码节点内容为例),为保证控件标识的安全性,将生成的控件标识导入加密模块350中,生成加密后的控件标识,并将加密后的控件标识添加到目标控件的属性中。
图4是根据本申请一示例性实施例示出的控件标识生成装置的方框图,该装置可以应用于计算机设备中,该计算机设备可以实现为终端或者服务器,如图4所示,该装置包括:
源码获取模块410,用于获取目标源码,该目标源码是目标控件对应的源码;目标源码是具有层级结构的代码;
源码解析模块420,用于对目标源码进行解析,获取目标源码中至少两个层级的源码节点内容;该源码节点内容用以表示当前源码节点的代码片段所描述的内容;
控件标识生成模块430,用于根据至少两个层级的源码节点内容生成目标控件的控件标识,该控件标识用以定位目标控件。
在一种可能的实现方式中,该至少两个层级的源码节点内容包括:该目标控件所属文件的文件名、指定级数内的函数名、组件名以及关键内容中的至少两个。
在一种可能的实现方式中,该控件标识生成模块430,包括:
组合子模块,用于按照指定顺序对至少两个层级的源码节点内容进行组合;
控件标识生成子模块,用于将组合结果获取为目标控件的控件标识。
在一种可能的实现方式中,该源码解析模块420,包括:
控件标签获取子模块,用于获取目标控件的控件标签,该控件标签用以指示目标控件是否为待添加控件标识的控件;
源码节点内容获取子模块,用于响应于目标控件的控件标签指示目标控件为待添加控件标识的控件,对目标源码进行解析,获取目标源码中至少两个层级的源码节点内容。
在一种可能的实现方式中,该源码节点内容获取子模块,用于,
响应于目标控件的控件标签指示目标控件为非待添加控件标识的控件,跳过获取目标源码中至少两个层级的源码节点内容,以及,根据至少两个层级的源码节点内容生成目标控件的控件标识的步骤。
在一种可能的实现方式中,该装置还包括:
加密模块,用于在根据至少两个层级的源码节点内容生成目标控件的控件标识之后,对控件标识进行加密。
在一种可能的实现方式中,该装置还包括:
解密方法生成模块,用于基于对控件标识进行加密的加密方法,生成解密方法,该解密方法用于对加密后的控件标识进行解密。
综上所述,本申请实施例提供的控件标识生成装置,应用于计算机设备中,通过基于具有层级结构的目标源码中所包含的至少两个层级的源码节点内容,生成对应于该目标源码的目标控件的控件标识,使得在生成控件标识的过程中,能够基于控件对应的多个层级的层级信息生成控件标识,从而使得该控件标识的生成基础不单一局限在控件自身的信息上,进而提高了控件标识的稳定性和唯一性。
图5是根据一示例性实施例示出的计算机设备的结构框图。该计算机设备可以实现为本申请上述方案中的控件标识生成系统中的计算机设备,该计算机设备可以是服务器。所述计算机设备500包括中央处理单元(Central Processing Unit,CPU)501、包括随机存取存储器(Random Access Memory,RAM)502和只读存储器(Read-Only Memory,ROM)503的系统存储器504,以及连接系统存储器504和中央处理单元501的系统总线505。所述计算机设备500还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input/Output系统,I/O系统)506,和用于存储操作系统513、应用程序514和其他程序模块515的大容量存储设备507。
所述基本输入/输出系统506包括有用于显示信息的显示器508和用于用户输入信息的诸如鼠标、键盘之类的输入设备509。其中所述显示器508和输入设备509都通过连接到系统总线505的输入输出控制器510连接到中央处理单元501。所述基本输入/输出系统506还可以包括输入输出控制器510以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器510还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备507通过连接到系统总线505的大容量存储控制器(未示出)连接到中央处理单元501。所述大容量存储设备507及其相关联的计算机可读介质为计算机设备500提供非易失性存储。也就是说,所述大容量存储设备507可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读寄存器(Erasable Programmable Read Only Memory,EPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-OnlyMemory,EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字多功能光盘(DigitalVersatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器504和大容量存储设备507可以统称为存储器。
根据本申请的各种实施例,所述计算机设备500还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备500可以通过连接在所述系统总线505上的网络接口单元511连接到网络512,或者说,也可以使用网络接口单元511来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器501通过执行该一个或一个以上程序来实现图1或图2所示的方法的全部或者部分步骤。
本领域技术人员可以理解,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
图6是根据一示例性实施例示出的计算机设备600的结构框图。该计算机设备600可以是终端,比如智能手机、平板电脑、笔记本电脑或台式电脑。计算机设备600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,计算机设备600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例提供的控件标识生成方法。
在一些实施例中,计算机设备600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、显示屏605、摄像头组件606、音频电路607、定位组件608和电源609中的至少一种。
外围设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏605用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置计算机设备600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在计算机设备600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在计算机设备600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在计算机设备600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位计算机设备600的当前地理位置,以实现导航或LBS(Location Based Service,基于位置的服务)。定位组件608可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源609用于为计算机设备600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,计算机设备600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以计算机设备600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测计算机设备600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对计算机设备600的3D动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在计算机设备600的侧边框和/或显示屏605的下层。当压力传感器613设置在计算机设备600的侧边框时,可以检测用户对计算机设备600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在显示屏605的下层时,由处理器601根据用户对显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置计算机设备600的正面、背面或侧面。当计算机设备600上设置有物理按键或厂商Logo时,指纹传感器614可以与物理按键或厂商Logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制显示屏605的显示亮度。具体地,当环境光强度较高时,调高显示屏605的显示亮度;当环境光强度较低时,调低显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在计算机设备600的前面板。接近传感器616用于采集用户与计算机设备600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与计算机设备600的正面之间的距离逐渐变小时,由处理器601控制显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与计算机设备600的正面之间的距离逐渐变大时,由处理器601控制显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对计算机设备600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供了一种计算机可读存储介质,用于存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述控件标识生成方法的全部或部分步骤。例如,该计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各个实施例中所示的控件标识生成方法的全部或部分步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种控件标识生成方法,其特征在于,所述方法包括:
获取目标源码,所述目标源码是目标控件对应的具有层级结构的代码;
对所述目标源码进行解析,获取所述目标源码中至少两个层级的源码节点内容;所述源码节点内容用以表示当前源码节点的代码片段所描述的内容;
根据至少两个层级的所述源码节点内容生成所述目标控件的控件标识,所述控件标识用以定位所述目标控件。
2.根据权利要求1所述的方法,其特征在于,所述至少两个层级的所述源码节点内容包括:所述目标控件所属文件的文件名、指定级数内的函数名、组件名以及关键内容中的至少两个。
3.根据权利要求1或2任一所述的方法,其特征在于,所述根据至少两个层级的所述源码节点内容生成所述目标控件的控件标识,包括:
按照指定顺序对至少两个层级的所述源码节点内容进行组合;
将组合结果获取为所述目标控件的所述控件标识。
4.根据权利要求1所述的方法,其特征在于,所述对所述目标源码进行解析,获取所述目标源码中至少两个层级的源码节点内容,包括:
获取所述目标控件的控件标签,所述控件标签用以指示所述目标控件是否为待添加控件标识的控件;
响应于所述目标控件的控件标签指示所述目标控件为待添加控件标识的控件,对所述目标源码进行解析,获取所述目标源码中至少两个层级的所述源码节点内容。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于所述目标控件的控件标签指示所述目标控件为非待添加控件标识的控件,跳过获取所述目标源码中至少两个层级的所述源码节点内容,以及,根据至少两个层级的所述源码节点内容生成所述目标控件的控件标识的步骤。
6.根据权利要求1所述的方法,其特征在于,在所述根据至少两个层级的所述源码节点内容生成所述目标控件的控件标识之后,所述方法还包括:
对所述控件标识进行加密。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
基于对所述控件标识进行加密的加密方法,生成解密方法,所述解密方法用于对加密后的所述控件标识进行解密。
8.一种控件标识生成装置,其特征在于,所述装置包括:
源码获取模块,用于获取目标源码,所述目标源码是目标控件对应的具有层级结构的代码;
源码解析模块,用于对所述目标源码进行解析,获取所述目标源码中至少两个层级的源码节点内容;所述源码节点内容用以表示当前源码节点的代码片段所描述的内容;
控件标识生成模块,用于根据至少两个层级的所述源码节点内容生成所述目标控件的控件标识,所述控件标识用以定位所述目标控件。
9.一种计算机设备,其特征在于,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的控件标识生成方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的控件标识生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011172225.7A CN112162735A (zh) | 2020-10-28 | 2020-10-28 | 控件标识生成方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011172225.7A CN112162735A (zh) | 2020-10-28 | 2020-10-28 | 控件标识生成方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112162735A true CN112162735A (zh) | 2021-01-01 |
Family
ID=73864970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011172225.7A Withdrawn CN112162735A (zh) | 2020-10-28 | 2020-10-28 | 控件标识生成方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112162735A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271735A1 (en) * | 2008-04-25 | 2009-10-29 | Microsoft Corporation | Extensible and Application-Adaptable Toolbar for Web Services |
WO2010057434A1 (zh) * | 2008-11-20 | 2010-05-27 | 腾讯科技(深圳)有限公司 | 一种生成控件对象库的方法和装置 |
CN105743736A (zh) * | 2016-01-27 | 2016-07-06 | 武汉联影医疗科技有限公司 | 自动化测试方法及系统 |
CN109814957A (zh) * | 2017-11-20 | 2019-05-28 | 北京京东尚科信息技术有限公司 | 一种用于ios系统的标签添加方法和装置 |
CN110297752A (zh) * | 2018-03-23 | 2019-10-01 | 华为软件技术有限公司 | 控件元素的获取方法及装置、自动化测试系统、存储介质 |
CN110888573A (zh) * | 2019-11-08 | 2020-03-17 | 爱钱进(北京)信息科技有限公司 | 对控件进行标识的方法、装置以及存储介质 |
CN111427577A (zh) * | 2020-04-27 | 2020-07-17 | 北京每日优鲜电子商务有限公司 | 代码处理方法、装置及服务器 |
-
2020
- 2020-10-28 CN CN202011172225.7A patent/CN112162735A/zh not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090271735A1 (en) * | 2008-04-25 | 2009-10-29 | Microsoft Corporation | Extensible and Application-Adaptable Toolbar for Web Services |
WO2010057434A1 (zh) * | 2008-11-20 | 2010-05-27 | 腾讯科技(深圳)有限公司 | 一种生成控件对象库的方法和装置 |
CN105743736A (zh) * | 2016-01-27 | 2016-07-06 | 武汉联影医疗科技有限公司 | 自动化测试方法及系统 |
CN109814957A (zh) * | 2017-11-20 | 2019-05-28 | 北京京东尚科信息技术有限公司 | 一种用于ios系统的标签添加方法和装置 |
CN110297752A (zh) * | 2018-03-23 | 2019-10-01 | 华为软件技术有限公司 | 控件元素的获取方法及装置、自动化测试系统、存储介质 |
CN110888573A (zh) * | 2019-11-08 | 2020-03-17 | 爱钱进(北京)信息科技有限公司 | 对控件进行标识的方法、装置以及存储介质 |
CN111427577A (zh) * | 2020-04-27 | 2020-07-17 | 北京每日优鲜电子商务有限公司 | 代码处理方法、装置及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415705B (zh) | 网页生成方法、装置、存储介质及设备 | |
CN112000331A (zh) | 页面渲染方法、装置、电子设备及存储介质 | |
CN112420217B (zh) | 消息推送方法、装置、设备及存储介质 | |
CN112256320B (zh) | 版本号生成方法、装置、终端及存储介质 | |
CN110784370B (zh) | 设备测试的方法、装置、电子设备及介质 | |
CN111159604A (zh) | 图片资源加载方法及装置 | |
CN111680232A (zh) | 页面展示方法、装置、设备以及存储介质 | |
CN112749362A (zh) | 控件创建方法、装置、设备及存储介质 | |
CN112257006A (zh) | 页面信息的配置方法、装置、设备及计算机可读存储介质 | |
CN113467663B (zh) | 界面配置方法、装置、计算机设备及介质 | |
CN111737100A (zh) | 数据获取方法、装置、设备及存储介质 | |
CN113837709A (zh) | 业务流程的在线化处理方法、装置、终端及可读存储介质 | |
CN113051485B (zh) | 群组搜索方法、装置、终端及存储介质 | |
CN111294320B (zh) | 数据转换的方法和装置 | |
CN113836426A (zh) | 一种信息推送的方法、装置及电子设备 | |
CN113268234A (zh) | 页面生成方法、装置、终端和存储介质 | |
CN112162735A (zh) | 控件标识生成方法、装置、计算机设备及存储介质 | |
CN113076452A (zh) | 应用分类的方法、装置、设备及计算机可读存储介质 | |
CN114385939A (zh) | 应用显示方法、应用显示系统、装置及设备 | |
CN112905328A (zh) | 任务处理方法、装置及计算机可读存储介质 | |
CN112783533A (zh) | 版本信息更新方法、装置、终端及存储介质 | |
CN111680039A (zh) | 订单信息的存储方法、查询方法、装置、设备及存储介质 | |
CN110968549A (zh) | 文件存储的方法、装置、电子设备及介质 | |
CN112699906A (zh) | 获取训练数据的方法、装置及存储介质 | |
CN112308104A (zh) | 异常识别方法、装置及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210101 |
|
WW01 | Invention patent application withdrawn after publication |