下拉框指定值输入方法、装置、及计算机可读存储介质与流程

文档序号:17440821发布日期:2019-04-17 04:44阅读:197来源:国知局
下拉框指定值输入方法、装置、及计算机可读存储介质与流程

本发明涉及计算机技术领域,具体涉及一种下拉框指定值输入方法、装置、及计算机可读存储介质。



背景技术:

目前,电子设备在进行ui(userinterface,用户界面)自动化测试时,html5页面的自定义下拉框无法通过滑动来选择以选定一个特定的值,也无法获取已经选定的值。



技术实现要素:

鉴于以上内容,有必要提出一种下拉框指定值输入方法、装置、及计算机可读存储介质,用以解决app在测试过程中无法通过滑动来选定一个特定的值的技术问题。

本发明的第一方面提供一种下拉框指定值输入方法,所述方法包括:控制电子设备执行测试脚本对指定的app进行ui测试,其中,所述app的用户界面包括自定义的下拉框,所述下拉框对应多个选项值;当执行到需要在所述下拉框输入指定值时,获取所述下拉框所对应的所有选项值;根据所获取的所有选项值确定每个选项值所对应的index值;及根据所述指定值所对应的index值,在所述下拉框中输入所述指定值。

优选地,所述获取所述下拉框所对应的所有选项值包括:获取所述app的当前的用户界面所对应的html代码;解析所获取的html代码,获得所述下拉框的标识;及根据所述下拉框的标识获取所述下拉框所对应的所有选项值。

优选地,所述获取所述app的当前的用户界面所对应的html代码包括:调用函数appiumgetpagesource()获取所述app的当前的用户界面所对应的html代码。

优选地,所述解析所获取的html代码,获得所述下拉框的标识包括:调用jsoup解析所获取的html代码,获得所述下拉框的标识。

优选地,所述根据所述指定值所对应的index值,在所述下拉框中输入所述指定值包括:调用函数apiiumexecutescript()根据所述指定值所对应的index值,在所述下拉框中输入所述指定值。

优选地,所述app的用户界面采用超文本标记语言所创建。

优选地,所述电子设备为手机、平板电脑、智能电视,或者穿戴式设备。

优选地,所述测试脚本调用预先存储的ui测试用例对所述app进行ui测试。

本发明的第二方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述下拉框指定值输入方法。

本发明的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现所述下拉框指定值输入方法。

本发明的第四方面提供一种下拉框指定值输入装置,所述装置包括:执行模块,用于控制电子设备执行测试脚本对指定的app进行ui测试,其中,所述app的用户界面包括自定义的下拉框,所述下拉框对应多个选项值;所述执行模块,还用于当执行到需要在所述下拉框输入指定值时,获取所述下拉框所对应的所有选项值;所述执行模块,还用于根据所获取的所有选项值确定每个选项值所对应的index值;及所述执行模块,还用于根据所述指定值所对应的index值,在所述下拉框中输入所述指定值。

本发明实施例中所述的下拉框指定值输入方法、装置、及计算机可读存储介质,在ui测试脚本执行到需要在下拉框输入一个指定值时,获取当前的用户界面所对应的html代码,解析html代码获取下拉框所对应的标识,根据该下拉框所对应的标识获取到下拉框所对应的所有选项值。本案根据所获取的选项值的index值来实现所述指定值在下拉框中的输入,操作简单。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例一提供的下拉框指定值输入方法的应用环境架构图。

图2是本发明实施例二提供的下拉框指定值输入方法的流程图。

图3是本发明实施例三提供的下拉框指定值输入装置的结构图。

图4是本发明实施例四提供的计算机装置的示意图。

如下具体实施方式将结合上述附图进一步说明本发明。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。

实施例一

参阅图1所示,为本发明实施例一提供的下拉框指定值输入方法的应用环境架构图。

本发明的下拉框指定值输入方法应用在一个计算机装置及一个或多个电子设备构成的环境中。例如,由计算机装置3和电子设备4构成的环境中。

本实施例中,所述计算机装置3可以为服务器或个人电脑等设备。所述电子设备4可以为手机、平板电脑、智能电视、穿戴式设备等装置。

在一个实施例中,所述计算机装置3与电子设备4可以通过有线(例如usb(universalserialbus,通用串行总线)或无线的方式建立通讯连接。所述无线方式可以是传统无线通讯技术的任何类型,例如无线电、无线保真(wirelessfidelity,wifi)、蜂窝、卫星、广播等。无线通讯技术可以包括,但不限于,全球移动通信系统(globalsystemformobilecommunications,gsm)、通用分组无线业务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma),宽带码分多址(w-cdma)、cdma2000、imt单载波(imtsinglecarrier)、增强型数据速率gsm演进(enhanceddataratesforgsmevolution,edge)、长期演进技术(long-termevolution,lte)、高级长期演进技术、时分长期演进技术(time-divisionlte,td-lte)、高性能无线电局域网(highperformanceradiolocalareanetwork,hiperlan)、高性能无线电广域网(highperformanceradiowideareanetwork,hiperwan)、本地多点派发业务(localmultipointdistributionservice,lmds)、全微波存取全球互通(worldwideinteroperabilityformicrowaveaccess,wimax)、紫蜂协议(zigbee)、蓝牙、正交频分复用技术(flashorthogonalfrequency-divisionmultiplexing,flash-ofdm)、大容量空分多路存取(highcapacityspatialdivisionmultipleaccess,hc-sdma)、通用移动电信系统(universalmobiletelecommunicationssystem,umts)、通用移动电信系统时分双工(umtstime-divisionduplexing,umts-tdd)、演进式高速分组接入(evolvedhighspeedpacketaccess,hspa+)、时分同步码分多址(timedivisionsynchronouscodedivisionmultipleaccess,td-scdma)、演进数据最优化(evolution-dataoptimized,ev-do)、数字增强无绳通信(digitalenhancedcordlesstelecommunications,dect)及其他。

实施例二

图2是本发明实施例二提供的下拉框指定值输入方法的流程图。

在本实施例中,所述下拉框指定值输入方法可以应用于计算机装置中,对于需要进行下拉框指定值输入的计算机装置,可以直接在计算机装置上集成本发明的方法所提供的用于下拉框指定值输入的功能,或者以软件开发工具包(softwaredevelopmentkit,sdk)的形式运行在计算机装置上。

如图2所示,所述下拉框指定值输入方法具体包括以下步骤,根据不同的需求,所述流程图中步骤的顺序可以改变,某些步骤可以省略。

步骤s1、计算机装置确定一测试脚本,所述测试脚本用于对电子设备中的指定app(application,应用程序)进行ui测试。其中,所述app的用户界面采用超文本标记语言(hypertextmarkuplanguage,html)所创建,所述app的用户界面包括自定义的下拉框,所述下拉框对应多个选项值。所述测试脚本对所述app进行的ui测试包括在所述下拉框中输入一个指定值,所述指定值为所述多个选项值中的其中一个值。

超文本标记语言是一种用于创建网页的标准标记语言,通过标记符号来标记要显示的网页中的各个部分。“超文本”就是指页面内可以包含图片、链接,甚至音频、程序等非文字元素。超文本标记语言的结构包括“头”部分(head)、和“主体”部分(body)。其中,“头”部分提供关于网页的信息,“主体”部分提供网页的具体内容。

在本实施例中,所述超文本标记语言可以是html5,即第五代超文本标记语言。html5是html最新的修订版本,2014年10月由万维网联盟(w3c)完成标准制定。html5的设计目的是为了在移动设备上支持多媒体。html5具有一些新的特性,包括:(1)用于绘画的canvas元素;(2)用于媒介回放的video和audio元素;(3)对本地离线存储有更好的支持;(4)新的特殊内容元素,比如article、footer、header、nav、section;(5)新的表单控件,比如calendar、date、time、email、url、search。

本实施例中,所述指定app可以为任何能够和使用者进行交互,具有可视的使用者界面的应用程序,例如可以为购物平台、音频播放器、图像编辑器、游戏、电子书等。

在一个实施例中,对所述app进行ui测试可以是指测试所述app的ui界面的兼容性。例如,测试所述app的ui界面的各元素在windows操作系统下是否能够正常显示。在一个实施例中,所述各个元素包括,但不限于,文字、图片、音频、动画、视频、超链接、数据输入接口等等。

在一个实施例中,所述计算机装置预先存储了一个或多个ui测试用例,所述测试脚本调用所述预先存储的ui测试用例对所述app进行ui测试。在其他实施例中,所述测试脚本本身即是测试用例。

步骤s2、所述计算机装置控制所述电子设备执行所述测试脚本以对所述app进行ui测试。其中,当执行到需要在所述下拉框输入所述指定值时,获取所述下拉框所对应的所有选项值。

所述获取所述下拉框所对应的所有选项值包括:

(1)获取所述app的当前的用户界面所对应的html代码。

在一个实施例中,所述计算机装置调用函数appiumgetpagesource()来获取所述app的当前的用户界面所对应的html代码。

(2)解析所获取的html代码,获得所述下拉框的标识。

(3)根据所述下拉框的标识获取所述下拉框所对应的所有选项值。

在一个实施例中,所述计算机装置利用jsoup解析所获取的html代码,获取下拉框所对应的所有选项值。jsoup的名称也叫做javahtmlparser,是java现成的一个api套件,可以用来解析html与xml的信息,取得html与xml中所指定的不同名称的标识,以及标识里面的内容。

步骤s3、所述计算机装置根据所获取的所有选项值确定每个选项值所对应的index值(索引值),根据所述指定值所对应的index值,在所述下拉框中输入所述指定值。

在一个实施例中,所述计算机装置调用函数apiiumexecutescript()来根据所述指定值所对应的index值,在所述下拉框中输入所述指定值从而实现所述指定值的输入。

举例而言,假设所述app包括一个用于输入某个年份的下拉框,所述下拉框对应的所有年份包括从2010、2011、2012....2018共9个年份。所述测试脚本对所述app进行ui测试时需要在所述下拉框中输入年份2017。所述计算机装置则可以于测试脚本执行到需要在所述下拉框中输入年份2017时,调用函数appiumgetpagesource()获取所述app的当前的用户界面所对应的html代码,利用jsoup解析所获取的html代码,从而获得所述下拉框的标识,根据所述下拉框的标识获取到所述下拉框所对应的所有选项值(例如2010、2011、2012....2018共9个年份)。所述计算机装置根据所获取的所有选项值确定每个选项值所对应的index值。例如,确定年份2010对应的index值为0,年份2011对应的index值为1,依此类推,年份2018对应的index值为9。由此,所述计算机装置根据所述指定值(即年份2017)所对应的index值(即8),调用函数apiiumexecutescript()在所述下拉框中输入所述指定值(即年份2017)。

综上所述,本发明实施例中所述的下拉框指定值输入方法,在ui测试脚本执行到需要在下拉框输入一个指定值时,获取当前的用户界面所对应的html代码,解析html代码获取下拉框所对应的标识,根据该下拉框所对应的标识获取到下拉框所对应的所有选项值。本案根据所获取的选项值的index值来实现所述指定值在下拉框中的输入,操作简单。

上述图2详细介绍了本发明的下拉框指定值输入方法,下面结合图3和图4,对实现所述下拉框指定值输入方法的软件装置的功能模块以及实现所述下拉框指定值输入方法的硬件装置架构进行介绍。

应所述了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

实施例三

参阅图3所示,是本发明实施例三提供的下拉框指定值输入装置的结构图。

在一些实施例中,所述下拉框指定值输入装置30运行于计算机装置中。所述计算机装置通过网络连接了电子设备。所述下拉框指定值输入装置30可以包括多个由程序代码段所组成的功能模块。所述下拉框指定值输入装置30中的各个程序段的程序代码可以存储于计算机装置的存储器中,并由所述至少一个处理器所执行,以实现(详见图2描述)下拉框指定值输入。

本实施例中,所述下拉框指定值输入装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:确定模块301、执行模块302、执行模块302。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。

确定模块301确定一测试脚本,所述测试脚本用于对电子设备中的指定app(application,应用程序)进行ui测试。其中,所述app的用户界面采用超文本标记语言(hypertextmarkuplanguage,html)所创建,所述app的用户界面包括自定义的下拉框,所述下拉框对应多个选项值。所述测试脚本对所述app进行的ui测试包括在所述下拉框中输入一个指定值,所述指定值为所述多个选项值中的其中一个值。

超文本标记语言是一种用于创建网页的标准标记语言,通过标记符号来标记要显示的网页中的各个部分。“超文本”就是指页面内可以包含图片、链接,甚至音频、程序等非文字元素。超文本标记语言的结构包括“头”部分(head)、和“主体”部分(body)。其中,“头”部分提供关于网页的信息,“主体”部分提供网页的具体内容。

在本实施例中,所述超文本标记语言可以是html5,即第五代超文本标记语言。html5是html最新的修订版本,2014年10月由万维网联盟(w3c)完成标准制定。html5的设计目的是为了在移动设备上支持多媒体。html5具有一些新的特性,包括:(1)用于绘画的canvas元素;(2)用于媒介回放的video和audio元素;(3)对本地离线存储有更好的支持;(4)新的特殊内容元素,比如article、footer、header、nav、section;(5)新的表单控件,比如calendar、date、time、email、url、search。

本实施例中,所述指定app可以为任何能够和使用者进行交互,具有可视的使用者界面的应用程序,例如可以为购物平台、音频播放器、图像编辑器、游戏、电子书等。

在一个实施例中,对所述app进行ui测试可以是指测试所述app的ui界面的兼容性。例如,测试所述app的ui界面的各元素在windows操作系统下是否能够正常显示。在一个实施例中,所述各个元素包括,但不限于,文字、图片、音频、动画、视频、超链接、数据输入接口等等。

在一个实施例中,所述确定模块301预先存储了一个或多个ui测试用例,所述测试脚本调用所述预先存储的ui测试用例对所述app进行ui测试。在其他实施例中,所述测试脚本本身即是测试用例。

执行模块302控制所述电子设备执行所述测试脚本以对所述app进行ui测试。其中,当执行到需要在所述下拉框输入所述指定值时,执行模块302获取所述下拉框所对应的所有选项值。

所述获取所述下拉框所对应的所有选项值包括:

(1)获取所述app的当前的用户界面所对应的html代码。

在一个实施例中,所述执行模块302调用函数appiumgetpagesource()来获取所述app的当前的用户界面所对应的html代码。

(2)解析所获取的html代码,获得所述下拉框的标识。

(3)根据所述下拉框的标识获取所述下拉框所对应的所有选项值。

在一个实施例中,所述执行模块302利用jsoup解析所获取的html代码,获取下拉框所对应的所有选项值。jsoup的名称也叫做javahtmlparser,是java现成的一个api套件,可以用来解析html与xml的信息,取得html与xml中所指定的不同名称的标识,以及标识里面的内容。

执行模块302根据所获取的所有选项值确定每个选项值所对应的index值(索引值),根据所述指定值所对应的index值,在所述下拉框中输入所述指定值。

在一个实施例中,所述执行模块302调用函数apiiumexecutescript()来根据所述指定值所对应的index值,在所述下拉框中输入所述指定值从而实现所述指定值的输入。

举例而言,假设所述app包括一个用于输入某个年份的下拉框,所述下拉框对应的所有年份包括从2010、2011、2012....2018共9个年份。所述测试脚本对所述app进行ui测试时需要在所述下拉框中输入年份2017。所述执行模块302则可以于测试脚本执行到需要在所述下拉框中输入年份2017时,调用函数appiumgetpagesource()获取所述app的当前的用户界面所对应的html代码,利用jsoup解析所获取的html代码,从而获得所述下拉框的标识,根据所述下拉框的标识获取到所述下拉框所对应的所有选项值(例如2010、2011、2012....2018共9个年份)。所述执行模块302根据所获取的所有选项值确定每个选项值所对应的index值。例如,确定年份2010对应的index值为0,年份2011对应的index值为1,依此类推,年份2018对应的index值为9。由此,所述执行模块302根据所述指定值(即年份2017)所对应的index值(即8),调用函数apiiumexecutescript()在所述下拉框中输入所述指定值(即年份2017)。

综上所述,本发明实施例中所述的下拉框指定值输入装置,在ui测试脚本执行到需要在下拉框输入一个指定值时,获取当前的用户界面所对应的html代码,解析html代码获取下拉框所对应的标识,根据该下拉框所对应的标识获取到下拉框所对应的所有选项值。本案根据所获取的选项值的index值来实现所述指定值在下拉框中的输入,操作简单。

实施例四

参阅图4所示,为本发明实施例四提供的计算机装置的结构示意图。在本发明较佳实施例中,所述计算机装置3包括存储器31、至少一个处理器32、至少一条通信总线33。所述计算机装置3通过有线或者无线的方式与电子设备4建立通讯连接。

本领域技术人员应所述了解,图4示出的计算机装置的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述计算机装置3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。

在一些实施例中,所述计算机装置3包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的终端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。

需要说明的是,所述计算机装置3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。

在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述计算机装置3中的下拉框指定值输入装置30,并在计算机装置3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(read-onlymemory,rom)、随机存储器(randomaccessmemory,ram)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子擦除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述计算机装置3的控制核心(controlunit),利用各种接口和线路连接整个计算机装置3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行计算机装置3的各种功能和处理数据,例如执行下拉框指定值输入的功能。

在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。

尽管未示出,所述计算机装置3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述计算机装置3还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。

应所述了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。

上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是服务器、个人电脑等)或处理器(processor)执行本发明各个实施例所述方法的部分。

在进一步的实施例中,结合图3,所述至少一个处理器32可执行所述计算机装置3的操作装置以及安装的各类应用程序(如所述的下拉框指定值输入装置30)、程序代码等,例如,上述的各个模块。

所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图3中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到在电子设备4的应用程序41的用户界面的下拉框输入指定值的目的。

在本发明的一个实施例中,所述存储器31存储多个指令,所述多个指令被所述至少一个处理器32所执行以实现在电子设备4的应用程序41的用户界面的下拉框输入指定值的目的。

具体地,所述至少一个处理器32对上述指令的具体实现方法可参考图2对应实施例中相关步骤的描述,在此不赘述。

在本发明所提供的几个实施例中,应所述理解到,所揭露的装置,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1