CN111309326A - 路径脚本的生成方法、装置、设备及计算机可读存储介质 - Google Patents
路径脚本的生成方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111309326A CN111309326A CN202010090286.2A CN202010090286A CN111309326A CN 111309326 A CN111309326 A CN 111309326A CN 202010090286 A CN202010090286 A CN 202010090286A CN 111309326 A CN111309326 A CN 111309326A
- Authority
- CN
- China
- Prior art keywords
- script
- path
- generating
- converted
- path script
- 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
- 238000013515 script Methods 0.000 title claims abstract description 302
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012544 monitoring process Methods 0.000 claims abstract description 14
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 12
- 230000008569 process Effects 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 3
- 238000012423 maintenance Methods 0.000 abstract description 2
- 230000001960 triggered effect Effects 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 101100268516 Mus musculus Serpina1c gene Proteins 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 238000012795 verification Methods 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/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- 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)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种路径脚本的生成方法、装置、设备及计算机可读存储介质,所述方法包括:当检测到录制请求时,对与录制请求对应的操作事件进行监听,获得操作事件针对的界面元素和操作类型;判断界面元素是否携带有身份编码,若携带有身份编码,则根据身份编码和操作类型,生成与操作事件对应的路径脚本;若不携带有身份编码,则根据操作类型生成待转换脚本,并对待转换脚本进行转换,生成与操作事件对应的路径脚本。本方案在对界面元素的路径脚本开发过程中,通过身份编码来生成路径脚本,或者对由操作类型所生成的待转换脚本进行转换来生成路径脚本,确保了所生成的路径长度较短,有利于维护并提高了对界面元素的搜索速度。
Description
技术领域
本发明主要涉及计算机技术领域,具体地说,涉及一种路径脚本的生成方法、装置、设备及计算机可读存储介质。
背景技术
目前,在UI(User Interface,用户界面)界面的代码开发过程中,为了减少纯手工编写代码开发的工作量,通常采用录制用户操作的界面元素路径,再进行人工修正的方式来开发路径脚本。
在录制的过程中,通常使用所录制界面元素的Xpath值来生成路径;但Xpath值是绝对路径值时,使得所生成的路径脚本为绝对路径脚本。该由Xpath所生成的绝对路径脚本因路径较长而不易于维护,且基于其检索界面元素的速度慢,也增加了人工修正的工作量。因此,该通过录制方式由Xpath所生成的绝对路径脚本因路径较长所带来缺陷,是亟待解决的技术问题。
发明内容
本发明的主要目的是提供一种路径脚本的生成方法、装置、设备及计算机可读存储介质,旨在解决现有技术中由Xpath所生成的绝对路径脚本因路径较长所带来缺陷的问题。
为实现上述目的,本发明提供一种路径脚本的生成方法,所述路径脚本的生成方法包括以下步骤:
当检测到录制请求时,对与所述录制请求对应的操作事件进行监听,获得所述操作事件针对的界面元素和操作类型;
判断所述界面元素是否携带有身份编码,若携带有身份编码,则根据所述身份编码和所述操作类型,生成与所述操作事件对应的路径脚本;
若不携带有身份编码,则根据所述操作类型生成待转换脚本,并对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本。
优选地,所述对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本的步骤包括:
读取所述待转换脚本中的目标元素,并根据所述待转换脚本的路径指向,判断所述目标元素是否具有唯一性;
若所述目标元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述目标元素生成为与所述操作事件对应的路径脚本。
优选地,所述判断所述目标元素是否具有唯一性的步骤之后包括:
若所述目标元素不具有唯一性,则读取所述目标元素的父元素,并判断所述父元素是否具有唯一性;
若所述父元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述父元素和所述目标元素生成为与所述操作事件对应的路径脚本。
优选地,所述判断所述父元素是否具有唯一性的步骤之后包括:
若所述父元素不具有唯一性,则读取所述目标元素的兄弟元素,并判断所述兄弟元素是否具有唯一性;
若所述兄弟元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述兄弟元素和所述目标元素生成为与所述操作事件对应的路径脚本。
优选地,所述判断所述兄弟元素是否具有唯一性的步骤之后包括:
读取所述父元素的上一级元素,并将所述上一级元素确定为新的目标元素,执行判断所述目标元素是否具有唯一性的步骤,直到查找到所述待转换脚本中具有唯一性的元素。
优选地,所述生成与所述操作事件对应的路径脚本的步骤之后包括:
调用预设执行代码对所述路径脚本进行执行操作,并判断经执行操作是否得到与所述路径脚本对应的界面图片;
若得到与所述路径脚本对应的界面图片,则完成所述路径脚本的生成;
若未得到与所述路径脚本对应的界面图片,则生成提示信息。
优选地,所述若得到与所述路径脚本对应的界面图片,则完成所述路径脚本的生成的步骤包括:
若得到与所述路径脚本对应的界面图片,则检测所述界面图片的图片尺寸和图片排布位置;
读取与所述路径脚本对应的参考尺寸和参考排布位置,并判断所述图片尺寸和所述参考尺寸是否一致,以及所述图片排布位置与所述参考排布位置是否一致;
若所述图片尺寸和所述参考尺寸一致,且所述图片排布位置与所述参考排布位置一致,则完成所述路径脚本的生成。
此外,为实现上述目的,本发明还提出一种路径脚本的生成装置,所述路径脚本的生成装置包括:
监听模块,用于当检测到录制请求时,对与所述录制请求对应的操作事件进行监听,获得所述操作事件针对的界面元素和操作类型;
生成模块,用于判断所述界面元素是否携带有身份编码,若携带有身份编码,则根据所述身份编码和所述操作类型,生成与所述操作事件对应的路径脚本;
转换模块,用于若不携带有身份编码,则根据所述操作类型生成待转换脚本,并对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本。
此外,为实现上述目的,本发明还提出一种路径脚本的生成设备,所述路径脚本的生成设备包括:存储器、处理器、通信总线以及存储在所述存储器上的路径脚本的生成程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述路径脚本的生成程序,以实现以下步骤:
当检测到录制请求时,对与所述录制请求对应的操作事件进行监听,获得所述操作事件针对的界面元素和操作类型;
判断所述界面元素是否携带有身份编码,若携带有身份编码,则根据所述身份编码和所述操作类型,生成与所述操作事件对应的路径脚本;
若不携带有身份编码,则根据所述操作类型生成待转换脚本,并对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行以用于:
当检测到录制请求时,对与所述录制请求对应的操作事件进行监听,获得所述操作事件针对的界面元素和操作类型;
判断所述界面元素是否携带有身份编码,若携带有身份编码,则根据所述身份编码和所述操作类型,生成与所述操作事件对应的路径脚本;
若不携带有身份编码,则根据所述操作类型生成待转换脚本,并对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本。
本实施例的路径脚本的生成方法,当检测到录制请求时,通过对与该录制请求对应的操作事件进行监听,来获得操作事件所针对的界面元素和操作类型;再判断界面元素是否携带有身份编码,若携带有身份编码,则依据身份编码和操作类型,来生成与操作事件对应的路径脚本;若不携带有身份编码,则依据操作类型生成待转换脚本,并对待转换脚本进行转换,生成与操作事件对应的路径脚本。对于有身份编码的界面元素,由身份编码和操作类型所生成的路径脚本,可直接通过身份编码来指向界面元素所在路径,避免由绝对路径值来生成路径脚本;对于没有身份编码的界面元素,则先生成绝对路径的待转换脚本,再对该待转换脚本转换为相对路径的路径脚本;相对于绝对路径较短,本案生成的路径脚本易于维护,且提高了对界面元素的搜索速度,也减少了人工修正的工作量。
附图说明
图1是本发明的路径脚本的生成方法第一实施例的流程示意图;
图2是本发明的路径脚本的生成装置第一实施例的功能模块示意图;
图3是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种路径脚本的生成方法。
请参照图1,图1为本发明路径脚本的生成方法第一实施例的流程示意图。在本实施例中,所述路径脚本的生成方法包括:
步骤S10,当检测到录制请求时,对与所述录制请求对应的操作事件进行监听,获得所述操作事件针对的界面元素和操作类型;
本发明路径脚本的生成方法适用于通过对浏览器上的UI(User Interface,用户界面)元素进行操作,来生成表征UI元素所在位置的路径脚本。具体地,用户对其所持有终端上所安装的诸如Chrome、Firefox、Safari等浏览器进行启动操作,各类浏览器中均预先搭载有可进行路径录制的插件;浏览器在接收到启动操作后,自动对录制插件进行加载。录制插件中设置有用于触发录制的开始录制按钮,用户对该开始录制按钮进行单击、双击或长按以触发录制请求,录制插件依据该录制请求对用户在浏览器上所进行的操作事件进行监听并记录。其中,监听的操作事件为DOM3事件变动。DOM3事件包含UI事件(当用户与页面上的元素交互时触发,如load、scroll);焦点事件(当元素获得或失去焦点时触发,如blur、focus);鼠标事件(当用户通过鼠标在页面执行操作时触发,如dbclick、mouseup);滚轮事件(当使用鼠标滚轮或类似设备时触发,如mousewheel);文本事件(当在文档中输入文本时触发,如textInput);键盘事件(当用户通过键盘在页面上执行操作时触发,如keydown、keypress);合成事件(当为IME(输入法编辑器)输入字符时触发,如compositionstart)和变动事件(当底层DOM结构发生变化时触发,如DOMsubtreeModified)等。
进一步地,监听插件在对各操作事件进行监听的过程中,对操作事件所针对的界面元素(即UI元素)、元素的名称、元素的Xpath值以及操作类型等操作信息进行获取,以基于该各类操作信息来生成路径脚本。其中,需要说明的是,操作类型包括但不限于点击、拖动、选择、文本输入等,具体由用户依据不同的需求做出不同类型的操作。
步骤S20,判断所述界面元素是否携带有身份编码,若携带有身份编码,则根据所述身份编码和所述操作类型,生成与所述操作事件对应的路径脚本;
更进一步地,浏览器显示界面中的UI元素依据不同的属性划分为具有身份编码(ID(identity,身份)值)的元素和不具有身份编码的元素;身份编码可以以标识符的形式存在于界面元素中属性中,也可以以字符的形式存在于界面元素的属性中。若以标识符的形式存在,则可通过判断界面元素是否携带有该类标识符来确定界面元素是否携带有身份编码;若以字符的形式存在,则可预先设定字符的编码规则,通过判断界面元素是否携带字符,以及字符是否符合该编码规则来确定界面元素是否携带有身份编码。在经判定界面元素携带有身份编码,则依据身份编码和操作类型,来生成操作事件对应的路径脚本,以表征操作所针对界面元素所在的位置。其中,基于身份编码生成的路径脚本所对应的路径为绝对路径,且以Selenium的脚本格式形式存在。因身份编码具有唯一性,通过由其所生成绝对路径的路径长度较短,可快速查找到界面元素所在的位置。如用户在浏览器界面中进行进行登录操作,作针对的UI元素至少包含有登录框、登录按钮等;若登录按钮携带有身份编码,则依据身份编码和操作类型所生成的路径脚本为:findElement(By.id(“login”)).click;其中id(“login”)即为登录的UI元素的身份编码,click为操作类型中的点击操作;通过该生成的绝对路径可快速查找到用于登录的UI元素并进行响应。
步骤S30,若不携带有身份编码,则根据所述操作类型生成待转换脚本,并对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本。
进一步地,若经判定界面元素中不携带有身份编码,则不能依据身份编码来生成绝对路径,而是依据操作类型来生成绝对路径,该绝对路径使用Xpath来标识,以和依据身份编码所生成的绝对路径进行区分。如对于某一不具有身份编码的界面元素进行选择操作,依据该选择操作的操作类型所生成的绝对路径为:findElement(By.xpath(“html/body/div/form/button”)).select。该依据操作类型所生成的绝对路径,一方面因操作类型不具有唯一性而具有较长的路径长度,不便于维护以及快速查找元素位置;另一方面因不同终端分辨率的差异性容易导致浏览器中界面元素的变形。因而将该类绝对路径作为待转换脚本进行转换,通过转换来生成与操作事件对应的路径脚本。该经转换的路径脚本其实质为具有较短路径长度的相对路径,以便于维护和快速查找,且在不同终端浏览器上显示界面元素时,具有较好的显示效果,确保了不同终端之间的兼容性。
其中,所述对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本的步骤包括:
步骤S31,读取所述待转换脚本中的目标元素,并根据所述待转换脚本的路径指向,判断所述目标元素是否具有唯一性;
进一步地,对待转换脚本中的目标元素进行读取,该目标元素为用户操作所针对的生成待转换脚本的UI元素,并通过待转换脚本的路径指向中,以目标元素为结束点的位置内是否仅存在唯一元素,来判断目标元素是否具有唯一性。如对于上述findElement(By.xpath(“html/body/div/form/button”)).select,其路径指向为文件夹A,目标元素button为文件夹A内的唯一元素,则判定该待转换脚本中的目标元素具有唯一性;反之若路径脚本对应的路径指向中,以目标元素为结束点的位置内存在存在多个元素,则判定待转换脚本中的目标元素不具有唯一性。
步骤S32,若所述目标元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述目标元素生成为与所述操作事件对应的路径脚本。
更进一步地,在判断出目标元素具有唯一性后,则对待转换脚本进行转换,依据目标元素来生成与操作事件对应的路径脚本。其中,预先设置有用于转换的预设脚本格式,将目标元素添加到该预设脚本格式中,以此得到与操作事件对应的路径脚本。
此外,针对经判定目标元素不具有唯一性的情形,判断目标元素是否具有唯一性的步骤之后包括:
步骤S33,若所述目标元素不具有唯一性,则读取所述目标元素的父元素,并判断所述父元素是否具有唯一性;
可理解地,将待转换路径中位于目标元素上一级的元素,确定为目标元素的父元素。当待转换脚本的路径指向中,以目标元素为结束点的位置内存在多个元素,目标元素不具有唯一性时,读取目标元素的父元素,并通过待转换脚本的路径指向中,以父元素为结束点的位置内是否仅存在唯一元素,来判断父元素是否具有唯一性。如同样对于上述待转换路径findElement(By.xpath(“html/body/div/form/button”)).select,若目标元素button不具有唯一性,则将form作为其父元素,并判断以该父元素为结束点的位置内是否仅存在唯一元素,若仅存在文件夹A,则文件夹A即作为与父元素form对应的唯一元素,判定父元素具有唯一性。反之若判定出存在多个文件夹,则判定父元素不具有唯一性。
步骤S34,若所述父元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述父元素和所述目标元素生成为与所述操作事件对应的路径脚本。
进一步地,若经确定父元素具有唯一性,则对待转换脚本进行转换,依据父元素来生成与操作事件对应的路径脚本。将父元素和目标元素一并添加到预设脚本格式中,得到与操作事件对应的路径脚本。其中预设脚本格式中针对父元素和目标元素的添加位置设置有不同的标识符,根据不同的标识符将父元素和目标元素区分添加到预设脚本格式中,形成路径脚本。
此外,针对经判定父元素不具有唯一性的情形,判断父元素是否具有唯一性的步骤之后包括:
步骤S35,若所述父元素不具有唯一性,则读取所述目标元素的兄弟元素,并判断所述兄弟元素是否具有唯一性;
当待转换脚本的路径指向中,以父元素为结束点的位置内存在多个元素,如除了文件夹A之外还有其他文件夹,说明父元素不具有唯一性时,则对目标元素的兄弟元素进行读取。其中,兄弟元素为存在于以目标元素为结束点的位置内,与目标元素同级别的其他元素;如文件夹A内除了目标元素button外,还有元素button0,则读取该button0作为兄弟元素,并判断该兄弟元素是否具有唯一性,该唯一性可通过判断文件夹A了除了button和button0之外是否还具有其他元素实现。
步骤S36,若所述兄弟元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述兄弟元素和所述目标元素生成为与所述操作事件对应的路径脚本。
进一步地,若经确定以目标元素为结束点的位置内,除了目标元素之外仅存在目标元素,则可判定目标元素具有唯一性。此时,对待转换脚本进行转换,依据兄弟元素来生成与操作事件对应的路径脚本。将兄弟元素和目标元素一并添加到预设脚本格式中,得到与操作事件对应的路径脚本。同样地,预设脚本格式中针对兄弟元素和目标元素的添加位置设置有不同的标识符,根据不同的标识符将兄弟元素和目标元素区分添加到预设脚本格式中,形成路径脚本。
此外,针对经判定兄弟元素不具有唯一性的情形,判断兄弟元素是否具有唯一性的步骤之后包括:
步骤S37,读取所述父元素的上一级元素,并将所述上一级元素确定为新的目标元素,执行判断所述目标元素是否具有唯一性的步骤,直到查找到所述待转换脚本中具有唯一性的元素。
当待转换脚本的路径指向中,以目标元素为结束点的位置内存在多个元素,如除了目标元素button和兄弟元素button1之外还有其他元素,说明兄弟元素不具有唯一性时,则将待转换路径中位于父元素上一级的元素进行读取,并将该上一级元素确定为新的目标元素。针对新的目标元素判定其本身是否具有唯一性,若其本身不具有唯一性,则分别判断其父元素以及兄弟元素是否具有唯一性,若父元素和兄弟元素也分别不具有唯一性,则读取待转换路径中位于该新的目标元素的上一级元素作为目标元素,继续判断其唯一性,直到查找到待转换脚本中具有唯一性的元素,生成为与操作时间对应的路径脚本。
本实施例的路径脚本的生成方法,当检测到录制请求时,通过对与该录制请求对应的操作事件进行监听,来获得操作事件所针对的界面元素和操作类型;再判断界面元素是否携带有身份编码,若携带有身份编码,则依据身份编码和操作类型,来生成与操作事件对应的路径脚本;若不携带有身份编码,则依据操作类型生成待转换脚本,并对待转换脚本进行转换,生成与操作事件对应的路径脚本。对于有身份编码的界面元素,由身份编码和操作类型所生成的路径脚本,可直接通过身份编码来指向界面元素所在路径,避免由绝对路径值来生成路径脚本;对于没有身份编码的界面元素,则先生成绝对路径的待转换脚本,再对该待转换脚本转换为相对路径的路径脚本;相对于绝对路径较短,本案生成的路径脚本易于维护,且提高了对界面元素的搜索速度,也减少了人工修正的工作量。
进一步地,基于本发明路径脚本的生成方法第一实施例,提出本发明路径脚本的生成方法的第二实时例,在第二实施例中,所述生成与所述操作事件对应的路径脚本的步骤之后包括:
步骤S40,调用预设执行代码对所述路径脚本进行执行操作,并判断经执行操作是否得到与所述路径脚本对应的界面图片;
本实施例在生成与操作事件对应的路径脚本之后,对所生成的路径脚本进行验证,以确保所生成路径脚本的正确性。具体地,预先设置有用于验证的执行代码,调用该执行代码对路径脚本进行执行操作。通过判断执行操作是否能查找得到与路径脚本对应的界面图片,来判定路径脚本的正确性。
步骤S50,若得到与所述路径脚本对应的界面图片,则完成所述路径脚本的生成;
进一步地,若执行操作能查找得到与路径脚本对应的界面图片,即执行操作能得到与路径脚本对应的界面图片,则判定所生成的路径脚本正确。完成路径脚本的生成操作。
此外,为了确保与路径脚本所对应界面图片显示效果的一致性,在验证是否可查找得到与路径脚本对应的界面图片的同时,还需要验证查找到的界面图片的尺寸和在显示界面上的排布位置是否符合要求。具体地,若得到与路径脚本对应的界面图片,则完成路径脚本的生成的步骤包括:
步骤S51,若得到与所述路径脚本对应的界面图片,则检测所述界面图片的图片尺寸和图片排布位置;
在通过预设执行代码的执行,查找到与路径脚本对应的界面图片后,调用预先设置的OpenCV函数来检测界面图片的图片尺寸以及在浏览器界面上的图片排布位置,以通过该检测的图片尺寸和图片排布位置来判断图片显示效果是否符合要求。
步骤S52,读取与所述路径脚本对应的参考尺寸和参考排布位置,并判断所述图片尺寸和所述参考尺寸是否一致,以及所述图片排布位置与所述参考排布位置是否一致;
进一步地,预先设置浏览器界面上各界面图片的参考尺寸和参考排布位置,在检测到由路径脚本所生成的界面图片的图片尺寸和图片排布位置后,读取与该界面图片对应的参考尺寸和参考排布位置。将图片尺寸和参考尺寸进行对比,判断两者的一致性,并将图片排布位置和参考排布位置进行对比,判断两者的一致性。通过尺寸和位置的一致性来判断图片显示效果是否符合要求。
步骤S53,若所述图片尺寸和所述参考尺寸一致,且所述图片排布位置与所述参考排布位置一致,则完成所述路径脚本的生成。
更进一步地,若经判定图片尺寸和参考尺寸一致,且图片排布位置与参考排布位置一致,则说明由路径脚本所生成的界面图片在显示尺寸和显示位置上均符合要求,通过对待转换脚本进行转换所生成的路径脚本无误;对所生成的路径脚本进行保存,完成路径脚本的生成过程。
步骤S60,若未得到与所述路径脚本对应的界面图片,则生成提示信息。
更进一步地,若执行操作不能查找得到与路径脚本对应的界面图片,即执行操作不能得到与路径脚本对应的界面图片,则判定所生成的路径脚本有误,生成提示信息输出。其中,提示信息用以提醒用户所生成的路径脚本存在错误,以便于用户对路径脚本进行人工修正;其可以以声音或者文字信息的形式输出,对此不做限制。
本实施例中通过预设执行脚本对路径脚本进行验证,确保了所生成路径脚本的正确性;同时还对由路径脚本所生成的界面图片进行显示尺寸和显示位置的验证,在确保路径脚本可生成界面图片的同时,还确保了所生成的界面图片满足显示效果的要求。
此外,请参照图2,本发明提供一种路径脚本的生成装置,在本发明路径脚本的生成装置第一实施例中,所述路径脚本的生成装置包括:
监听模块10,用于当检测到录制请求时,对与所述录制请求对应的操作事件进行监听,获得所述操作事件针对的界面元素和操作类型;
生成模块20,用于判断所述界面元素是否携带有身份编码,若携带有身份编码,则根据所述身份编码和所述操作类型,生成与所述操作事件对应的路径脚本;
转换模块30,用于若不携带有身份编码,则根据所述操作类型生成待转换脚本,并对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本。
本实施例的路径脚本的生成装置,当检测到录制请求时,监听模块10通过对与该录制请求对应的操作事件进行监听,来获得操作事件所针对的界面元素和操作类型;生成模块20再判断界面元素是否携带有身份编码,若携带有身份编码,则依据身份编码和操作类型,来生成与操作事件对应的路径脚本;若不携带有身份编码,转换模块30则依据操作类型生成待转换脚本,并对待转换脚本进行转换,生成与操作事件对应的路径脚本。对于有身份编码的界面元素,由身份编码和操作类型所生成的路径脚本,可直接通过身份编码来指向界面元素所在路径,避免由绝对路径值来生成路径脚本;对于没有身份编码的界面元素,则先生成绝对路径的待转换脚本,再对该待转换脚本转换为相对路径的路径脚本;相对于绝对路径较短,本案生成的路径脚本易于维护,且提高了对界面元素的搜索速度,也减少了人工修正的工作量。
进一步地,在本发明路径脚本的生成装置另一实施例中,所述转换模块还包括:
第一判断单元,用于读取所述待转换脚本中的目标元素,并根据所述待转换脚本的路径指向,判断所述目标元素是否具有唯一性;
第一转换单元,用于若所述目标元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述目标元素生成为与所述操作事件对应的路径脚本。
进一步地,在本发明路径脚本的生成装置另一实施例中,所述转换模块还包括:
第二判断单元,用于若所述目标元素不具有唯一性,则读取所述目标元素的父元素,并判断所述父元素是否具有唯一性;
第二转换单元,用于若所述父元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述父元素和所述目标元素生成为与所述操作事件对应的路径脚本。
进一步地,在本发明路径脚本的生成装置另一实施例中,所述转换模块还包括:
第三判断单元,用于若所述父元素不具有唯一性,则读取所述目标元素的兄弟元素,并判断所述兄弟元素是否具有唯一性;
第三转换单元,用于若所述兄弟元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述兄弟元素和所述目标元素生成为与所述操作事件对应的路径脚本。
进一步地,在本发明路径脚本的生成装置另一实施例中,所述转换模块还包括:
读取单元,用于读取所述父元素的上一级元素,并将所述上一级元素确定为新的目标元素,执行判断所述目标元素是否具有唯一性的步骤,直到查找到所述待转换脚本中具有唯一性的元素。
进一步地,在本发明路径脚本的生成装置另一实施例中,所述路径脚本的生成装置还包括:
调用模块,用于调用预设执行代码对所述路径脚本进行执行操作,并判断经执行操作是否得到与所述路径脚本对应的界面图片;
完成模块,用于若得到与所述路径脚本对应的界面图片,则完成所述路径脚本的生成;
所述生成模块,还用于若未得到与所述路径脚本对应的界面图片,则生成提示信息。
进一步地,在本发明路径脚本的生成装置另一实施例中,所述完成模块还包括:
检测单元,用于若得到与所述路径脚本对应的界面图片,则检测所述界面图片的图片尺寸和图片排布位置;
判断单元,用于读取与所述路径脚本对应的参考尺寸和参考排布位置,并判断所述图片尺寸和所述参考尺寸是否一致,以及所述图片排布位置与所述参考排布位置是否一致;
完成单元,用于若所述图片尺寸和所述参考尺寸一致,且所述图片排布位置与所述参考排布位置一致,则完成所述路径脚本的生成。
其中,上述路径脚本的生成装置的各虚拟功能模块存储于图3所示路径脚本的生成设备的存储器1005中,处理器1001执行路径脚本的生成程序时,实现图2所示实施例中各个模块的功能。
参照图3,图3是本发明实施例方法涉及的硬件运行环境的设备结构示意图。
本发明实施例路径脚本的生成设备可以是PC(personal computer,个人计算机),也可以是智能手机、平板电脑、电子书阅读器、便携计算机等终端设备。
如图3所示,该路径脚本的生成设备可以包括:处理器1001,例如CPU(CentralProcessing Unit,中央处理器),存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速RAM(random accessmemory,随机存取存储器),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,该路径脚本的生成设备还可以包括用户接口、网络接口、摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi(Wireless Fidelity,无线宽带)模块等等。用户接口可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
本领域技术人员可以理解,图3中示出的路径脚本的生成设备结构并不构成对路径脚本的生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图3所示,作为一种计算机可读存储介质的存储器1005中可以包括操作***、网络通信模块以及路径脚本的生成程序。操作***是管理和控制路径脚本的生成设备硬件和软件资源的程序,支持路径脚本的生成程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与路径脚本的生成设备中其它硬件和软件之间通信。
在图3所示的路径脚本的生成设备中,处理器1001用于执行存储器1005中存储的路径脚本的生成程序,实现上述路径脚本的生成方法各实施例中的步骤。
本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述路径脚本的生成方法各实施例中的步骤。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (10)
1.一种路径脚本的生成方法,其特征在于,所述路径脚本的生成方法包括以下步骤:
当检测到录制请求时,对与所述录制请求对应的操作事件进行监听,获得所述操作事件针对的界面元素和操作类型;
判断所述界面元素是否携带有身份编码,若携带有身份编码,则根据所述身份编码和所述操作类型,生成与所述操作事件对应的路径脚本;
若不携带有身份编码,则根据所述操作类型生成待转换脚本,并对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本。
2.如权利要求1所述的路径脚本的生成方法,其特征在于,所述对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本的步骤包括:
读取所述待转换脚本中的目标元素,并根据所述待转换脚本的路径指向,判断所述目标元素是否具有唯一性;
若所述目标元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述目标元素生成为与所述操作事件对应的路径脚本。
3.如权利要求2所述的路径脚本的生成方法,其特征在于,所述判断所述目标元素是否具有唯一性的步骤之后包括:
若所述目标元素不具有唯一性,则读取所述目标元素的父元素,并判断所述父元素是否具有唯一性;
若所述父元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述父元素和所述目标元素生成为与所述操作事件对应的路径脚本。
4.如权利要求3所述的路径脚本的生成方法,其特征在于,所述判断所述父元素是否具有唯一性的步骤之后包括:
若所述父元素不具有唯一性,则读取所述目标元素的兄弟元素,并判断所述兄弟元素是否具有唯一性;
若所述兄弟元素具有唯一性,则对所述待转换脚本进行转换,基于预设脚本格式将所述兄弟元素和所述目标元素生成为与所述操作事件对应的路径脚本。
5.如权利要求4所述的路径脚本的生成方法,其特征在于,所述判断所述兄弟元素是否具有唯一性的步骤之后包括:
读取所述父元素的上一级元素,并将所述上一级元素确定为新的目标元素,执行判断所述目标元素是否具有唯一性的步骤,直到查找到所述待转换脚本中具有唯一性的元素。
6.如权利要求1-5任一项所述的路径脚本的生成方法,其特征在于,所述生成与所述操作事件对应的路径脚本的步骤之后包括:
调用预设执行代码对所述路径脚本进行执行操作,并判断经执行操作是否得到与所述路径脚本对应的界面图片;
若得到与所述路径脚本对应的界面图片,则完成所述路径脚本的生成;
若未得到与所述路径脚本对应的界面图片,则生成提示信息。
7.如权利要求6所述的路径脚本的生成方法,其特征在于,所述若得到与所述路径脚本对应的界面图片,则完成所述路径脚本的生成的步骤包括:
若得到与所述路径脚本对应的界面图片,则检测所述界面图片的图片尺寸和图片排布位置;
读取与所述路径脚本对应的参考尺寸和参考排布位置,并判断所述图片尺寸和所述参考尺寸是否一致,以及所述图片排布位置与所述参考排布位置是否一致;
若所述图片尺寸和所述参考尺寸一致,且所述图片排布位置与所述参考排布位置一致,则完成所述路径脚本的生成。
8.一种路径脚本的生成装置,其特征在于,所述路径脚本的生成装置包括:
监听模块,用于当检测到录制请求时,对与所述录制请求对应的操作事件进行监听,获得所述操作事件针对的界面元素和操作类型;
生成模块,用于判断所述界面元素是否携带有身份编码,若携带有身份编码,则根据所述身份编码和所述操作类型,生成与所述操作事件对应的路径脚本;
转换模块,用于若不携带有身份编码,则根据所述操作类型生成待转换脚本,并对所述待转换脚本进行转换,生成与所述操作事件对应的路径脚本。
9.一种路径脚本的生成设备,其特征在于,所述路径脚本的生成设备包括:存储器、处理器、通信总线以及存储在所述存储器上的路径脚本的生成程序;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行所述路径脚本的生成程序,以实现如权利要求1-7中任一项所述的路径脚本的生成方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有路径脚本的生成程序,所述路径脚本的生成程序被处理器执行时实现如权利要求1-7中任一项所述的路径脚本的生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010090286.2A CN111309326A (zh) | 2020-02-12 | 2020-02-12 | 路径脚本的生成方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010090286.2A CN111309326A (zh) | 2020-02-12 | 2020-02-12 | 路径脚本的生成方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111309326A true CN111309326A (zh) | 2020-06-19 |
Family
ID=71149021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010090286.2A Pending CN111309326A (zh) | 2020-02-12 | 2020-02-12 | 路径脚本的生成方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111309326A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335283A (zh) * | 2014-08-01 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 终端设备中的应用测试方法及装置 |
WO2017150791A2 (ko) * | 2016-02-29 | 2017-09-08 | (주)엠더블유스토리 | 디지털 콘텐츠 모니터링 시스템 및 그 처리 방법 |
CN107633019A (zh) * | 2017-08-24 | 2018-01-26 | 阿里巴巴集团控股有限公司 | 一种页面事件采集方法和装置 |
CN107885665A (zh) * | 2017-12-28 | 2018-04-06 | 努比亚技术有限公司 | 用例脚本测试方法、移动终端及计算机可读存储介质 |
CN108415826A (zh) * | 2018-01-12 | 2018-08-17 | 深圳壹账通智能科技有限公司 | 应用的测试方法、终端设备及计算机可读存储介质 |
CN109710354A (zh) * | 2018-12-13 | 2019-05-03 | 平安普惠企业管理有限公司 | 页面监听方法、页面还原方法、装置、设备及介质 |
CN110020238A (zh) * | 2017-09-18 | 2019-07-16 | 北京国双科技有限公司 | 点击事件数据采集方法、装置及*** |
CN110209570A (zh) * | 2019-04-18 | 2019-09-06 | 北京字节跳动网络技术有限公司 | 事件的处理方法、装置、电子设备及存储介质 |
CN110276039A (zh) * | 2019-06-27 | 2019-09-24 | 北京金山安全软件有限公司 | 页面元素的路径生成方法、装置和电子设备 |
-
2020
- 2020-02-12 CN CN202010090286.2A patent/CN111309326A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335283A (zh) * | 2014-08-01 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 终端设备中的应用测试方法及装置 |
WO2017150791A2 (ko) * | 2016-02-29 | 2017-09-08 | (주)엠더블유스토리 | 디지털 콘텐츠 모니터링 시스템 및 그 처리 방법 |
CN107633019A (zh) * | 2017-08-24 | 2018-01-26 | 阿里巴巴集团控股有限公司 | 一种页面事件采集方法和装置 |
CN110020238A (zh) * | 2017-09-18 | 2019-07-16 | 北京国双科技有限公司 | 点击事件数据采集方法、装置及*** |
CN107885665A (zh) * | 2017-12-28 | 2018-04-06 | 努比亚技术有限公司 | 用例脚本测试方法、移动终端及计算机可读存储介质 |
CN108415826A (zh) * | 2018-01-12 | 2018-08-17 | 深圳壹账通智能科技有限公司 | 应用的测试方法、终端设备及计算机可读存储介质 |
CN109710354A (zh) * | 2018-12-13 | 2019-05-03 | 平安普惠企业管理有限公司 | 页面监听方法、页面还原方法、装置、设备及介质 |
CN110209570A (zh) * | 2019-04-18 | 2019-09-06 | 北京字节跳动网络技术有限公司 | 事件的处理方法、装置、电子设备及存储介质 |
CN110276039A (zh) * | 2019-06-27 | 2019-09-24 | 北京金山安全软件有限公司 | 页面元素的路径生成方法、装置和电子设备 |
Non-Patent Citations (2)
Title |
---|
房勇;李银胜;: "基于DOM状态转换的隐网页信息抽取算法", 计算机应用与软件, no. 09, 15 September 2015 (2015-09-15) * |
王丹;刘立家;林九川;赵文兵;杜晓林;: "基于DOM状态转换检测XSS漏洞", 北京工业大学学报, no. 09, 25 June 2018 (2018-06-25) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108170809B (zh) | 建表脚本生成方法、装置、设备及计算机可读存储介质 | |
CN110221982B (zh) | 业务***的性能测试方法、装置、设备及可读存储介质 | |
WO2018223717A1 (zh) | 网页前端测试方法、装置、***、设备及可读存储介质 | |
CN110955416A (zh) | 接口文档生成方法、装置、设备和计算机存储介质 | |
CN104112002B (zh) | 一种表单适配的方法、装置和*** | |
CN109582907B (zh) | 网页资源完整性的校验方法、装置、设备及可读存储介质 | |
CN110320378B (zh) | 质控测试申请方法、装置、设备及计算机可读存储介质 | |
US11695756B2 (en) | Display system, display method, and recording medium | |
CN111274781A (zh) | 表格显示方法、装置、存储介质及电子设备 | |
CN111475161B (zh) | 一种访问组件的方法、装置及设备 | |
CN111427760B (zh) | 页面测试方法、装置、设备及存储介质 | |
WO2017206476A1 (zh) | 一种cpu占用的检测方法、装置及设备 | |
CN108717357B (zh) | 页面展示代码转换方法、装置、设备及计算机存储介质 | |
WO2015139406A1 (zh) | 一种终端显示页面的操作方法及终端 | |
CN110209557B (zh) | 用户操作录制还原方法、装置、设备及可读存储介质 | |
CN113938733B (zh) | 遥控设备快捷键控制方法、设备、存储介质及装置 | |
KR101208463B1 (ko) | 광고를 차단하는 방법, 단말기 및 기록매체 | |
CN111026669A (zh) | 测试日志管理方法、测试日志管理装置及存储介质 | |
CN115543324B (zh) | 交互界面的生成方法、装置、设备及介质 | |
CN111309326A (zh) | 路径脚本的生成方法、装置、设备及计算机可读存储介质 | |
CN112770142A (zh) | 一种互动视频交互方法、装置及电子设备 | |
CN113672826B (zh) | 页面跳转方法、装置、计算机设备和存储介质 | |
KR20190080981A (ko) | 정보 표시 방법, 단말 및 서버 | |
CN109710509B (zh) | 数据检查方法、装置、设备和计算机可读存储介质 | |
CN110049374B (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 |