CN111679976A - 一种页面对象的查找方法及装置 - Google Patents

一种页面对象的查找方法及装置 Download PDF

Info

Publication number
CN111679976A
CN111679976A CN202010471221.2A CN202010471221A CN111679976A CN 111679976 A CN111679976 A CN 111679976A CN 202010471221 A CN202010471221 A CN 202010471221A CN 111679976 A CN111679976 A CN 111679976A
Authority
CN
China
Prior art keywords
code file
page object
target page
operation request
identification information
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
Application number
CN202010471221.2A
Other languages
English (en)
Inventor
范昕
李静
徐莉莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Taikang Insurance Group Co Ltd
Taikang Pension Insurance Co Ltd
Original Assignee
Taikang Insurance Group Co Ltd
Taikang Pension Insurance Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Taikang Insurance Group Co Ltd, Taikang Pension Insurance Co Ltd filed Critical Taikang Insurance Group Co Ltd
Priority to CN202010471221.2A priority Critical patent/CN111679976A/zh
Publication of CN111679976A publication Critical patent/CN111679976A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例提供了一种页面对象的查找方法及装置,包括:在自动化测试脚本的运行过程中,响应于所述自动化测试脚本针对预设网页中控件的操作请求,确定所述控件对应的标识信息;确定当前加载的代码文件;判断所述代码文件中是否包含所述标识信息对应的目标页面对象;若否,则等待所述代码文件完成加载,再返回所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤;若是,在所述代码文件中,调用所述目标页面对象执行所述操作请求,实现代码文件的加载等待,当代码文件中不包括页面对象时,等待代码文件更新直到代码文件中包含页面,保证当页面中控件已展示时,可以在代码文件中查找到对应的页面对象,提高页面对象的识别效率。

Description

一种页面对象的查找方法及装置
技术领域
本申请涉及计算机技术领域,特别是涉及一种页面对象的查找方法及装置。
背景技术
随着计算机技术的不断发展,多种多样的网络程序为人们的工作和生活提供了快捷便利的体验。
在现有技术中,在启动浏览器并打开页面后,可以通过遍历页面中控件对象对应的DOM(文档对象模型)结构以进行对象识别,并在识别对象后进行相应操作,在控件对象的识别过程中,并不判断控件对象是否存在于DOM结构中。
然后,由于网络环境的差异、服务器吞吐量或加载性能不一等原因,容易造成页面中的控件对象已生成,但该控件对象在DOM结构中对应的部分未加载完毕的情况发生,导致脚本无法成功识别页面中已展示的控件对象,当对页面中的控件对象进行操作时,将提示控件不存在。例如,当网页页面中已显示“用户编号”的输入框并在其中输入信息时,由于无法识别“用户编号”这一控件,将显示“用户编号不存在”的异常信息。
发明内容
鉴于上述问题,提出了以便提供克服上述问题或者至少部分地解决上述问题的一种页面对象的查找方法及装置,包括:
一种页面对象的查找方法,所述方法包括:
在自动化测试脚本的运行过程中,响应于所述自动化测试脚本针对预设网页中控件的操作请求,确定所述控件对应的标识信息;其中,所述预设网页为采用IE内核的浏览器加载的网页;
确定当前加载的代码文件;
判断所述代码文件中是否包含所述标识信息对应的目标页面对象;
若否,则等待所述代码文件完成加载,再返回所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤;
若是,在所述代码文件中,调用所述目标页面对象执行所述操作请求。
可选地,所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤之前,所述方法还包括:
确定针对所述代码文件的加载时长;
判断所述加载时长是否小于预设时长;
若否,则生成加载失败信息;
若是,则执行所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤。
可选地,所述在所述代码文件中,调用所述目标页面对象执行所述操作请求的步骤包括:
生成针对所述目标页面对象的正则表达式;
采用所述正则表达式,在所述代码文件中调用所述目标页面对象执行所述操作请求。
可选地,所述代码文件对应一文档对象模型树,所述文档对象模型树包括多个节点,每个节点对应一页面对象,所述采用所述正则表达式,在所述代码文件中调用所述目标页面对象执行所述操作请求的步骤包括:
确定所述文档对象模型树对应的一条或多条节点路径;其中,每个节点路径由多个节点组成;
采用所述正则表达式,对所述一条或多条节点路径进行筛选,得到候选路径集;
遍历所述候选路径集中的节点路径,得到与所述标识信息匹配的目标节点,并调用所述目标节点对应的页面对象执行所述操作请求。
可选地,所述正则表达式包括所述目标页面对象对应的特征信息,所述采用所述正则表达式,对所述一条或多条节点路径进行筛选,得到候选路径集的步骤包括:
采用所述特征信息,对所述一条或多条节点路径进行筛选,得到候选路径集。
可选地,所述在所述代码文件中,调用所述目标页面对象执行所述操作请求的步骤之前,所述方法还包括:
获取所述目标页面对象的状态信息;其中,所述状态信息用于指示所述目标页面对象是否可调用;
判断所述状态信息是否为可操作状态信息;
若所述状态信息为可操作状态信息,执行所述在所述代码文件中,调用所述目标页面对象执行所述操作请求的步骤。
可选地,所述目标页面对象具有对应的对象类型,所述在所述代码文件中,调用所述目标页面对象执行所述操作请求的步骤包括:
在所述代码文件中,调用所述目标页面对象执行所述对象类型对应的操作。
一种页面对象的查找装置,所述装置包括:
标识信息确定模块,用于在自动化测试脚本的运行过程中,响应于所述自动化测试脚本针对预设网页中控件的操作请求,确定所述控件对应的标识信息;其中,所述预设网页为采用IE内核的浏览器加载的网页;
代码文件加载模块,用于确定当前加载的代码文件;
目标页面对象判断模块,用于判断所述代码文件中是否包含所述标识信息对应的目标页面对象;若否,调用代码文件加载等待模块,若是,调用操作请求执行模块;
代码文件加载等待模块,用于等待所述代码文件完成加载,再返回所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤;
操作请求执行模块,用于在所述代码文件中,调用所述目标页面对象执行所述操作请求。
一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的页面对象的查找方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的页面对象的查找方法的步骤。
本申请实施例具有以下优点:
在本申请实施例中,通过在自动化测试脚本的运行过程中,响应于自动化测试脚本针对预设网页中控件的操作请求,确定控件对应的标识信息和当前加载的代码文件,预设网页可以是为采用IE内核的浏览器加载的网页,并判断代码文件中是否包含标识信息对应的目标页面对象,若否,则等待代码文件完成加载,再返回判断代码文件中是否包含标识信息对应的目标页面对象的步骤,若是,在代码文件中,调用目标页面对象执行操作请求,实现了代码文件的加载等待,当代码文件中不包括页面对象时,可以等待代码文件更新直到代码文件中包含页面,保证了当页面中控件已展示时,可以在代码文件中查找到对应的页面对象,提高了页面对象的识别效率。
附图说明
为了更清楚地说明本申请的技术方案,下面将对本申请的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的控件对象查找流程图;
图2是本申请一实施例提供的一种页面对象的查找方法的步骤流程图;
图3是本申请一实施例提供的另一种页面对象的查找方法的步骤流程图;
图4是本申请一实施例提供的文档对象模型树示意图;
图5是本申请一实施例提供的一种定价单录入流程图;
图6是本申请一实施例提供的登录界面示意图;
图7是本申请一实施例提供的定价菜单栏示意图;
图8是本申请一实施例提供的一种输入框示意图;
图9是本申请一实施例提供的另一种输入框示意图;
图10是本申请一实施例提供的页面对象识别流程图;
图11是本申请一实施例提供的一种页面对象的查找装置的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在计算机领域中,面对以IE浏览器为主的网页中页面对象的识别,如图1所示,可以在启动浏览器并打开网页后,由用户或者自动化脚本确定待操作的目标对象,并等待当前页面中的目标对象加载完毕,然后在网页对应的DOM结构中,查找与目标对象对应的控件对象,然后对控件对象执行操作,例如进行点击、拖动或移动。
然而,在该方法中,当被访问系统的服务端存在巨大的访问压力、吞吐压力,或者系统设施并不完善时,容易造成网页中待操作的目标对象已出现,但目标对象对应的DOM结构未加载完成的情况发生,若直接在当前的DOM结构中进行查找,会抛出错误提示信息,如“object not found”(未发现对象),这种情况的发生具有偶然性,无法确定会在何种网页或何种情况中发生,发生的时间也具有不确定性。
例如,对页面对象的识别稳定性较差的自动化测试程序,在一复杂的自动化程序执行过程中,当目标对象已在浏览器中生成时,自动化脚本无法识别DOM结构中的控件对象,在自动化程序的执行过程中,若多次发生无法识别控件对象的请情况,会导致自动化程序崩溃,自动化效率较低。
为了提高控件对象的识别率,提高识别效率,本申请提供了一种页面对象的查找方法,具体步骤如下所述:
参照图2,示出了本申请一实施例提供的一种页面对象的查找方法的步骤流程图,具体可以包括如下步骤:
步骤201,在自动化测试脚本的运行过程中,响应于所述自动化测试脚本针对预设网页中控件的操作请求,确定所述控件对应的标识信息;其中,所述预设网页为采用IE内核的浏览器加载的网页;
在实际应用中,可以预先生成针对预设网页测试的自动化测试脚本,并运行该自动化测试脚本,其中,预设网页可以在采用IE内核的浏览器中加载,通过运行自动化测试脚本,可以对预设网页中的控件执行多种操作,模拟用户使用该预设网页的场景。
在自动化测试脚本的运行过程中,可以跳转至自动化测试脚本对应的网页地址,采用IE浏览器加载该网页地址对应的预设网页,并响应于自动化测试脚本针对预设网页中控件的操作请求,可以进一步确定控件对应的标识信息。
在一示例中,操作请求可以包括点击操作、输入操作或鼠标的悬浮操作,自动化测试脚本可以是基于Selenium开源框架开发的脚本,例如Selenium3.0,Webdriver,SeleniumAP,Selenium Server,Selenium Core,当然,也可以是其他自动化框架技术的自动化程序。
步骤202,确定当前加载的代码文件;
在确定标识信息后,可以确定当前页面对应的当前加载的代码文件。
具体的,代码文件可以是当前页面对应的源程序,可以采用PageSource的方式获取源程序。通过获取代码文件,可以使自动化脚本确定当前页面对应的页面对象。
步骤203,判断所述代码文件中是否包含所述标识信息对应的目标页面对象;若否,则执行步骤204,若是,执行步骤205;
在确定代码文件后,可以判断当前的代码文件中是否包含标识信息对应的目标页面对象,若代码文件中不包含目标页面对象,可以执行步骤204;若代码文件中包含目标页面对象,可以执行步骤205。
步骤204,等待所述代码文件完成加载,再返回所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤;
在代码文件中不包含目标页面对象时,则可以等待代码文件完成加载,并返回步骤203以再次判断代码文件中是否包含目标页面对象。
在实际应用中,由于服务端加载性能不一,无法确保在识别目标页面对象前即可一次性下载完整的代码文件。基于此,可以等待代码文件完成加载后。
具体的,等待可以包括显性等待和隐性等待。显性等待也可以称为硬等待,例如通过“Sleep”方法直接设置等待时间参数的等待方式,显性等待无法准确判断在等待时间结束时,页面对象是否已加载或是否可以操作。例如,可以通过如下方式设置显性等待:
Sleep(10)
DoubleClick(//*[@id="su"])
上述代码表示在等待十秒后,双击ID为“su”的页面对象,但此时由于服务器性能不佳等因素,造成代码文件中该页面对象对应的部分未加载完成,因此无法对该页面对象执行双击操作,导致程序报错。
隐性等待可以对代码文件中的一个或多个页面对象设置等待时间,在预设等待时间内,浏览器可以不断地更新代码文件,直到找到指定的页面对象;若超出等待时间后仍未找到指定的页面对象,可以生成加载异常的提示信息。隐性等待设置的等待时间可以是全局等待。
在本申请实施例中,可以进行隐性等待,当代码文件中不包含目标页面对象时,等待代码文件完成加载后,再次判断代码文件是否包含目标页面对象。例如,可以通过如下方式设置隐性等待:
wait.existofelement(//*[@id="su"])
通过上述代码设置的隐性等待,可以在ID为“su”的页面对象加载完毕后执行后续操作。
步骤205,在所述代码文件中,调用所述目标页面对象执行所述操作请求。
当代码文件中包含目标页面对象时,可以调用目标页面对象执行操作请求。
在本申请一实施例中,目标页面对象可以具有对应的对象类型,步骤105可以包括如下子步骤:
在所述代码文件中,调用所述目标页面对象执行所述对象类型对应的操作。
作为一示例,对象类型可以包括以下任一项:
单行文本输入框类型(input)、多行文本输入框类型(textarea)、鼠标类型(mouse)、层叠样式类型(div)。
在实际应用中,目标页面对象可以具有对应的对象类型,不同的对象类型可以对应有不同的操作,例如,针对鼠标类型,可以进行单击、双击、悬停等操作,针对单行文本输入框类型或多行文本输入框类型,可以执行输入文本操作,针对下拉框类型,可以进行选择操作,这对按钮类型,可以进行点击操作。
当确定代码文件中包含目标页面对象时,可以确定目标页面对象对应的对象类型,并调用目标页面对象执行对象类型对应的操作。
在本申请实施例中,通过获取包含目标页面对象的代码文件,例如将页面的源程序完全加载到自动化脚本中,保证了目标页面对象完全加载成功,可以为目标页面对象的识别和调用提供前提条件。
在本申请另一实施例中,在步骤105之前,所述方法还可以包括如下步骤:
S1,获取所述目标页面对象的状态信息;其中,所述状态信息用于指示所述目标页面对象是否可调用;
作为一示例,状态信息可以指示目标页面对象是否可调用,状态信息可以包括可操作性状态信息和不可操作状态信息(disable状态);其中,可操作性状态信息指示目标页面对象可被调用,不可操作状态信息指示目标页面对象不可被调用。
在确定代码文件中包含目标页面对象后,可以获取目标页面对象的状态信息。
在具体实现中,当目标页面对象被识别后,例如通过页面对象的路径查找到页面对象后,由于服务端的加载原因,将导致目标页面对象无法操作,因此,可以先获取目标页面对象的状态信息。例如,可以通过“ISENABLE”或“ISPRESENTED”方法,获取状态信息,对页面对象的状态进行判断。
S2,判断所述状态信息是否为可操作状态信息;
在获取状态信息后,可以判断状态信息是否为可操作状态信息。
S3,若所述状态信息为可操作状态信息,执行所述在当前加载的代码文件中,调用所述目标页面对象执行所述操作请求的步骤
当状态信息为可操作状态信息时,可以调用目标页面对象执行操作请求;当状态信息为不可操作状态信息时,可以生成一状态异常的提示信息。
在本申请实施例中,通过在自动化测试脚本的运行过程中,响应于自动化测试脚本针对预设网页中控件的操作请求,确定控件对应的标识信息和当前加载的代码文件,预设网页可以是为采用IE内核的浏览器加载的网页,并判断代码文件中是否包含标识信息对应的目标页面对象,若否,则等待代码文件完成加载,再返回判断代码文件中是否包含标识信息对应的目标页面对象的步骤,若是,在代码文件中,调用目标页面对象执行操作请求,实现了代码文件的加载等待,当代码文件中不包括页面对象时,可以等待代码文件更新直到代码文件中包含页面,保证了当页面中控件已展示时,可以在代码文件中查找到对应的页面对象,提高了页面对象的识别效率。
参照图3,示出了本申请一实施例提供的另一种页面对象的查找方法的步骤流程图,具体可以包括如下步骤:
步骤301,在自动化测试脚本的运行过程中,响应于所述自动化测试脚本针对预设网页中控件的操作请求,确定所述控件对应的标识信息;其中,所述预设网页为采用IE内核的浏览器加载的网页;
步骤302,确定当前加载的代码文件;
步骤303,确定针对所述代码文件的加载时长;
在具体实现中,在跳转至一页面后,可以开始加载页面对应的代码文件,在确定当前加载的代码文件后,可以按照预设周期确定针对代码文件的加载时长。
步骤304,判断所述加载时长是否小于预设时长;若否,执行步骤305,若是,执行步骤306;
在实际应用中,可以设置一预设时长,该预设时长可以用于设置等待代码文件加载的时长,在确定当前加载的代码文件的加载时长后,可以判断加载时长是否小于预设时长,若否,可以执行步骤305,若是,可以执行步骤306。
步骤305,生成加载失败信息;
当加载时长大于或等于预设时长,可以生成一加载失败信息。
步骤306,判断所述代码文件中是否包含所述标识信息对应的目标页面对象;若否,执行步骤307,若是,执行步骤308;
步骤307,则等待所述代码文件完成加载,再返回所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤;
步骤308,生成针对所述目标页面对象的正则表达式;
在代码文件中包含标识信息对应的目标页面对象后,可以生成针对目标页面对象的正则表达式。
正则表达式(Regular Expression,在代码中可简写为regex、regexp或RE),又称为规则表达式。正则表达式可用于检索、替换符合预设模式或规则的文本。
步骤309,采用所述正则表达式,在所述代码文件中调用所述目标页面对象执行所述操作请求。
在生成正则表达式后,可以采用正则表达式在代码文件中调用目标页面对象执行操作请求。
采用正则表达式在代码文件中调用目标页面对象,可以使得页面对象的查找代码更简洁易维护,同时提高了目标页面对象的识别效率。
在本申请一实施例中,代码文件可以对应一文档对象模型树(DOM树),文档对象模型树包括多个节点,每个节点对应一页面对象,步骤309可以包括如下子步骤:
子步骤11,确定所述文档对象模型树对应的一条或多条节点路径;其中,每个节点路径由多个节点组成;
在实际应用中,文档对象模型树中的多个节点可以组成节点路径(即Xpath路径),在确定文档对象模型树后,可以确定文档对象模型树对应的一条或多条节点路径。
具体的,节点路径可以是对象的层级概念,通过节点路径,可以使用路径表达式选取XML(可扩展标记语言)文档中的节点或节点集。如图4所示,图中包括“<table>”、“<divid=’divAuto1’>”等多个节点,每个节点可以具有对应的层级。
子步骤12,采用所述正则表达式,对所述一条或多条节点路径进行筛选,得到候选路径集;
在获取节点路径后,可以采用正则表达式对一条或多条节点路径进行筛选,得到候选路径集。
在本申请一实施例中,正则表达式可以包括目标页面对象对应的特征信息,子步骤22可以包括如下子步骤:
采用所述特征信息,对所述一条或多条节点路径进行筛选,得到候选路径集。
作为一示例,特征信息可以包括以下一种或多种信息:
路径特征信息(Domxpath)、名称特征信息(HTML Name)、标签特征信息(HTMLTag)、类型特征信息(HTML Type)。
在具体实现中,Selenium的库函数可以包括多种寻找页面对象的方法,例如byName,byId,byCss,byXpath等方法,然而由于程序开发过程中,部分程序的编写并不规范,导致最终难以直接定位至对应的页面对象。基于此,可以生成包括目标页面对象特征信息的正则表达式,然后通过特征信息对一条或多条节点路径进行筛选,得到候选路径集。
子步骤23,遍历所述候选路径集中的节点路径,得到与所述标识信息匹配的目标节点,并调用所述目标节点对应的页面对象执行所述操作请求。
在获取候选路径集后,可以遍历候选路径集中的节点路径,得到与标识信息匹配的目标节点,并调用目标节点对应的页面对象执行操作请求。
在本申请实施例中,即使代码文件对应的Xpath并不标准或存在错误,通过正则表达式获取一包括目标页面对象特征信息的集合后,在遍历集合中的路径,使得查找成功率可以达到100%。
例如,要在代码文件中查找与“定价单类型”输入框对应的目标页面对象。该目标页面对象的Xpath路径为“//div[@id=’divAuto1’]//input[@name=’InquiryTupe’]”,然而,在一示例中,目标页面对象缺少可以唯一确定该对象的标识,例如名称并不唯一,因此,可以采用正则表达式“//div[@id=’divAuto1’]//*”对节点路径进行筛选,该正则表达式中包含路径特征信息“//div[@id=’divAuto1’]//”,通过“*”查找可以得到一候选路径集。在获取候选路径集后,可以遍历候选路径集中的节点路径,获取目标节点。当通过正则表达式获取目标节点后,可以调用目标节点对应的页面对象执行操作请求。在调用对象执行操作请求前,可以获取目标页面对象的状态信息,判断目标页面对象是否可被操作。
在一示例中,还可以辨别目标页面对象具备的条件,采用对应的方式对代码文件中的目标页面对象进行定位,例如,当目标页面对象具有标准的DOM Xpath时,可以利用目标页面对象的路径进行识别;又如,可以利用屏幕坐标文件、影像识别方法或键盘模拟操作,从代码文件中识别目标页面对象。
在本申请实施例中,通过判断代码文件中是否包含标识信息对应的目标页面对象,若是,生成针对目标页面对象的正则表达式,采用正则表达式,在代码文件中调用目标页面对象执行操作请求,实现了通过正则表达式识别代码文件中的页面对象,可以确保目标页面对象被迅速识别。
为了使本领域技术人员能够更好地理解上述步骤,以下通过一个例子对本申请实施例加以示例性说明,但应当理解的是,本申请实施例并不限于此。
如图5-图9所示,可以如图5所示流程进行定价单录入:在图6所示的登录页面中进行登录,登录后,在图7所示的菜单栏中点击“定价处理”,选择其中的“定价录入申请”,然后,在图8和图9所示的信息录入界面中,输入相关信息,例如选择定价单的类型,或者记录定价录入申请的提交日期,完成定价单的录入。在定价单录入过程中,可以通过用户进行操作,或者通过设置自动化测试脚本自动进行选择或输入。
在对流程改进前,当页面中出现控件并对控件进行操作时,可以在直接遍历该页面对应的DOM结构,查找与控件对应的页面对象,但由于在查找前并不判断DOM结构中是否包含页面对象或者页面对象是否可操作,导致无法百分百保证页面对象对应的DOM结构已被加载。在实际应用中,DOM结构的加载是需要一定时间的,若由于服务端的吞吐能力较差而导致DOM结构未能及时加载完毕,在进行查找时,则生成页面对象无法识别的提示信息,引起程序中断。
而在本申请中,如图10所示,在查找“定价单类型”输入框对应的页面对象时,可以确定“定价单类型”输入框的标识信息,获取“定价单类型”输入框所在页面对应的代码文件,并判断代码文件中是否包含“定价单类型”输入框标识信息对应的目标页面对象,若不包含该目标页面对象,可以通过隐性等待等待代码文件的加载,直到代码文件中包含该目标页面对象,避免了在代码文件没有加载成功或页面跳转失败的情况下便直接进行查找,保证了包含目标页面对象的代码文件加载成功,在加载成功后,可以采用正则表达式匹配目标页面对象。通过隐性等待和正则表达式,可以使以IE为主的页面对象识别成功率提高至100%。
在通过正则表达式进行匹配后,可以获取状态信息,判断目标页面对象是否处于可操作状态,当目标页面对象处于可操作状态时,可以根据目标页面对象的对象类型进行操作,例如获取变量(get property)、点击(click)、选择对象(select item)或设置文本(set text)。
改进后的程序通过获取代码文件,判断代码文件中是否包含目标页面对象,采用正则表达式匹配目标页面对象,并在调用前,判断目标页面对象是否处于可操作状态,保证了程序的严谨性和科学性,在提高识别效率的同时解决了由于查找不到页面对象导致的延时问题,通过获取代码文件达到智能判断页面跳转的效果。
并且,在自动化程序的执行过程中,可以识别并操作模态化窗口和网页的对话框,使自动化平台的工作效率提高了35%,同时,自动化程序可以是多个业务场景组成,通过自动化程序的不断回访,可以使用户熟练掌握业务场景操作,提高业务的认知度。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图11,示出了本申请一实施例提供的一种页面对象的查找装置的结构示意图,具体可以包括如下模块:
标识信息确定模块1101,用于在自动化测试脚本的运行过程中,响应于所述自动化测试脚本针对预设网页中控件的操作请求,确定所述控件对应的标识信息;其中,所述预设网页为采用IE内核的浏览器加载的网页;
代码文件加载模块1102,用于确定当前加载的代码文件;
目标页面对象判断模块1103,用于判断所述代码文件中是否包含所述标识信息对应的目标页面对象;若否,调用代码文件加载等待模块,若是,调用操作请求执行模块;
代码文件加载等待模块1104,用于等待所述代码文件完成加载,再返回所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤;
操作请求执行模块1105,用于在所述代码文件中,调用所述目标页面对象执行所述操作请求。
在本申请一实施例中,所述装置还包括:
加载时长确定模块,用于确定针对所述代码文件的加载时长;
时长比较模块,用于判断所述加载时长是否小于预设时长;若否,调用失败信息生成模块,若是,调用目标页面对象判断模块1103;
失败信息生成模块,用于生成加载失败信息。
在本申请一实施例中,所述操作请求执行模块1105包括:
正则表达式生成子模块,用于生成针对所述目标页面对象的正则表达式;
正则表达式调用子模块,用于采用所述正则表达式,在所述代码文件中调用所述目标页面对象执行所述操作请求。
在本申请另一实施例中,所述代码文件对应一文档对象模型树,所述文档对象模型树包括多个节点,每个节点对应一页面对象,所述正则表达式调用子模块包括:
节点路径确定单元,用于确定所述文档对象模型树对应的一条或多条节点路径;其中,每个节点路径由多个节点组成;
候选路径集确定单元,用于采用所述正则表达式,对所述一条或多条节点路径进行筛选,得到候选路径集;
节点路径遍历单元,用于遍历所述候选路径集中的节点路径,得到与所述标识信息匹配的目标节点,并调用所述目标节点对应的页面对象执行所述操作请求。
在本申请一实施例中,所述正则表达式包括所述目标页面对象对应的特征信息,所述候选路径集确定单元包括:
路径筛选子单元,用于采用所述特征信息,对所述一条或多条节点路径进行筛选,得到候选路径集。
在本申请一实施例中,所述装置还包括:
状态信息获取模块,用于获取所述目标页面对象的状态信息;其中,所述状态信息用于指示所述目标页面对象是否可调用;
状态信息判断模块,判断所述状态信息是否为可操作状态信息,若所述状态信息为可操作状态信息,调用操作请求执行模块1105。
在本申请另一实施例中,所述目标页面对象具有对应的对象类型,所述调用操作请求执行模块1105包括:
操作执行子模块,用于在所述代码文件中,调用所述目标页面对象执行所述对象类型对应的操作。
在本申请实施例中,通过在自动化测试脚本的运行过程中,响应于自动化测试脚本针对预设网页中控件的操作请求,确定控件对应的标识信息和当前加载的代码文件,预设网页可以是为采用IE内核的浏览器加载的网页,并判断代码文件中是否包含标识信息对应的目标页面对象,若否,则等待代码文件完成加载,再返回判断代码文件中是否包含标识信息对应的目标页面对象的步骤,若是,在代码文件中,调用目标页面对象执行操作请求,实现了代码文件的加载等待,当代码文件中不包括页面对象时,可以等待代码文件更新直到代码文件中包含页面,保证了当页面中控件已展示时,可以在代码文件中查找到对应的页面对象,提高了页面对象的识别效率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请一实施例还提供了一种电子设备,可以包括处理器、存储器及存储在存储器上并能够在处理器上运行的计算机程序,计算机程序被处理器执行时实现如上页面对象的查找方法的步骤。
本申请一实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上页面对象的查找方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对所提供的一种页面对象的查找方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种页面对象的查找方法,其特征在于,所述方法包括:
在自动化测试脚本的运行过程中,响应于所述自动化测试脚本针对预设网页中控件的操作请求,确定所述控件对应的标识信息;其中,所述预设网页为采用IE内核的浏览器加载的网页;
确定当前加载的代码文件;
确定针对所述代码文件的加载时长;判断所述加载时长是否小于预设时长;
判断所述代码文件中是否包含所述标识信息对应的目标页面对象;
若否,则继续加载所述代码文件,再返回所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤;
若是,在所述代码文件中,调用所述目标页面对象执行所述操作请求。
2.根据权利要求1所述的方法,其特征在于,所述判断所述加载时长是否小于预设时长,具体还包括:
若否,则生成加载失败信息;
若是,则执行所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤。
3.根据权利要求1或2所述的方法,其特征在于,所述在所述代码文件中,调用所述目标页面对象执行所述操作请求的步骤包括:
生成针对所述目标页面对象的正则表达式;
采用所述正则表达式,在所述代码文件中调用所述目标页面对象执行所述操作请求。
4.根据权利要求3所述的方法,其特征在于,所述代码文件对应一文档对象模型树,所述文档对象模型树包括多个节点,每个节点对应一页面对象,所述采用所述正则表达式,在所述代码文件中调用所述目标页面对象执行所述操作请求的步骤包括:
确定所述文档对象模型树对应的一条或多条节点路径;其中,每个节点路径由多个节点组成;
采用所述正则表达式,对所述一条或多条节点路径进行筛选,得到候选路径集;
遍历所述候选路径集中的节点路径,得到与所述标识信息匹配的目标节点,并调用所述目标节点对应的页面对象执行所述操作请求。
5.根据权利要求4所述的方法,其特征在于,所述正则表达式包括所述目标页面对象对应的特征信息,所述采用所述正则表达式,对所述一条或多条节点路径进行筛选,得到候选路径集的步骤包括:
采用所述特征信息,对所述一条或多条节点路径进行筛选,得到候选路径集。
6.根据权利要求1或2或3所述的方法,其特征在于,所述在所述代码文件中,调用所述目标页面对象执行所述操作请求的步骤之前,所述方法还包括:
获取所述目标页面对象的状态信息;其中,所述状态信息用于指示所述目标页面对象是否可调用;
判断所述状态信息是否为可操作状态信息;
若所述状态信息为可操作状态信息,执行所述在所述代码文件中,调用所述目标页面对象执行所述操作请求的步骤。
7.根据权利要求1所述的方法,其特征在于,所述目标页面对象具有对应的对象类型,所述在所述代码文件中,调用所述目标页面对象执行所述操作请求的步骤包括:
在所述代码文件中,调用所述目标页面对象执行所述对象类型对应的操作。
8.一种页面对象的查找装置,其特征在于,所述装置包括:
标识信息确定模块,用于在自动化测试脚本的运行过程中,响应于所述自动化测试脚本针对预设网页中控件的操作请求,确定所述控件对应的标识信息;其中,所述预设网页为采用IE内核的浏览器加载的网页;
代码文件加载模块,用于确定当前加载的代码文件;
目标页面对象判断模块,用于判断所述代码文件中是否包含所述标识信息对应的目标页面对象;若否,调用代码文件加载等待模块,若是,调用操作请求执行模块;
代码文件加载等待模块,用于等待所述代码文件完成加载,再返回所述判断所述代码文件中是否包含所述标识信息对应的目标页面对象的步骤;
操作请求执行模块,用于在所述代码文件中,调用所述目标页面对象执行所述操作请求。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的页面对象的查找方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的页面对象的查找方法的步骤。
CN202010471221.2A 2020-05-28 2020-05-28 一种页面对象的查找方法及装置 Pending CN111679976A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010471221.2A CN111679976A (zh) 2020-05-28 2020-05-28 一种页面对象的查找方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010471221.2A CN111679976A (zh) 2020-05-28 2020-05-28 一种页面对象的查找方法及装置

Publications (1)

Publication Number Publication Date
CN111679976A true CN111679976A (zh) 2020-09-18

Family

ID=72452854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010471221.2A Pending CN111679976A (zh) 2020-05-28 2020-05-28 一种页面对象的查找方法及装置

Country Status (1)

Country Link
CN (1) CN111679976A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114328273A (zh) * 2022-03-07 2022-04-12 统信软件技术有限公司 一种应用程序控件的调试方法、调试装置及计算设备
CN114817799A (zh) * 2022-02-21 2022-07-29 平安国际智慧城市科技股份有限公司 网页信息处理方法、装置、电子设备及存储介质
CN114860582A (zh) * 2022-04-14 2022-08-05 中国电子科技集团公司第十五研究所 Web页面测试辅助方法及系统
CN115033822A (zh) * 2022-06-14 2022-09-09 壹沓科技(上海)有限公司 一种元素定位方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107577607A (zh) * 2017-09-07 2018-01-12 携程旅游信息技术(上海)有限公司 用户界面自动化测试方法、装置、电子设备、存储介质
CN108845925A (zh) * 2018-03-30 2018-11-20 新华三技术有限公司 web页面测试方法、装置、电子设备及计算机可读介质
CN109656816A (zh) * 2018-12-04 2019-04-19 泰康保险集团股份有限公司 控件识别方法、装置、设备以及存储介质
CN110297752A (zh) * 2018-03-23 2019-10-01 华为软件技术有限公司 控件元素的获取方法及装置、自动化测试系统、存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107577607A (zh) * 2017-09-07 2018-01-12 携程旅游信息技术(上海)有限公司 用户界面自动化测试方法、装置、电子设备、存储介质
CN110297752A (zh) * 2018-03-23 2019-10-01 华为软件技术有限公司 控件元素的获取方法及装置、自动化测试系统、存储介质
CN108845925A (zh) * 2018-03-30 2018-11-20 新华三技术有限公司 web页面测试方法、装置、电子设备及计算机可读介质
CN109656816A (zh) * 2018-12-04 2019-04-19 泰康保险集团股份有限公司 控件识别方法、装置、设备以及存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114817799A (zh) * 2022-02-21 2022-07-29 平安国际智慧城市科技股份有限公司 网页信息处理方法、装置、电子设备及存储介质
CN114328273A (zh) * 2022-03-07 2022-04-12 统信软件技术有限公司 一种应用程序控件的调试方法、调试装置及计算设备
CN114860582A (zh) * 2022-04-14 2022-08-05 中国电子科技集团公司第十五研究所 Web页面测试辅助方法及系统
CN114860582B (zh) * 2022-04-14 2024-01-09 中国电子科技集团公司第十五研究所 Web页面测试辅助方法及系统
CN115033822A (zh) * 2022-06-14 2022-09-09 壹沓科技(上海)有限公司 一种元素定位方法、装置、设备及可读存储介质
CN115033822B (zh) * 2022-06-14 2024-05-17 壹沓科技(上海)有限公司 一种元素定位方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
US10152488B2 (en) Static-analysis-assisted dynamic application crawling architecture
CN111679976A (zh) 一种页面对象的查找方法及装置
US9021442B2 (en) Dynamic scenario testing of web application
US11720379B2 (en) Acquisition process of GUI elements using user input
US20160259773A1 (en) System and method for identifying web elements present on a web-page
US11886895B2 (en) Enhanced target selection for robotic process automation
US11054960B1 (en) Fuzzy target selection for robotic process automation
KR20060079080A (ko) 웹페이지의 양상을 평가하기 위한 방법 및 장치
CN111475161B (zh) 一种访问组件的方法、装置及设备
CN113535587B (zh) 目标应用检测方法、装置及计算机设备
Montoto et al. Automated browsing in AJAX websites
CN112241370B (zh) 一种api接口类的校验方法、系统及装置
CN107038117B (zh) 一种基于事件处理函数间定义-引用的web自动化测试方法
US9678856B2 (en) Annotated test interfaces
CN117389538A (zh) 页面组件内容开发方法、装置、设备以及存储介质
CN115481025A (zh) 自动化测试的脚本录制方法、装置、计算机设备及介质
CN109656816A (zh) 控件识别方法、装置、设备以及存储介质
US11656976B2 (en) System and method for element locator recommendations for a UI application
US20140245159A1 (en) Transport script generation based on a user interface script
CN109062785B (zh) 接口参数约束代码定位方法与系统
CN115469844A (zh) 代码处理方法、系统、计算机集群、介质及程序产品
CN112612469A (zh) 一种界面元素的处理方法、装置和电子设备
US11960560B1 (en) Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof
Ștefan et al. Towards Automated Web Functional Testing Using Predefined Templates
CN114490315B (zh) Web应用程序自动化测试方法和装置

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200918