CN116701174A - 页面元素的定位方法、装置、设备及计算机可读存储介质 - Google Patents
页面元素的定位方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN116701174A CN116701174A CN202310461671.7A CN202310461671A CN116701174A CN 116701174 A CN116701174 A CN 116701174A CN 202310461671 A CN202310461671 A CN 202310461671A CN 116701174 A CN116701174 A CN 116701174A
- Authority
- CN
- China
- Prior art keywords
- target
- page
- attribute information
- positioning
- elements
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 230000015654 memory Effects 0.000 claims description 16
- 230000005856 abnormality Effects 0.000 claims description 14
- 230000033001 locomotion Effects 0.000 description 43
- 230000008569 process Effects 0.000 description 34
- 239000011295 pitch Substances 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 11
- 230000002093 peripheral effect Effects 0.000 description 10
- 230000001133 acceleration Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- CVOFKRWYWCSDMA-UHFFFAOYSA-N 2-chloro-n-(2,6-diethylphenyl)-n-(methoxymethyl)acetamide;2,6-dinitro-n,n-dipropyl-4-(trifluoromethyl)aniline Chemical compound CCC1=CC=CC(CC)=C1N(COC)C(=O)CCl.CCCN(CCC)C1=C([N+]([O-])=O)C=C(C(F)(F)F)C=C1[N+]([O-])=O CVOFKRWYWCSDMA-UHFFFAOYSA-N 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004927 fusion Effects 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
- 239000000463 material Substances 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
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/451—Execution arrangements for user interfaces
Abstract
本申请公开了一种页面元素的定位方法、装置、设备及计算机可读存储介质。方法包括:获取在目标页面中对目标元素进行定位的定位结果;基于定位结果指示目标页面中不存在目标元素,获取第一元素和第二元素中的至少一个元素的初始属性信息、目标元素的初始属性信息和目标页面包括的各个页面元素的目标属性信息,第一元素为目标元素的兄弟元素,第二元素为目标元素的父元素;基于目标页面中存在第一元素和第二元素中的至少一个元素,根据目标元素的初始属性信息,在各个页面元素中定位目标元素。该方法提高了元素定位的成功率。
Description
技术领域
本申请实施例涉及自动测试技术领域,特别涉及一种页面元素的定位方法、装置、设备及计算机可读存储介质。
背景技术
在软件开发过程中,软件测试是不可缺少的一个步骤。软件测试利用测试工具按照测试方案和流程进行测试操作,从而达到发现潜伏在软件中的缺陷,减少软件开发和维护的成本,促进软件质量提升的目的。随着软件功能复杂度的不断提高,自动化测试技术也在不断发展和进步。
相关技术中,页面元素的定位是自动化测试的核心内容,只有精确定位到了页面元素,才能进行下一步的自动化操作。如果定位不到页面元素,会出现报错行为,需要对软件进行维护。因此,需要一种页面元素的定位方法来精准的定位到页面元素,提高页面元素的定位的准确性,提高软件的质量,进而节省软件的维护成本。
发明内容
本申请实施例提供了一种页面元素的定位方法、装置、设备及计算机可读存储介质,可用于解决相关技术中的问题。所述技术方案如下:
一方面,本申请实施例提供了一种页面元素的定位方法,所述方法包括:
获取在目标页面中对目标元素进行定位的定位结果;
基于所述定位结果指示所述目标页面中不存在所述目标元素,获取第一元素和第二元素中的至少一个元素的初始属性信息、所述目标元素的初始属性信息和所述目标页面包括的各个页面元素的目标属性信息,所述第一元素为所述目标元素的兄弟元素,所述第二元素为所述目标元素的父元素;
基于所述目标页面中存在所述第一元素和所述第二元素中的至少一个元素,根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,其中,所述目标页面中是否存在所述第一元素和所述第二元素中的至少一个元素基于所述各个页面元素的目标属性信息、所述第一元素和所述第二元素的初始属性信息确定。
在一种可能的实现方式中,所述目标元素的初始属性信息为多个;
所述根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,包括:
基于所述各个页面元素中存在第三元素,将所述第三元素作为所述目标元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素。
在一种可能的实现方式中,所述目标元素的初始属性信息为多个;
所述根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,包括:
基于所述各个页面元素中不存在第三元素,且所述目标页面中存在所述第一元素和所述第二元素,在所述各个页面元素中确定所述第二元素对应的多个子元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素;
将所述第二元素对应的多个子元素中,与所述第一元素之间的位置关系满足位置要求的子元素作为所述目标元素。
在一种可能的实现方式中,所述目标元素的初始属性信息为多个;
所述根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,包括:
基于所述各个页面元素中不存在第三元素,且所述目标页面中存在所述第一元素,不存在所述第二元素,在所述各个页面元素中确定所述第一元素的父元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素;
在所述各个页面元素中确定所述第一元素的父元素对应的多个子元素;
将所述第一元素的父元素对应的多个子元素中,与所述第一元素之间的位置关系满足位置要求的子元素作为所述目标元素。
在一种可能的实现方式中,所述目标元素的初始属性信息为多个;
所述根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,包括:
基于所述各个页面元素中不存在第三元素,且所述目标页面中不存在所述第一元素,存在所述第二元素,在所述各个页面元素中确定所述第二元素对应的子元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素;
在所述第二元素对应的子元素中定位所述目标元素。
在一种可能的实现方式中,所述在所述第二元素对应的子元素中定位所述目标元素,包括:
基于所述第二元素对应的子元素的个数为多个,确定所述第二元素对应的各个子元素分别和所述目标元素的相似度;
将所述第二元素对应的多个子元素中,与所述目标元素的相似度满足相似要求的子元素作为所述目标元素。
在一种可能的实现方式中,所述获取在目标页面中对目标元素进行定位的定位结果,包括:
获取所述目标页面对应的程序代码,所述程序代码包括用于定位所述目标元素的子代码;
对所述子代码进行异常捕获,得到捕获结果,所述捕获结果用于指示在所述目标页面中定位所述目标元素时是否发生异常;
基于所述捕获结果指示在所述目标页面中定位所述目标元素时发生异常,对所述捕获结果进行分类,得到所述定位结果。
另一方面,本申请实施例提供了一种页面元素的定位装置,所述装置包括:
获取模块,用于获取在目标页面中对目标元素进行定位的定位结果;
所述获取模块,还用于基于所述定位结果指示所述目标页面中不存在所述目标元素,获取第一元素和第二元素中的至少一个元素的初始属性信息、所述目标元素的初始属性信息和所述目标页面包括的各个页面元素的目标属性信息,所述第一元素为所述目标元素的兄弟元素,所述第二元素为所述目标元素的父元素;
定位模块,用于基于所述目标页面中存在所述第一元素和所述第二元素中的至少一个元素,根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,其中,所述目标页面中是否存在所述第一元素和所述第二元素中的至少一个元素基于所述各个页面元素的目标属性信息、所述第一元素和所述第二元素的初始属性信息确定。
在一种可能的实现方式中,所述目标元素的初始属性信息为多个;
所述定位模块,用于基于所述各个页面元素中存在第三元素,将所述第三元素作为所述目标元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素。
在一种可能的实现方式中,所述目标元素的初始属性信息为多个;
所述定位模块,用于基于所述各个页面元素中不存在第三元素,且所述目标页面中存在所述第一元素和所述第二元素,在所述各个页面元素中确定所述第二元素对应的多个子元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素;将所述第二元素对应的多个子元素中,与所述第一元素之间的位置关系满足位置要求的子元素作为所述目标元素。
在一种可能的实现方式中,所述目标元素的初始属性信息为多个;
所述定位模块,用于基于所述各个页面元素中不存在第三元素,且所述目标页面中存在所述第一元素,不存在所述第二元素,在所述各个页面元素中确定所述第一元素的父元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素;在所述各个页面元素中确定所述第一元素的父元素对应的多个子元素;将所述第一元素的父元素对应的多个子元素中,与所述第一元素之间的位置关系满足位置要求的子元素作为所述目标元素。
在一种可能的实现方式中,所述目标元素的初始属性信息为多个;
所述定位模块,用于基于所述各个页面元素中不存在第三元素,且所述目标页面中不存在所述第一元素,存在所述第二元素,在所述各个页面元素中确定所述第二元素对应的子元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素;在所述第二元素对应的子元素中定位所述目标元素。
在一种可能的实现方式中,所述定位模块,用于基于所述第二元素对应的子元素的个数为多个,确定所述第二元素对应的各个子元素分别和所述目标元素的相似度;将所述第二元素对应的多个子元素中,与所述目标元素的相似度满足相似要求的子元素作为所述目标元素。
在一种可能的实现方式中,所述获取模块,用于获取所述目标页面对应的程序代码,所述程序代码包括用于定位所述目标元素的子代码;对所述子代码进行异常捕获,得到捕获结果,所述捕获结果用于指示在所述目标页面中定位所述目标元素时是否发生异常;基于所述捕获结果指示在所述目标页面中定位所述目标元素时发生异常,对所述捕获结果进行分类,得到所述定位结果。
另一方面,本申请实施例提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以使电子设备实现上述任一所述的页面元素的定位方法。
另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以使计算机实现上述任一所述的页面元素的定位方法。
另一方面,还提供了一种计算机程序或计算机程序产品,所述计算机程序或计算机程序产品中存储有至少一条计算机指令,所述至少一条计算机指令由处理器加载并执行,以使计算机实现上述任一种页面元素的定位方法。
本申请实施例提供的技术方案至少带来如下有益效果:
本申请实施例提供的技术方案当在目标页面中对目标元素进行定位的定位结果指示目标页面中不存在目标元素时,根据目标元素的兄弟元素和父元素中的至少一个元素的初始属性信息以及目标页面中包括的页面元素的目标属性信息,确定目标页面存在目标元素的兄弟元素和/或目标元素的父元素时,则表示目标页面中存在目标元素,此时,根据目标元素的初始属性信息,在页面元素中定位目标元素。该方法能够成功定位到目标元素,提高了元素定位的成功率,而且无需开发人员对目标页面的代码进行修改维护,一定程度上能够降低目标页面的维护成本,提高目标页面对应的软件的质量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种页面元素的定位方法的实施环境示意图;
图2是本申请实施例提供的一种页面元素的定位方法的流程图;
图3是本申请实施例提供的一种目标页面的显示示意图;
图4是本申请实施例提供的另一种目标页面的显示示意图;
图5是本申请实施例提供的另一种目标页面的显示示意图;
图6是本申请实施例提供的一种页面元素的定位方法的架构图;
图7是本申请实施例提供的一种获取在目标页面中对目标元素进行定位的定位结果的流程图;
图8是本申请实施例提供的一种在页面元素中定位目标元素的流程图;
图9是本申请实施例提供的一种页面元素的定位装置的结构示意图;
图10是本申请实施例提供的一种终端设备的结构示意图;
图11是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种页面元素的定位方法的实施环境示意图,如图1所示,该实施环境包括:电子设备101。其中,电子设备101可以是终端设备,也可以是服务器,本申请实施例对此不进行限定。电子设备101用于执行本申请实施例提供的页面元素的定位方法。
可选地,电子设备101为终端设备,终端设备是任何一种可与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或者手写设备等一种或多种方式进行人机交互的电子设备产品,例如,PC(Personal Computer,个人计算机)、手机、智能手机、PDA(Personal DigitalAssistant,个人数字助手)、可穿戴设备、PPC(Pocket PC,掌上电脑)、平板电脑、智能车机、智能电视、智能音箱等。电子设备101为服务器,服务器可以是一台服务器,也可以是由多台服务器单元组成的服务器集群,还可以是一个云计算服务中心。终端设备与服务器通过有线网络或者无线网络建立通信连接。
本领域技术人员应能理解上述终端设备和服务器仅为举例说明,其他现有的或者今后可能出现的终端设备或服务器,如可适用于本申请,也应包含在本申请的保护范围之内,并在此以引用方式包含于此。
本申请实施例提供了一种页面元素的定位方法,该方法可应用于上述实施环境,以图2所示的本申请实施例提供的一种页面元素的定位方法的流程图为例,该方法可由图1中的电子设备101执行。如图2所示,该方法包括下述步骤201至步骤203。
在步骤201中,获取在目标页面中对目标元素进行定位的定位结果。
其中,目标页面为目标应用程序包括的任意一个包括页面元素的页面,目标应用程序为任一种应用程序,本申请实施例对此不进行限定。页面元素是指界面元素(Interface element),界面元素为可满足交互需求的软件或系统界面所包含的满足用户交互需求的一系列元素。
可选地,获取在目标页面中对目标元素进行定位的定位结果的过程包括:获取目标页面对应的程序代码,程序代码包括用于定位目标元素的子代码,对子代码进行异常捕获,得到捕获结果,捕获结果用于指示在目标页面中定位目标元素时是否发生异常;基于捕获结果指示在目标页面中定位目标元素时发生异常,对捕获结果进行分类,得到定位结果。
在一种可能的实现方式中,电子设备中存储有目标应用程序的各个页面对应的程序代码以及各个页面的页面标识和各个页面对应的程序代码的对应关系,电子设备将目标应用程序的各个页面中的任一页面作为目标页面,进而根据目标页面的页面标识以及各个页面的页面标识和各个页面对应的程序代码的对应关系,获取目标页面对应的程序代码。目标页面对应的程序代码包括用于定位目标元素的子代码。
在一种可能的实现方式中,目标页面对应的程序代码的代码语言可以是任一种,本申请实施例对此不进行限定。示例性地,目标页面对应的程序代码的代码语言为Python语言(一种编程语言),或者,目标页面对应的程序代码的代码语言为Java语言(另一种编程语言),又或者,目标页面对应的程序代码的代码语言为C语言(另一种编程语言)。
可选地,对子代码进行异常捕获,得到捕获结果的过程包括:确定子代码对应的代码语言;调用子代码对应的代码语言的异常捕获关键字,对子代码进行异常捕获,得到捕获结果。
由于目标页面对应的程序代码中包括子代码,因此将目标页面对应的程序代码的代码语言作为子代码对应的代码语言。例如,目标页面对应的程序代码的代码语言为Python语言,则子代码对应的代码语言为Python语言。又例如,目标页面对应的程序代码的代码语言为Java语言,则子代码对应的代码语言为Java语言。
在一种可能的实现方式中,调用子代码对应的代码语言的异常捕获关键字,对子代码进行异常捕获之前,还需先确定出子代码对应的代码语言的异常捕获关键字。可选地,确定子代码对应的代码语言的异常捕获关键字的过程包括:基于子代码对应的代码语言为Python语言,则将try(尝试)关键字作为子代码对应的代码语言的异常捕获关键字。基于子代码对应的代码语言为Java语言,则将catch(抓住)关键字作为子代码对应的代码语言的异常捕获关键字。
可选地,在上述过程中确定出捕获结果之后,根据捕获结果确定在目标页面中定位目标元素时是否发生异常,基于捕获结果指示在目标页面中定位目标元素时发生异常,则对捕获结果进行分类,得到定位结果。示例性地,基于捕获结果为“session stop”、“adbno response”、“can not find el”、“el not in dom”中的任一个时,表示在目标页面中定位目标元素时发生异常。其中,捕获结果“session stop”和“adb no response”对应的定位结果为“通信中断或超时”,捕获结果“can not find el”和“el not in dom”对应的定位结果为“目标页面中不存在目标元素。捕获结果为“get_attribute(‘focused’为false)”对应的定位结果为目标页面中存在目标元素,但光标未位于目标元素且未显示目标元素的子菜单。
基于定位结果为“通信中断或超时”时,重新对子代码进行异常捕获,得到捕获结果,此时的捕获结果为在目标页面中定位目标元素时未发生异常,进而能够定位到目标元素。
在步骤202中,基于定位结果指示目标页面中不存在目标元素,获取第一元素和第二元素中的至少一个元素的初始属性信息、目标元素的初始属性信息和目标页面包括的各个页面元素的目标属性信息。
其中,第一元素为目标元素的兄弟元素,第二元素为目标元素的父元素。同理,第二元素也是第一元素的父元素。
在一种可能的实现方式中,电子设备中存储有元素属性关系数据库,元素属性关系数据库中包括目标元素的初始属性信息,目标元素的兄弟元素(第一元素)的初始属性信息和目标元素的父元素(第二元素)的初始属性信息。当定位结果指示目标页面中不存在目标元素时,通过元素属性关系数据库获取第一元素和第二元素中的至少一个元素的初始属性信息以及目标元素的初始属性信息。
可选地,电子设备的存储空间中还存储有目标页面包括的页面元素的目标属性信息,在定位结果指示目标页面中不存在目标元素时,从存储空间中获取目标页面包括的各个页面元素的目标属性信息。
其中,属性信息包括但不限于元素标识、元素Xpath(XML Path Language,XML路径语言)路径。
在步骤203中,基于目标页面中存在第一元素和第二元素中的至少一个元素,根据目标元素的初始属性信息,在各个页面元素中定位目标元素。
在一种可能的实现方式中,目标页面中是否存在第一元素和第二元素中的至少一个元素基于各个页面元素的目标属性信息、第一元素和第二元素的初始属性信息确定。可选地,基于各个页面元素中存在目标属性信息为第一元素的初始属性信息的页面元素,确定目标页面中存在第一元素;基于各个页面元素中存在目标属性信息为第二元素的初始属性信息的页面元素,确定目标页面中存在第二元素。由于第一元素为目标元素的兄弟元素,第二元素为目标元素的父元素,因此,当目标页面中存在第一元素和/或第二元素时,可以根据此推断出目标页面中存在目标元素,但是由于目标元素的初始属性信息发生了变化,导致在目标页面中无法定位到目标元素。
可选地,根据目标元素的初始属性信息,在各个页面元素中定位目标元素的过程包括:目标元素的初始属性信息为多个;基于各个页面元素中存在第三元素,将第三元素作为目标元素,其中,第三元素为各个页面元素中,目标属性信息包括目标元素的任一个初始属性信息的页面元素。可选地,还可以根据第三元素的目标属性信息,对目标元素的初始属性信息进行校正。例如,将目标元素的初始属性信息修改为第三元素的目标属性信息。
基于各个页面元素中不存在第三元素,则有下述三种情况在各个页面元素中定位目标元素。
情况一、基于目标页面中存在第一元素和第二元素,在各个页面元素中确定第二元素对应的多个子元素;根据第二元素对应的多个子元素和第一元素,定位目标元素。
在一种可能的实现方式中,每个元素对应有一个元素标签,任一个元素的元素标签用于指示任一个元素的父元素,例如,任一个元素的元素标签为任一个元素的父元素的元素标识。基于目标页面中存在第一元素和第二元素,根据各个页面元素的元素标签,在各个页面元素中确定第二元素对应的多个子元素。
可选地,根据各个页面元素的元素标签,在各个页面元素中确定第二元素对应的多个子元素的过程包括:将各个页面元素中元素标签为第二元素的元素标识的页面元素作为第二元素对应的多个子元素。
在各个页面元素中确定出第二元素对应的多个子元素之后,根据第二元素对应的多个子元素和第一元素,定位目标元素的过程包括:将第二元素对应的多个子元素中,与第一元素之间的位置关系满足位置要求的子元素作为目标元素。其中,位置关系满足位置要求基于经验进行设置,或者,根据实施环境进行调整,本申请实施例对此不进行限定。示例性地,位置关系满足位置要求是指与第一元素相邻且在第一元素之后,或者,位置关系满足位置要求是指与第一元素相邻且在第一元素之前。
示例性地,目标页面包括的各个页面元素分别为:元素1、元素2、元素3、元素4、元素5、元素6。其中,第一元素为元素1,第二元素为元素2。由于各个页面元素中存在第一元素和第二元素,因此,在各个页面元素中确定第二元素对应的多个子元素分别为:元素1、元素3、元素5和元素6。元素1、元素3、元素5和元素6的位置顺序为元素3、元素1、元素5、元素6。当位置关系满足位置要求是指与第一元素相邻且在第一元素之后时,则将元素1、元素3、元素5和元素6中的元素5作为目标元素。当位置关系满足位置要求是指与第一元素相邻且在第一元素之前时,则将元素1、元素3、元素5和元素6中的元素3作为目标元素。
情况二、基于目标页面中存在第一元素,不存在第二元素,在各个页面元素中确定第一元素的父元素,在各个页面元素中确定第一元素的父元素对应的多个子元素;根据第一元素的父元素对应的多个子元素和第一元素,定位目标元素。
可选地,根据第一元素的元素标签,在各个页面元素中确定第一元素的父元素。在各个页面元素中确定第一元素的父元素对应的多个子元素的过程与上述情况一中在各个页面元素中确定第二元素对应的多个子元素的过程类似,在此不再进行赘述。
在一种可能的实现方式中,根据第一元素的父元素对应的多个子元素和第一元素,定位目标元素的过程包括:将第一元素的父元素对应的多个子元素中,与第一元素之间的位置关系满足位置要求的子元素作为目标元素。其中,位置关系满足位置要求与上述情况一中的位置关系满足位置要求类似,在此不再进行赘述。
示例性地,目标页面包括的各个页面元素分别为:元素1、元素2、元素3、元素4、元素5、元素6。其中,第一元素为元素1,第二元素为元素7。由于各个页面元素中存在第一元素,但不存在第二元素,因此,在各个页面元素中确定第一元素的父元素为元素2,在各个页面元素中确定第一元素的父元素对应的多个子元素分别为:元素1、元素3、元素5和元素6。元素1、元素3、元素5和元素6的位置顺序为元素3、元素1、元素5、元素6。当位置关系满足位置要求是指与第一元素相邻且在第一元素之后时,则将元素1、元素3、元素5和元素6中的元素5作为目标元素。当位置关系满足位置要求是指与第一元素相邻且在第一元素之前时,则将元素1、元素3、元素5和元素6中的元素3作为目标元素。
情况三、基于目标页面中不存在第一元素,存在第二元素,在各个页面元素中确定第二元素对应的子元素;在第二元素对应的子元素中定位目标元素。
其中,情况三中在各个页面元素中确定第二元素对应的子元素的过程与上述情况一中在各个页面元素中确定第二元素对应的多个子元素的过程类似,在此不再进行赘述。
在一种可能的实现方式中,在第二元素对应的子元素中定位目标元素的过程包括:基于第二元素对应的子元素的个数为多个,确定第二元素对应的多个子元素分别和目标元素的相似度;将第二元素对应的多个子元素中,与目标元素的相似度满足相似要求的子元素作为目标元素。
可选地,确定第二元素对应的多个子元素分别和目标元素的相似度的过程包括:对于第二元素对应的多个子元素中的任一个子元素,确定任一个子元素的目标元素属性和目标元素的初始元素属性之间的相似度,将任一个子元素的目标元素属性和目标元素的初始元素属性之间的相似度作为任一个子元素和目标元素之间的相似度。
将第二元素对应的多个子元素中,与目标元素的相似度满足相似要求的子元素作为目标元素的过程包括:将第二元素对应的多个子元素中与目标元素的相似度最高的子元素作为目标元素。或者,根据第二元素对应的多个子元素和目标元素之间的相似度,在第二元素对应的多个子元素中候选元素,将任一个候选元素作为目标元素。其中,候选元素为第二元素对应的多个子元素中与目标元素之间的相似度大于相似阈值的子元素。可选地,相似阈值基于经验进行设置,或者根据实施环境进行调整,本申请实施例对此不进行限定。
在一种可能的实现方式中,在各个页面元素中定位出目标元素之后,还可以对目标元素的初始属性信息进行校正。例如,将目标元素的初始属性信息修改为在多个页面元素中定位出的页面元素的目标属性信息。
在一种可能的实现方式中,在多个页面元素中定位出目标元素时,表示光标位于目标元素。可选地,当光标位于目标元素时,还可以获取目标元素的跳转信息,目标元素的跳转信息用于指示光标位于目标元素时是否显示目标元素的子菜单。基于目标元素的跳转信息指示光标位于目标元素时显示目标元素的子菜单时,则显示目标元素的子菜单;基于目标元素的跳转信息指示光标位于目标元素时不显示目标元素的子菜单,则无需显示目标元素的子菜单。
可选地,获取目标元素的跳转信息的过程包括:电子设备中存储有各个元素的跳转信息、各个元素的元素标识和各个元素的跳转信息的对应关系。根据目标元素的元素标识以及各个元素的元素标识和各个元素的跳转信息的对应关系,获取目标元素的跳转信息。
在一种可能的实现方式中,基于定位结果指示目标页面中存在目标元素,且光标未位于目标元素,确定光标位于的聚焦元素;根据目标元素的目标位置信息和聚焦元素的参考位置信息,移动光标,使移动之后的光标位于目标元素。
可选地,基于定位结果指示目标页面中存在目标元素,且光标未位于目标元素,确定光标位于的聚焦元素的过程包括:基于定位结果指示目标页面中存在目标元素,光标未位于目标元素,且未显示目标元素的子菜单,则确定光标位于的聚焦元素。可选地,目标元素的子菜单是指选中目标元素之后出现的内容。
其中,确定光标是否位于聚焦元素的过程包括:获取目标元素的元素聚焦属性值,目标元素的元素聚焦属性值用于确定光标是否位于目标元素;根据目标元素的元素聚焦属性值,确定光标是否位于目标元素。可选地,基于目标元素的元素聚焦属性值为第一值,则确定光标位于目标元素;基于目标元素的元素聚焦属性值为第二值,则确定光标未位于目标元素。
其中,第一值和第二值不同,示例性地,第一值为1,第二值为0。当然,第一值和第二值还可以是其他值,只要保证第一值和第二值不同即可,本申请实施例对此不进行限定。
可选地,获取目标元素的元素聚焦属性值的过程包括:调用get_attribute接口获取目标元素的元素聚焦属性值。其中,get_attribute接口为返回元素的元素聚焦属性值的接口。
基于目标元素的元素聚焦属性值为第二值,表示光标未位于目标元素,则确定光标位于的聚焦元素。根据目标元素的目标位置信息和聚焦元素的参考位置信息,移动光标,使移动之后的光标位于目标元素。其中,聚焦元素为目标页面包括的各个页面元素中除目标元素之外的一个元素。
在一种可能的实现方式中,确定光标位于的聚焦元素的过程包括:确定各个页面元素的元素聚焦属性值,将元素聚焦属性值为第一值的元素作为聚焦元素。
示例性地,目标页面包括9个页面元素,其中,元素9为目标元素,元素9的元素聚焦属性值为0,元素1的元素聚焦属性值为1,元素2至元素8的元素聚焦属性值为0,由于元素1的元素聚焦属性值为1,因此,将元素1作为聚焦元素。
可选地,获取目标元素的目标位置信息和聚焦元素的参考位置信息的过程包括:将目标元素的目标点的坐标作为目标元素的目标位置信息,将聚焦元素的目标点的坐标作为聚焦元素的参考位置信息。其中,目标点可以是目标元素的左上顶点,也可以是目标元素的左下顶点,还可以是目标元素的右上顶点,还可以是目标元素的右下顶点,还可以是目标元素的中心点,本申请实施例对此不进行限定。示例性地,将目标元素的右下顶点的坐标作为目标元素的目标位置信息,将聚焦元素的右下顶点的坐标作为聚焦元素的参考位置信息。
在一种可能的实现方式中,根据目标元素的目标位置信息和聚焦元素的参考位置信息,有下述两种实现方式移动光标。
实现方式一、基于目标页面包括的各个页面元素中,在第一方向相邻的两个元素之间的第一元素间距相同,且在第二方向相邻的两个元素之间的第二元素间距相同,根据目标位置信息和参考位置信息,移动光标。
其中,目标页面为二维页面,第一方向为横向,第二方向为纵向,或者第一方向为纵向,第二方向为横向,本申请实施例对此不进行限定,只要第一方向和第二方向不同即可。以第一方向为横向,第二方向为纵向为例,在第一方向相邻的两个元素之间的第一元素间距是指在横向相邻的两个元素中第一个元素的目标点的横坐标和第二个元素的目标点的横坐标之间的差值的绝对值。在第二方向相邻的两个元素之间的第二元素间距是指在纵向相邻的两个元素中第一个元素的目标点的纵坐标和第二个元素的目标点的纵坐标之间的差值的绝对值。其中,目标点可以是元素的左上顶点,可以是元素的右上顶点,可以是元素的左下顶点,还可以是元素的右下顶点,本申请实施例对此不进行限定。
如图3是本申请实施例提供的一种目标页面的显示示意图,其中,显示有9个页面元素,横向相邻的任意两个元素之间的元素间距是相同的,纵向相邻的任意两个元素之间的元素间距是相同的。以目标点为右下顶点为例,第一元素间距为横向相邻的两个元素的右下顶点的横坐标的差值的绝对值(如元素1的右下顶点的横坐标和元素2的右下顶点的横坐标之间的差值的绝对值),第二元素间距为纵向相邻的两个元素的右下顶点的纵坐标的差值的绝对值(如元素1的右下顶点的纵坐标和元素4的右下顶点的纵坐标之间的差值的绝对值)。
在一种可能的实现方式中,根据目标位置信息和参考位置信息,移动光标的过程包括:根据目标位置信息和参考位置信息,确定目标元素和聚焦元素在第一方向的第一间距和在第二方向的第二间距;根据第一间距和第一元素间距,确定光标在第一方向的第一移动次数,根据第二间距和第二元素间距,确定光标在第二方向的第二移动次数;根据光标在第一方向的第一移动次数和在第二方向的第二移动次数,移动光标。移动之后的光标位于目标元素,光标在第一方向移动一次的距离为第一元素间距,光标在第二方向移动一次的距离为第二元素间距。
根据目标位置信息和参考位置信息,确定目标元素和聚焦元素在第一方向的第一间距和在第二方向的第二间距的过程包括:根据目标位置信息包括的第一方向的数值和参考位置信息包括的第一方向的数值,确定目标元素和聚焦元素在第一方向的第一间距;根据目标位置信息包括的第二方向的数值和参考位置信息包括的第二方向的数值,确定目标元素和聚焦元素在第二方向的第二间距。可选地,将目标位置信息包括的第一方向的数值和参考位置信息包括的第一方向的数值之间的差值的绝对值作为目标元素和聚焦元素在第一方向的第一间距。将目标位置信息包括的第二方向的数值和参考位置信息包括的第二方向的数值之间的差值的绝对值作为目标元素和聚焦元素在第二方向的第二间距。
示例性地,目标位置信息为(X0,Y0),参考位置信息为(X1,Y1),目标元素和聚焦元素在第一方向的第一间距为|X1-X0|,在第二方向的第二间距为|Y1-Y0|。
在一种可能的实现方式中,根据第一间距和第一元素间距,确定光标在第一方向的第一移动次数的过程包括:将第一间距和第一元素间距之间的商作为光标在第一方向的第一移动次数。根据第二间距和第二元素间距,确定光标在第二方向的第二移动次数的过程包括:将第二间距和第二元素间距之间的商作为光标在第二方向的第二移动次数。
示例性地,第一元素间距为s,第二元素间距为t,则根据第一间距和第一元素间距,确定光标在第一方向的第一移动次数为根据第二间距和第二元素间距,确定光标在第二方向的第二移动次数为/>
根据光标在第一方向的第一移动次数和在第二方向的第二移动次数,移动光标的过程包括:确定目标元素相对于聚焦元素在第一方向的第一子方向和在第二方向的第二子方向,按照第一元素间距,将光标向第一子方向移动第一移动次数次,按照第二元素间距,将光标向第二子方向移动第二移动次数次。
示例性地,图3中的元素1为聚焦元素,元素9为目标元素,则确定目标元素相对于聚焦元素在第一方向的第一子方向为右侧,在第二方向的第二子方向为下侧。光标在第一方向的第一移动次数为2次,在第二方向的第二移动次数为2次,因此,将光标向右侧移动2次,每次移动的距离为第一元素间距,将光标向下移动2次,每次移动的距离为第二元素间距。
实现方式二、基于目标页面包括的各个页面元素中,在第一方向相邻的两个元素之间的第一元素间距不同,且在第二方向相邻的两个元素之间的第二元素间距相同,或者,在第一方向相邻的两个元素之间的第一元素间距相同,且在第二方向相邻的两个元素之间的第二元素间距不同,根据目标位置信息和参考位置信息,确定目标元素和聚焦元素在第一方向间隔的第一元素数量和在第二方向间隔的第二元素数量,根据第一元素数量和第二元素数量,移动光标。
在一种可能的实现方式中,根据第一元素数量和第二元素数量,移动光标的过程包括:根据第一元素数量,确定光标在第一方向的第三移动次数;根据第二元素数量,确定光标在第二方向的第四移动次数;根据光标在第一方向的第三移动次数和在第二方向的第四移动次数,移动光标。其中,光标在第一方向移动一次的距离为光标移动之前位于的元素和光标移动之后位于的元素在第一方向的元素间距,光标在第二方向移动一次的距离为光标移动之前位于的元素和光标移动之后位于的元素在第二方向的元素间距。
可选地,根据第一元素数量,确定光标在第一方向的第三移动次数的过程包括:在第一元素数量的基础上添加目标数值,得到光标在第一方向的第三移动次数。根据第二元素数量,确定光标在第二方向的第四移动次数的过程包括:在第二元素数量的基础上添加目标数值,得到光标在第二方向的第四移动次数。其中,目标数值为1。
示例性地,第一元素数量为1,第二元素数量为1,则光标在第一方向的第三移动次数为2,光标在第二方向的第四移动次数为2。
需要说明的是,可以先在第一方向移动光标,再在第二方向移动光标,也可以先在第二方向移动光标,再在第一方向移动光标,还可以在第一方向移动一次,再在第二方向移动一次,直至在第一方向移动第一移动次数,在第二方向移动第二移动次数,本申请实施例对此不进行限定。
如图4是本申请实施例提供的另一种目标页面的显示示意图。其中,显示有9个元素,横向相邻的任意两个元素之间的元素间距不同,纵向相邻的任意两个元素之间的元素间距是相同的。元素1为聚焦元素,元素9为目标元素,因此,需要将光标在横向移动2次,纵向移动2次,才能将光标位于目标元素。可选地,第一次横向移动光标的距离为元素1和元素2在横向的元素间距,以使移动之后的光标位于元素2;第二次横向移动光标的距离为元素2和元素3在横向的元素间距,以使移动之后的光标位于元素3;第一次纵向移动光标的距离为元素3和元素6在纵向的元素间距,以使移动之后的光标位于元素6,第二次纵向移动光标的距离为元素6和元素9在纵向的元素间距,以使移动之后的光标位于元素9。
如图5是本申请实施例提供的另一种目标页面的显示示意图。其中,显示有9个元素,横向相邻的任意两个元素之间的元素间距是相同的,纵向相邻的任意两个元素之间的元素间距不同。元素1为聚焦元素,元素9为目标元素,因此,需要将光标在横向移动2次,纵向移动2次,才能将光标位于目标元素。可选地,第一次横向移动光标的距离为元素1和元素2在横向的元素间距,以使移动之后的光标位于元素2;第二次横向移动光标的距离为元素2和元素3在横向的元素间距,以使移动之后的光标位于元素3;第一次纵向移动光标的距离为元素3和元素6在纵向的元素间距,以使移动之后的光标位于元素6,第二次纵向移动光标的距离为元素6和元素9在纵向的元素间距,以使移动之后的光标位于元素9。
可选地,当光标移动结束之后,还可以对光标进行验证,确定光标是否位于目标元素,该过程包括:获取目标元素的长度和宽度,根据目标元素的目标位置信息、目标元素的长度和宽度,确定目标元素对应的目标区域;获取光标移动结束时的位置信息,基于目标元素对应的目标区域包括光标移动结束时的位置信息,则确定光标位于目标元素;基于目标元素对应的目标区域不包括光标移动结束时的位置信息,则确定光标未位于目标元素,因此,还需执行移动光标的操作。
上述方法当在目标页面中对目标元素进行定位的定位结果指示为目标页面中不存在目标元素时,根据目标元素的兄弟元素和父元素中的至少一个元素的初始属性信息以及目标页面中包括的页面元素的目标属性信息,确定目标页面存在目标元素的兄弟元素和/或目标元素的父元素时,则表示目标页面中存在目标元素,此时,根据目标元素的初始属性信息,在页面元素中定位目标元素。该方法能够成功定位到目标元素,提高了元素定位的成功率,而且无需开发人员对目标页面的代码进行修改维护,一定程度上能够降低目标页面的维护成本,提高目标页面对应的软件的质量。
图6是本申请实施例提供的一种页面元素的定位方法的架构图,该架构图包括元素定位检测模块、异常分析模块和错误校正模块。
其中,元素定位检测模块,用于对子代码进行异常捕获,得到捕获结果,捕获结果指示在目标页面中定位目标元素时未发生异常,则目标元素定位完成。捕获结果指示在目标页面中定位目标元素时发生异常,则将捕获结果发送至异常分析模块。
异常分析模块,用于接收元素定位检测模块发送的捕获结果,对捕获结果进行分类,得到定位结果。当定位结果指示目标页面中不存在目标元素时,借助元素属性数据库进行元素属性查询,确定目标页面中是否确实不存在目标元素,如果目标页面中确实不存在目标元素,则定位不到目标元素。如果目标页面中不是确实不存在目标元素,则将目标页面包括的各个页面元素中的第三元素定位为目标元素。将第三元素的目标属性信息发送至错误校正模块。
错误校正模块,用于接收异常分析模块发送的第三元素的目标属性信息,根据第三元素的目标属性信息对元素属性数据库中的目标元素的初始属性信息进行校正。
图7是本申请实施例提供的一种获取在目标页面中对目标元素进行定位的定位结果的流程图。该过程包括下述步骤701至步骤708。
步骤701、获取目标页面的程序代码,程序代码中包括用于对目标元素进行定位的子代码。
在一种可能的实现方式中,获取目标页面的程序代码的过程在上述步骤201中已进行描述,在此不再进行赘述。
步骤702、对子代码进行异常捕获,得到捕获结果。
在一种可能的实现方式中,对子代码进行异常捕获,得到捕获结果的过程在上述步骤201中已进行描述,在此不再进行赘述。
步骤703、确定捕获结果指示在目标页面中定位目标元素是否发生异常。
在一种可能的实现方式中,确定捕获结果指示在目标页面中定位目标元素是否发生异常的过程在上述步骤201中已进行描述,在此不再进行赘述。
步骤704、基于捕获结果指示在目标页面中定位目标元素发生异常,对捕获结果进行分类,得到定位结果。
在一种可能的实现方式中,定位结果包括两种,分别是7041和7042,其中7041指示定位结果为通信中断或超时,7042指示定位结果为目标页面中不存在目标元素。对捕获结果进行分类,得到定位结果的过程在上述步骤201中已进行描述,在此不再进行赘述。
步骤705、基于定位结果为通信中断或超时、目标页面中不存在目标元素时,确定目标元素定位失败。
步骤706、基于捕获结果指示在目标页面中定位目标元素未发生异常,确定光标是否位于目标元素。
在一种可能的实现方式中,确定光标是否位于目标元素的过程在上述步骤203中已进行描述,在此不再进行赘述。
步骤707、基于光标未位于目标元素,确定是否显示目标元素的子菜单。
在一种可能的实现方式中,确定是否显示目标元素的子菜单的过程在上述步骤203中已进行描述,在此不再进行赘述。
步骤708、基于显示目标元素的子菜单,确定目标元素定位完成。
基于未显示目标元素的子菜单,确定目标元素定位失败。
图8是本申请实施例提供的一种在页面元素中定位目标元素的流程图。其中,当捕获结果为“can not find el”、“el not in dom”时,对应的定位结果为目标页面中不存在目标元素,因此调用元素属性数据库对目标页面中是否存在目标元素进行二次判定。如果二次判定结果为目标页面中不存在目标元素,则结束目标元素的定位。如果二次判定结果为目标页面中存在目标元素,则在页面元素中定位目标元素。
图9所示为本申请实施例提供的一种页面元素的定位装置的结构示意图,如图9所示,该装置包括:
获取模块901,用于获取在目标页面中对目标元素进行定位的定位结果;
获取模块901,还用于基于定位结果指示目标页面中不存在目标元素,获取第一元素和第二元素中的至少一个元素的初始属性信息、目标元素的初始属性信息和目标页面包括的各个页面元素的目标属性信息,第一元素为目标元素的兄弟元素,第二元素为目标元素的父元素;
定位模块902,用于基于目标页面中存在第一元素和第二元素中的至少一个元素,根据目标元素的初始属性信息,在各个页面元素中定位目标元素,其中,目标页面中是否存在第一元素和第二元素中的至少一个元素基于各个页面元素的目标属性信息、第一元素和第二元素的初始属性信息确定。
在一种可能的实现方式中,目标元素的初始属性信息为多个;
定位模块902,用于基于各个页面元素中存在第三元素,将第三元素作为目标元素,第三元素为各个页面元素中,目标属性信息包括目标元素的任一个初始属性信息的页面元素。
在一种可能的实现方式中,目标元素的初始属性信息为多个;
定位模块902,用于基于各个页面元素中不存在第三元素,且目标页面中存在第一元素和第二元素,在各个页面元素中确定第二元素对应的多个子元素,第三元素为各个页面元素中,目标属性信息包括目标元素的任一个初始属性信息的页面元素;将第二元素对应的多个子元素中,与第一元素之间的位置关系满足位置要求的子元素作为目标元素。
在一种可能的实现方式中,目标元素的初始属性信息为多个;
定位模块902,用于基于各个页面元素中不存在第三元素,且目标页面中存在第一元素,不存在第二元素,在各个页面元素中确定第一元素的父元素,第三元素为各个页面元素中,目标属性信息包括目标元素的任一个初始属性信息的页面元素;在各个页面元素中确定第一元素的父元素对应的多个子元素;将第一元素的父元素对应的多个子元素中,与第一元素之间的位置关系满足位置要求的子元素作为目标元素。
在一种可能的实现方式中,目标元素的初始属性信息为多个;
定位模块902,用于基于各个页面元素中不存在第三元素,且目标页面中不存在第一元素,存在第二元素,在各个页面元素中确定第二元素对应的子元素,第三元素为各个页面元素中,目标属性信息包括目标元素的任一个初始属性信息的页面元素;在第二元素对应的子元素中定位目标元素。
在一种可能的实现方式中,定位模块902,用于基于第二元素对应的子元素的个数为多个,确定第二元素对应的各个子元素分别和目标元素的相似度;将第二元素对应的多个子元素中,与目标元素的相似度满足相似要求的子元素作为目标元素。
在一种可能的实现方式中,获取模块901,用于获取目标页面对应的程序代码,程序代码包括用于定位目标元素的子代码;对子代码进行异常捕获,得到捕获结果,捕获结果用于指示在目标页面中定位目标元素时是否发生异常;基于捕获结果指示在目标页面中定位目标元素时发生异常,对捕获结果进行分类,得到定位结果。
上述装置当在目标页面中对目标元素进行定位的定位结果指示为目标页面中不存在目标元素时,根据目标元素的兄弟元素和父元素中的至少一个元素的初始属性信息以及目标页面中包括的页面元素的目标属性信息,确定目标页面存在目标元素的兄弟元素和/或目标元素的父元素时,则表示目标页面中存在目标元素,此时,根据目标元素的初始属性信息,在页面元素中定位目标元素。该方法能够成功定位到目标元素,提高了元素定位的成功率,而且无需开发人员对目标页面的代码进行修改维护,一定程度上能够降低目标页面的维护成本,提高目标页面对应的软件的质量。
应理解的是,上述提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图10示出了本申请一个示例性实施例提供的终端设备1000的结构框图。该终端设备1000可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端设备1000还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端设备1000包括有:处理器1001和存储器1002。
处理器1001可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1001可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1001也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1001可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1001还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1002可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1002还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1002中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1001所执行以实现本申请中方法实施例提供的页面元素的定位方法。
在一些实施例中,终端设备1000还可选包括有:外围设备接口1003和至少一个外围设备。处理器1001、存储器1002和外围设备接口1003之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1003相连。具体地,外围设备包括:射频电路1004、显示屏1005、摄像头组件1006、音频电路1007和电源1009中的至少一种。
外围设备接口1003可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1001和存储器1002。在一些实施例中,处理器1001、存储器1002和外围设备接口1003被集成在同一芯片或电路板上;在一些其他实施例中,处理器1001、存储器1002和外围设备接口1003中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路1004用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1004通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1004将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1004包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1004可以通过至少一种无线通信协议来与其它终端设备进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1004还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏1005用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1005是触摸显示屏时,显示屏1005还具有采集在显示屏1005的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1001进行处理。此时,显示屏1005还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1005可以为一个,设置在终端设备1000的前面板;在另一些实施例中,显示屏1005可以为至少两个,分别设置在终端设备1000的不同表面或呈折叠设计;在另一些实施例中,显示屏1005可以是柔性显示屏,设置在终端设备1000的弯曲表面上或折叠面上。甚至,显示屏1005还可以设置成非矩形的不规则图形,也即异形屏。显示屏1005可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件1006用于采集图像或视频。可选地,摄像头组件1006包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端设备1000的前面板,后置摄像头设置在终端设备1000的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1006还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路1007可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1001进行处理,或者输入至射频电路1004以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端设备1000的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1001或射频电路1004的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1007还可以包括耳机插孔。
电源1009用于为终端设备1000中的各个组件进行供电。电源1009可以是交流电、直流电、一次性电池或可充电电池。当电源1009包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端设备1000还包括有一个或多个传感器1010。该一个或多个传感器1010包括但不限于:加速度传感器1011、陀螺仪传感器1012、压力传感器1013、光学传感器1015以及接近传感器1016。
加速度传感器1011可以检测以终端设备1000建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1011可以用于检测重力加速度在三个坐标轴上的分量。处理器1001可以根据加速度传感器1011采集的重力加速度信号,控制显示屏1005以横向视图或纵向视图进行用户界面的显示。加速度传感器1011还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器1012可以检测终端设备1000的机体方向及转动角度,陀螺仪传感器1012可以与加速度传感器1011协同采集用户对终端设备1000的3D动作。处理器1001根据陀螺仪传感器1012采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
光学传感器1015用于采集环境光强度。在一个实施例中,处理器1001可以根据光学传感器1015采集的环境光强度,控制显示屏1005的显示亮度。具体地,当环境光强度较高时,调高显示屏1005的显示亮度;当环境光强度较低时,调低显示屏1005的显示亮度。在另一个实施例中,处理器1001还可以根据光学传感器1015采集的环境光强度,动态调整摄像头组件1006的拍摄参数。
接近传感器1016,也称距离传感器,通常设置在终端设备1000的前面板。接近传感器1016用于采集用户与终端设备1000的正面之间的距离。在一个实施例中,当接近传感器1016检测到用户与终端设备1000的正面之间的距离逐渐变小时,由处理器1001控制显示屏1005从亮屏状态切换为息屏状态;当接近传感器1016检测到用户与终端设备1000的正面之间的距离逐渐变大时,由处理器1001控制显示屏1005从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图10中示出的结构并不构成对终端设备1000的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图11为本申请实施例提供的服务器的结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(Central Processing Units,CPU)1101和一个或多个的存储器1102,其中,该一个或多个存储器1102中存储有至少一条程序代码,该至少一条程序代码由该一个或多个处理器1101加载并执行以实现上述各个方法实施例提供的页面元素的定位方法。当然,该服务器1100还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器1100还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以使计算机实现上述任一种页面元素的定位方法。
可选地,上述计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-OnlyMemory,CD-ROM)、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品中存储有至少一条计算机指令,该至少一条计算机指令由处理器加载并执行,以使计算机实现上述任一种页面元素的定位方法。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的程序代码都是在充分授权的情况下获取的。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种页面元素的定位方法,其特征在于,所述方法包括:
获取在目标页面中对目标元素进行定位的定位结果;
基于所述定位结果指示所述目标页面中不存在所述目标元素,获取第一元素和第二元素中的至少一个元素的初始属性信息、所述目标元素的初始属性信息和所述目标页面包括的各个页面元素的目标属性信息,所述第一元素为所述目标元素的兄弟元素,所述第二元素为所述目标元素的父元素;
基于所述目标页面中存在所述第一元素和所述第二元素中的至少一个元素,根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,其中,所述目标页面中是否存在所述第一元素和所述第二元素中的至少一个元素基于所述各个页面元素的目标属性信息、所述第一元素和所述第二元素的初始属性信息确定。
2.根据权利要求1所述的方法,其特征在于,所述目标元素的初始属性信息为多个;
所述根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,包括:
基于所述各个页面元素中存在第三元素,将所述第三元素作为所述目标元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素。
3.根据权利要求1所述的方法,其特征在于,所述目标元素的初始属性信息为多个;
所述根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,包括:
基于所述各个页面元素中不存在第三元素,且所述目标页面中存在所述第一元素和所述第二元素,在所述各个页面元素中确定所述第二元素对应的多个子元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素;
将所述第二元素对应的多个子元素中,与所述第一元素之间的位置关系满足位置要求的子元素作为所述目标元素。
4.根据权利要求1所述的方法,其特征在于,所述目标元素的初始属性信息为多个;
所述根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,包括:
基于所述各个页面元素中不存在第三元素,且所述目标页面中存在所述第一元素,不存在所述第二元素,在所述各个页面元素中确定所述第一元素的父元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素;
在所述各个页面元素中确定所述第一元素的父元素对应的多个子元素;
将所述第一元素的父元素对应的多个子元素中,与所述第一元素之间的位置关系满足位置要求的子元素作为所述目标元素。
5.根据权利要求1所述的方法,其特征在于,所述目标元素的初始属性信息为多个;
所述根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,包括:
基于所述各个页面元素中不存在第三元素,且所述目标页面中不存在所述第一元素,存在所述第二元素,在所述各个页面元素中确定所述第二元素对应的子元素,所述第三元素为所述各个页面元素中,目标属性信息包括所述目标元素的任一个初始属性信息的页面元素;
在所述第二元素对应的子元素中定位所述目标元素。
6.根据权利要求5所述的方法,其特征在于,所述在所述第二元素对应的子元素中定位所述目标元素,包括:
基于所述第二元素对应的子元素的个数为多个,确定所述第二元素对应的各个子元素分别和所述目标元素的相似度;
将所述第二元素对应的多个子元素中,与所述目标元素的相似度满足相似要求的子元素作为所述目标元素。
7.根据权利要求1至6任一所述的方法,其特征在于,所述获取在目标页面中对目标元素进行定位的定位结果,包括:
获取所述目标页面对应的程序代码,所述程序代码包括用于定位所述目标元素的子代码;
对所述子代码进行异常捕获,得到捕获结果,所述捕获结果用于指示在所述目标页面中定位所述目标元素时是否发生异常;
基于所述捕获结果指示在所述目标页面中定位所述目标元素时发生异常,对所述捕获结果进行分类,得到所述定位结果。
8.一种页面元素的定位装置,其特征在于,所述装置包括:
获取模块,用于获取在目标页面中对目标元素进行定位的定位结果;
所述获取模块,还用于基于所述定位结果指示所述目标页面中不存在所述目标元素,获取第一元素和第二元素中的至少一个元素的初始属性信息、所述目标元素的初始属性信息和所述目标页面包括的各个页面元素的目标属性信息,所述第一元素为所述目标元素的兄弟元素,所述第二元素为所述目标元素的父元素;
定位模块,用于基于所述目标页面中存在所述第一元素和所述第二元素中的至少一个元素,根据所述目标元素的初始属性信息,在所述各个页面元素中定位所述目标元素,其中,所述目标页面中是否存在所述第一元素和所述第二元素中的至少一个元素基于所述各个页面元素的目标属性信息、所述第一元素和所述第二元素的初始属性信息确定。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以使所述电子设备实现如权利要求1至7任一所述的页面元素的定位方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以使计算机实现如权利要求1至7任一所述的页面元素的定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310461671.7A CN116701174A (zh) | 2023-04-24 | 2023-04-24 | 页面元素的定位方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310461671.7A CN116701174A (zh) | 2023-04-24 | 2023-04-24 | 页面元素的定位方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116701174A true CN116701174A (zh) | 2023-09-05 |
Family
ID=87830111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310461671.7A Pending CN116701174A (zh) | 2023-04-24 | 2023-04-24 | 页面元素的定位方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701174A (zh) |
-
2023
- 2023-04-24 CN CN202310461671.7A patent/CN116701174A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110059744B (zh) | 训练神经网络的方法、图像处理的方法、设备及存储介质 | |
CN108924737B (zh) | 定位方法、装置、设备及计算机可读存储介质 | |
CN109684980B (zh) | 自动阅卷方法及装置 | |
CN110162604B (zh) | 语句生成方法、装置、设备及存储介质 | |
CN111209377B (zh) | 基于深度学习的文本处理方法、装置、设备及介质 | |
CN111104980B (zh) | 确定分类结果的方法、装置、设备及存储介质 | |
CN111754386B (zh) | 图像区域屏蔽方法、装置、设备及存储介质 | |
CN112749613A (zh) | 视频数据处理方法、装置、计算机设备及存储介质 | |
CN112150560B (zh) | 确定消失点的方法、装置及计算机存储介质 | |
CN112084811A (zh) | 身份信息的确定方法、装置及存储介质 | |
CN111325220B (zh) | 图像生成方法、装置、设备及存储介质 | |
CN110738185B (zh) | 表单对象的识别方法、装置及存储介质 | |
CN111507094A (zh) | 基于深度学习的文本处理模型训练方法、装置及设备 | |
CN110890969A (zh) | 群发消息的方法、装置、电子设备及存储介质 | |
CN110377914B (zh) | 字符识别方法、装置及存储介质 | |
CN112053360A (zh) | 图像分割方法、装置、计算机设备及存储介质 | |
CN111782950A (zh) | 样本数据集获取方法、装置、设备及存储介质 | |
CN110163192B (zh) | 字符识别方法、装置及可读介质 | |
CN111949341A (zh) | 展示信息的方法、装置、设备及存储介质 | |
CN113051485B (zh) | 群组搜索方法、装置、终端及存储介质 | |
CN113936240A (zh) | 确定样本图像的方法、装置、设备及存储介质 | |
CN116701174A (zh) | 页面元素的定位方法、装置、设备及计算机可读存储介质 | |
CN111294320B (zh) | 数据转换的方法和装置 | |
CN111259252A (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 |