CN107066377B - 基于Android系统的页面元素获取方法及终端设备 - Google Patents
基于Android系统的页面元素获取方法及终端设备 Download PDFInfo
- Publication number
- CN107066377B CN107066377B CN201710038201.4A CN201710038201A CN107066377B CN 107066377 B CN107066377 B CN 107066377B CN 201710038201 A CN201710038201 A CN 201710038201A CN 107066377 B CN107066377 B CN 107066377B
- Authority
- CN
- China
- Prior art keywords
- current page
- element information
- state
- page
- module
- 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.)
- Active
Links
Images
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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Telephone Function (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供一种基于Android系统的页面元素获取方法及终端设备,该方法包括:获取当前页面的状态;若当前页面的状态为动态,则在第一预设时长内,每间隔第二预设时长确定当前页面的状态,直至确定当前页面的状态为静态时,获取当前页面的第一元素信息,第一元素信息包括静态控件的属性信息和动态控件的属性信息;若在第一预设时长内获取得到的、当前页面的状态均为动态,则在第一预设时长结束时,获取当前页面的第二元素信息,第二元素信息包括当前页面中静态控件的属性信息、当前页面中动态控件对应的预设填充信息。用于解决现有技术中当前界面包含动态控件时获取界面元素一旦获取失败则会报错导致无法完成自动化测试的问题。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种基于Android系统的页面元素获取方法及终端设备。
背景技术
在终端设备(例如手机、电脑、电视等)中每一个功能发布之前,需要对该功能进行大量测试,以保证终端设备中各功能均能正常运行。
UiAutomator是Android系统中自带的一个UI测试框架,通过UiAutomator测试框架可以获取终端设备当前显示页面中各控件的属性信息,并将各控件的属性信息确定为当前显示页面的元素信息。用户可以根据获取得到的元素信息来对终端设备中的应用程序进行点击、滑动、键盘输入、长按等一系列的自动化测试操作来替代以前繁琐的手工测试,或者,通过获取得到的元素信息查询设备上的UI整体布局,控件大小,resource-id,text内容,是否可点击等属性。
当终端设备当前显示的页面中包括动态控件时,例如,当前页面中的音乐图标为动态控件,当播放音乐时,对应的音乐图标将变为动态变化状态,当没有播放音乐时,对应的音乐图标呈现静态状态,在静态状态下,可以获取动态控件的属性信息作为元素信息。在获取音乐图标的元素信息时,如果音乐图标呈现动态变化状态,其对应的显示内容在不断的发生变化,所以使得动态控件的属性信息也不断的发生变换,导致终端设备通过UiAutomator测试框架无法获取动态控件的属性信息。在这种情况下,终端设备会报错,导致无法实现对该当前显示页面进行自动化测试。
发明内容
本发明实施例提供一种基于Android系统的页面元素获取方法及终端设备,用于解决现有技术中当前界面包含动态控件时获取界面元素一旦获取失败则会报错导致无法完成自动化测试的问题。
第一方面,本发明实施例提供一种基于Android系统的页面元素获取方法,所述方法包括:
获取当前页面的状态,所述当前页面包括静态控件和动态控件;
若所述当前页面的状态为动态,则在第一预设时长内,每间隔第二预设时长确定所述当前页面的状态,直至确定所述当前页面的状态为静态时,获取所述当前页面的第一元素信息,所述第一元素信息包括所述静态控件的属性信息和所述动态控件的属性信息;
若在所述第一预设时长内每间隔第二预设时长获取得到的、所述当前页面的状态均为动态,则在所述第一预设时长结束时,获取所述当前页面的第二元素信息,所述第二元素信息包括所述当前页面中静态控件的属性信息、及所述当前页面中动态控件对应的预设填充信息。
在一种可能的实施方式中,所述获取当前页面的状态,包括:
获取所述当前页面中各控件的状态;
根据各所述控件的状态,判断所述当前页面的控件中是否存在当前状态为动态的控件;
若是,则确定所述当前页面的状态为动态;
若否,则确定所述当前页面的状态为静态。
在另一种可能的实施方式中,所述预设填充信息为NULL。
在另一种可能的实施方式中,在获取当前页面的状态之前,还包括:
接收测试设备发送的页面元素获取指令;
判断所述页面元素获取指令中是否包括自定义文件名;
若是,则确定所述被测试设备的当前操作目录,并在所述当前操作目录下创建元素信息文件,所述元素信息文件的名称为所述自定义文件名;
若否,则在预设默认目录下,创建元素信息文件,所述元素信息文件的名称为预设默认文件名。
在另一种可能的实施方式中,在获取所述当前页面的元素信息之后,还包括:
确定所述元素信息文件对应的存储格式;
按照所述元素信息文件对应的存储格式,将所述当前页面的元素信息存储在所述元素信息文件中,所述当前页面的元素信息为第一元素信息或所述第二元素信息。
第二方面,本发明实施例提供一种终端设备,包括第一获取模块和第二获取模块,其中,
所述第一获取模块用于,获取当前页面的状态,所述当前页面包括静态控件和动态控件;
所述第二获取模块用于,在所述当前页面的状态为动态时,在第一预设时长内,每间隔第二预设时长确定所述当前页面的状态,直至确定所述当前页面的状态为静态时,获取所述当前页面的第一元素信息,所述第一元素信息包括所述静态控件的属性信息和所述动态控件的属性信息;
所述第二获取模块还用于,在所述第一预设时长内每间隔第二预设时长获取得到的、所述当前页面的状态均为动态时,在所述第一预设时长结束时,获取所述当前页面的第二元素信息,所述第二元素信息包括所述当前页面中静态控件的属性信息、及所述当前页面中动态控件对应的预设填充信息。
在一种可能的实施方式中,所述第一获取模块具体用于:
获取所述当前页面中各控件的状态;
根据各所述控件的状态,判断所述当前页面的控件中是否存在当前状态为动态的控件;
若是,则确定所述当前页面的状态为动态;
若否,则确定所述当前页面的状态为静态。
在另一种可能的实施方式中,所述预设填充信息为NULL。
在另一种可能的实施方式中,所述终端设备还包括接收模块、判断模块、第一确定模块及创建模块,其中,
所述接收模块用于,在所述第一获取模块获取当前页面的状态之前,接收测试设备发送的页面元素获取指令;
所述判断模块用于,判断所述页面元素获取指令中是否包括自定义文件名;
所述第一确定模块用于,在所述判断模块判断所述页面元素获取指令中包括自定义文件名时,确定所述被测试设备的当前操作目录;相应的,所述创建模块用于,在所述当前操作目录下创建元素信息文件,所述元素信息文件的名称为所述自定义文件名;
所述创建模块还用于,在所述判断模块判断所述页面元素获取指令中不包括自定义文件名时,在预设默认目录下,创建元素信息文件,所述元素信息文件的名称为预设默认文件名。
在另一种可能的实施方式中,所述终端设备还包括第二确定模块和存储模块,其中,
所述第二确定模块用于,在所述第二获取模块获取所述当前页面的元素信息之后,确定所述元素信息文件对应的存储格式,所述当前页面的元素信息为第一元素信息或所述第二元素信息;
所述存储模块用于,按照所述元素信息文件对应的存储格式,将所述元素信息存储在所述元素信息文件中。
本发明实施例提供的基于Android系统的页面元素获取方法及终端设备,当需要获取被测试设备当前显示的当前页面的元素信息时,先获取当前页面的状态。若当前页面的状态为静态,则直接获取当前页面的第一元素信息。若当前页面的状态为动态,则在最大等待时长(第一预设时长)内,每间隔第二预设时长获取一次当前页面的状态,直至获取得到的当前页面的状态为静态时,获取当前页面的第一元素信息,这样可以保证获取得到完整的元素信息,第一元素信息中包括当前页面中静态控件和动态控件的属性信息;若在最大等待时长(第一预设时长)之内每间隔第二预设时长获取得到的当前页面的状态均为动态时,则在第一预设时长结束时,获取当前页面的第二元素信息,第二元素信息中包括的当前页面中静态控件的属性信息和动态控件的预设填充信息,从而使得获取界面元素信息得以顺利执行,便于进行后续的测试流程,解决了现有技术中当前界面包含动态控件时获取界面元素一旦获取失败则会报错导致无法完成自动化测试的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于Android系统的页面元素获取方法的应用场景示意图;
图2为本发明实施例提供的基于Android系统的页面元素获取方法的流程示意图一;
图3为本发明实施例提供的手机页面示意;
图4为本发明实施例提供的基于Android系统的页面元素获取方法的流程示意图二;
图5为本发明实施例提供的电脑界面示意图;
图6为本发明实施例提供的终端设备的结构示意图一;
图7为本发明实施例提供的终端设备的结构示意图二。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的基于Android系统的页面元素获取方法的应用场景示意图。请参见图1,包括被测试设备101和测试设备102。被测试设备101的系统为Android系统,在Android系统中包括UiAutomator测试框架。可选的,被测试测试101可以为手机、pad、电视等设备。测试设备102可以为电脑等设备。被测试设备101和测试设备102可以通过网络、串口等方式连接,以使测试设备102可以访问被测试设备101,并对被测试设备101进行操作。
在本申请中,在被测试设备101和测试设备102连接之后,当需要获取被测试设备101中某一页面的元素信息时,用户可以在被测试设备101中将被测试设备101显示的页面调节至需要获取的页面。用户可以在测试设备102中输入相应的指令,以使测试设备102可以根据用户输入的指令,对测试设备101中的UiAutomator测试框架进行控制,以使被测试设备101可以通过UiAutomator测试框架获取被测试设备101显示的当前页面的元素信息。在本申请中,无论被测试设备101显示的当前页面中是否包括动态控件,测试设备102均可以获取被测试设备101显示的当前页面的元素信息,进而提高获取Android系统页面元素信息的可靠性。
下面,通过具体实施例,对本申请所示的技术方案进行详细说明。需要说明的是,下面几个具体实施例可以相互结合,对于相同或相似的概念,在不同的实施例中不再进行赘述。
图2为本发明实施例提供的基于Android系统的页面元素获取方法的流程示意图一。该方法的执行主体为被测试设备,请参见图2,该方法可以包括:
S201、接收测试设备发送的页面元素获取指令。
当用户需要获取被测试设备中某一页面的元素信息时,用户可以通过网络或者串口将被测试设备和测试设备连接。例如,用户可以将被测试设备和测试测试设置在同一网段,或者,通过通用串行总线(Universal Serial Bus,USB)将测试设备和被测试设备连接。
在将测试设备和被测试设备连接之后,用户可以在测试设备中输入页面元素获取指令。例如,假设测试设备为Microsoft Windows系统的电脑,则用户可在电脑的调试工具(例如CMD)中利用adb工具输入页面元素获取命令。在测试设备接收到用户输入的页面元素获取命令之后,测试设备向被测试设备发送页面元素获取指令。可选的,页面元素获取指令可以为uiautomator dump--forceDump命令。
可选的,在接收到测试设备发送的页面元素获取指令之后,被测试设备可以判断页面元素获取指令中是否包括自定义文件名。该自定义文件名可以为用户在测试设备中输入页面元素获取指令时,在测试设备中输入的。可选的,该自定义文件名可以为abc.xml,相应的,元素信息文件为xml格式的文件。
若是,则获取被测试设备的当前操作目录,并在当前操作目录下创建元素信息文件,元素信息文件的名称为自定义文件名。被测试设备的当前操作目录是指,用户在测试设备中输入的页面元素获取指令所在的目录。例如,假设用户在测试设备中进入手机的data目录,并在data目录下输入页面元素获取指令,则当前操作目录为data目录;再假设自定义文件名为abc.xml,则创建的元素信息文件为data/abc.xml。
若否,则在预设默认目录下,创建元素信息文件,元素信息文件的名称为预设默认文件名。可选的,默认目录可以为mnt/sdcard,预设默认文件名可以为window_dump.xml,相应的,创建的元素信息文件为mnt/sdcard/window_dump.xml。
S202、获取当前页面的状态。
在本发明实施例中,当前页面是指被测试设备当前显示的页面。当前页面中可能包括静态控件和/或动态控件。在被测试设备对当前页面进行显示的过程中,被测试设备显示静态控件对应的显示图标和动态控件对应的显示图标。在被测试设备显示静态控件对应的显示图标时,静态控件对应的图标为静止的。在被测试设备显示动态控件对应的显示图标时,动态控件对应的图标有时为静止的、有时为实时发生变化的。
例如,静态控件对应的显示图标可以为当前页面中显示的输入框、文字、图片等。动态控件可以为音乐图标,当播放音乐时,当前页面中显示的音乐图标实时发生变化,当音乐播放结束时,当前页面中显示的音乐图标则不再发生变化。
可选的,当前页面的状态包括静态和动态。若当前页面中所有控件的状态都为静态,则当前页面的状态为静态。若当前页面中存在当前状态为动态的控件,则当前页面的状态为动态。相应的,当需要获取当前页面的状态时,可以获取当前页面中各控件的状态,并根据各控件的状态,确定当前页面的状态。
需要说明的是,在不同时刻,当前页面的状态可能不同。例如,假设当前页面中包括动态控件1,在时刻1时,当前页面中的动态控件1为动态的,此时,当前页面的状态为动态的。在时刻2时,当前页面中的动态控件1变为了静态的,则当前页面的状态也从动态切换为了静态。
S203、判断当前页面的状态是否为静态。
若是,则执行S204。
若否,则执行S205。
S204、获取当前页面的第一元素信息。
若判断当前页面的状态为静态时,则说明此时当前页面中的各个控件的状态均为静态的,因此,可以直接获取当前页面的第一元素信息。第一元素信息包括静态控件的属性信息和动态控件的属性信息。
可选的,可以获取当前页面中各控件的属性信息,并将各个控件的属性信息的集合确定为当前页面的第一元素信息。
可选的,在获取当前页面的第一元素信息之后,被测试设备可以确定元素信息文件对应的存储格式,并按照元素信息文件对应的存储格式,将第一元素信息存储在元素信息文件中。例如,元素信息文件对应的存储格式可以包括列表存储、树形存储等。例如,可以创建一个Accessibility Node Info类的树节点,并根据该Accessibility Node Info类的树节点架构第一元素信息按照预设存储格式存储在元素信息文件中。
S205、确定当前时刻与接收到页面元素获取指令的时刻之间的总等待时长。
当判断当前页面的状态为动态时,被测试设备通过UiAutomator测试框架可能无法获取当前页面中完整的元素信息,为了获取完整的页面信息,被测试设备可以等待一定的时长。
S206、判断总等待时长是否大于第一预设时长。
若是,则执行S208。若否,则执行S207。
在被测试设备获取得到总等待时长之后,被测试设备判断该总等待时长是否大于第一预设时长。该第一预设时长为被测试设备的最大等待时长。例如,该第一预设时长可以为10秒。当然,在实际应用过程中,可以根据实际需要设置该第一预设时长。
若是,则说明在较长的时段内,当前页面的状态未从动态切换为静态,则被测试不再继续等待,则直接执行S204,以获取当前页面的元素信息。其中,在当前页面的状态为动态时,可能无法获取当前页面的完整的元素信息,或者,获取得到的当前页面的元素信息可能部分有误。
若否,则执行S207,以继续等待。
S207、等待第二预设时长。
在S207之后,执行S202。
第二预设时长小于第一预设时长。可选的,第二预设时长可以为0.5秒。当然,在实际应用过程中,可以根据实际需要设置该第二预设时长。
S208、获取当前页面的第二元素信息。
其中,第二元素信息包括当前页面中静态控件的属性信息、及当前页面中动态控件对应的预设填充信息。
可选的,预设填充信息可以为NULL。当然,预设填充信息也可以为其它信息,在实际应用过程中,可以根据实际需要设置该预设填充信息,本发明实施例对此不作具体限定。
可选的,可以确定当前页面中包括的静态控件和动态控件,获取静态控件的属性信息、及动态控件对应的预设填充信息,并将静态控件的属性信息、及动态控件对应的预设填充信息确定为当前页面的第二元素信息。
可选的,在获取当前页面的第二元素信息之后,被测试设备可以确定元素信息文件对应的存储格式,并按照元素信息文件对应的存储格式,将第二元素信息存储在元素信息文件中。例如,元素信息文件对应的存储格式可以包括列表存储、树形存储等。例如,可以创建一个Accessibility Node Info类的树节点,并根据该Accessibility Node Info类的树节点架构第二元素信息按照预设存储格式存储在元素信息文件中。
本发明实施例提供的基于Android系统的页面元素获取方法,当需要获取被测试设备当前显示的当前页面的元素信息时,先获取当前页面的状态。若当前页面的状态为静态,则直接获取当前页面的第一元素信息。若当前页面的状态为动态,则在最大等待时长(第一预设时长)内,每间隔第二预设时长获取一次当前页面的状态,直至获取得到的当前页面的状态为静态时,获取当前页面的第一元素信息,这样可以保证获取得到完整的元素信息,第一元素信息中包括当前页面中静态控件和动态控件的属性信息;若在最大等待时长(第一预设时长)之内每间隔第二预设时长获取得到的当前页面的状态均为动态时,则在第一预设时长结束时,获取当前页面的第二元素信息,第二元素信息中包括的当前页面中静态控件的属性信息和动态控件的预设填充信息,从而使得获取界面元素信息得以顺利执行,便于进行后续的测试流程,解决了现有技术中当前界面包含动态控件时获取界面元素一旦获取失败则会报错导致无法完成自动化测试的问题。下面,结合图3-图4,通过具体示例,对图2实施例所示的方法进行详细说明。
示例性的,假设手机的系统为Android系统,且在手机的Android系统中包括UiAutomator测试框架。当用户需要获取手机(被测试设备)中页面的元素信息时,用户可以将手机和电脑(测试设备)通过USB数据线连接。
假设用户需要获取“我的娱乐”页面的元素信息,则用户将手机显示的页面调节至“我的娱乐”页面,具体的,请参见图3。图3为本发明实施例提供的手机页面示意。请参见图3,在手机显示的当前页面中包括多个控件,其中,当前页面中的每一个元素均为一个控件,例如,字体“我的娱乐”、字体“我上传的节目”、各个图标等均为独立的控件。
在将手机界面调节至图3所示的当前页面之后,用户可以在电脑中的adb调试工具中进入手机的data目录,并在该data目录中输入uiautomator dump ab.xml--forceDump命令,以实现获取手机显示的当前页面的元素信息。具体的,请参见图4所示的实施例。
图4为本发明实施例提供的基于Android系统的页面元素获取方法的流程示意图二。请参见图4,该方法可以包括:
S401、手机接收电脑发送的uiautomator dump abc.xml--forceDump命令。
S402、手机确定当前操作目录data。
S403、手机在data目录下创建abc.xml文件。
S404、手机接收电脑发送的、abc.xml文件对应的存储格式为树形存储。
其中,该树形存储格式可以为用户在电脑中输入的。为了便于用户在电脑中输入存储格式,可以在电脑中显示UiAutomator测试框架对应的可视化操作界面,以使用户可以在可视化操作界面中输入存储格式。
S405、手机将abc.xml文件的存储格式设置为树形存储。
S406、手机创建封装类automationWrapper,并通过封装类automationWrapper启动手机中的UiAutomator测试框架。
S407、手机生成当前页面对应的uiautomation对象,以使手机的操作对象指向当前页面。
在手机的操作对象指向当前页面之后,手机便可以通过uiautomation对象获取当前页面的元素信息。
S408、手机获取当前页面中每一个控件的状态,并根据每一个控件的状态确定当前页面的状态。
S409、手机判断当前页面的状态是否为静态。
若是,则执行S410。
若否,则执行S411。
S410、手机获取当前页面中各个控件的属性信息,并将各控件的属性信息以树形存储方式存储至data目录下的abc.xml文件。
S411、手机获取当前时刻与接收到页面元素获取指令的时刻之间的总等待时长。
S412、手机判断总等待时长是否大于10秒(第一预设时长)。
若是,则执行S414。
若否,则执行S413。
S413、手机等待0.5秒(第二预设时长)。
在S413之后,执行S408。
S414、手机获取当前页面中静态控件的属性信息、及动态控件的填充信息NULL,并将静态控件的属性信息和动态控件的填充信息NULL以树形存储方式存储至data目录下的abc.xml文件。
通过图4所示的实施例,可以获取得到手机显示的当前页面的元素信息。进一步的,用户还可以在电脑上通过UI Automator Viewer工具预览当前页面、及当前页面的元素信息。具体的,请参见图5。
图5为本发明实施例提供的电脑界面示意图。请参见图5,在电脑屏幕的左侧显示着手机的当前页面。在电脑屏幕的右侧以树形结构显示abc.xml文件中的内容。用户可以在电脑中查看当前页面中任意一个控件对应的元素信息。例如,请参见图5,当用户对控件“一个人听”进行点击操作时,在电脑屏幕的右侧可以显示控件“一个人听”对应元素信息。例如,控件“一个人听”对应的元素信息可以包括该控件的index属性、text属性、resource-id属性、class属性等。
图6为本发明实施例提供的终端设备的结构示意图一。请参见图6,该终端设备可以包括第一获取模块11和第二获取模块12,其中,
所述第一获取模块11用于,获取当前页面的状态,所述当前页面包括静态控件和动态控件;
所述第二获取模块12用于,在所述当前页面的状态为动态时,在第一预设时长内,每间隔第二预设时长确定所述当前页面的状态,直至确定所述当前页面的状态为静态时,获取所述当前页面的第一元素信息,所述第一元素信息包括所述静态控件的属性信息和所述动态控件的属性信息;
所述第二获取模块12还用于,在所述第一预设时长内每间隔第二预设时长获取得到的、所述当前页面的状态均为动态时,在所述第一预设时长结束时,获取所述当前页面的第二元素信息,所述第二元素信息包括所述当前页面中静态控件的属性信息、及所述当前页面中动态控件对应的预设填充信息。
本发明实施例提供的终端设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述第一获取模块11具体用于:
获取所述当前页面中各控件的状态;
根据各所述控件的状态,判断所述当前页面的控件中是否存在当前状态为动态的控件;
若是,则确定所述当前页面的状态为动态;
若否,则确定所述当前页面的状态为静态。
在另一种可能的实施方式中,所述预设填充信息为NULL。
图7为本发明实施例提供的终端设备的结构示意图二。在图6所示实施例的基础上,请参见图7,所述终端设备还包括接收模块13、判断模块14、第一确定模块15及创建模块16,其中,
所述接收模块13用于,在所述第一获取模块11获取当前页面的状态之前,接收测试设备发送的页面元素获取指令;
所述判断模块14用于,判断所述页面元素获取指令中是否包括自定义文件名;
所述第一确定模块15用于,在所述判断模块14判断所述页面元素获取指令中包括自定义文件名时,确定所述被测试设备的当前操作目录;相应的,所述创建模块16用于,在所述当前操作目录下创建元素信息文件,所述元素信息文件的名称为所述自定义文件名;
所述创建模块16还用于,在所述判断模块14判断所述页面元素获取指令中不包括自定义文件名时,在预设默认目录下,创建元素信息文件,所述元素信息文件的名称为预设默认文件名。
在另一种可能的实施方式中,所述终端设备还包括第二确定模块17和存储模块18,其中,
所述第二确定模块17用于,在所述第二获取模块12获取所述当前页面的元素信息之后,确定所述元素信息文件对应的存储格式,所述当前页面的元素信息为第一元素信息或所述第二元素信息;
所述存储模块18用于,按照所述元素信息文件对应的存储格式,将所述第一元素信息存储在所述元素信息文件中。
本发明实施例提供的终端设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (10)
1.一种基于Android系统的页面元素获取方法,其特征在于,所述方法包括:
获取当前页面的状态,所述当前页面包括静态控件和动态控件;
若所述当前页面的状态为动态,则在第一预设时长内,每间隔第二预设时长确定所述当前页面的状态,直至确定所述当前页面的状态为静态时,获取所述当前页面的第一元素信息,所述第一元素信息包括所述静态控件的属性信息和所述动态控件的属性信息;
若在所述第一预设时长内每间隔第二预设时长获取得到的、所述当前页面的状态均为动态,则在所述第一预设时长结束时,获取所述当前页面的第二元素信息,所述第二元素信息包括所述当前页面中静态控件的属性信息、及所述当前页面中动态控件对应的预设填充信息。
2.根据权利要求1所述的方法,其特征在于,所述获取当前页面的状态,包括:
获取所述当前页面中各控件的状态;
根据各所述控件的状态,判断所述当前页面的控件中是否存在当前状态为动态的控件;
若是,则确定所述当前页面的状态为动态;
若否,则确定所述当前页面的状态为静态。
3.根据权利要求1所述的方法,其特征在于,所述预设填充信息为NULL。
4.根据权利要求1-3任一项所述的方法,其特征在于,在获取当前页面的状态之前,还包括:
接收测试设备发送的页面元素获取指令;
判断所述页面元素获取指令中是否包括自定义文件名;
若是,则确定被测试设备的当前操作目录,并在所述当前操作目录下创建元素信息文件,所述元素信息文件的名称为所述自定义文件名;
若否,则在预设默认目录下,创建元素信息文件,所述元素信息文件的名称为预设默认文件名。
5.根据权利要求4所述的方法,其特征在于,在获取所述当前页面的元素信息之后,还包括:
确定所述元素信息文件对应的存储格式;
按照所述元素信息文件对应的存储格式,将所述当前页面的元素信息存储在所述元素信息文件中,所述当前页面的元素信息为第一元素信息或所述第二元素信息。
6.一种终端设备,其特征在于,包括第一获取模块和第二获取模块,其中,
所述第一获取模块用于,获取当前页面的状态,所述当前页面包括静态控件和动态控件;
所述第二获取模块用于,在所述当前页面的状态为动态时,在第一预设时长内,每间隔第二预设时长确定所述当前页面的状态,直至确定所述当前页面的状态为静态时,获取所述当前页面的第一元素信息,所述第一元素信息包括所述静态控件的属性信息和所述动态控件的属性信息;
所述第二获取模块还用于,在所述第一预设时长内每间隔第二预设时长获取得到的、所述当前页面的状态均为动态时,在所述第一预设时长结束时,获取所述当前页面的第二元素信息,所述第二元素信息包括所述当前页面中静态控件的属性信息、及所述当前页面中动态控件对应的预设填充信息。
7.根据权利要求6所述的终端设备,其特征在于,所述第一获取模块具体用于:
获取所述当前页面中各控件的状态;
根据各所述控件的状态,判断所述当前页面的控件中是否存在当前状态为动态的控件;
若是,则确定所述当前页面的状态为动态;
若否,则确定所述当前页面的状态为静态。
8.根据权利要求6所述的终端设备,其特征在于,所述预设填充信息为NULL。
9.根据权利要求6-8任一项所述的终端设备,其特征在于,所述终端设备还包括接收模块、判断模块、第一确定模块及创建模块,其中,
所述接收模块用于,在所述第一获取模块获取当前页面的状态之前,接收测试设备发送的页面元素获取指令;
所述判断模块用于,判断所述页面元素获取指令中是否包括自定义文件名;
所述第一确定模块用于,在所述判断模块判断所述页面元素获取指令中包括自定义文件名时,确定被测试设备的当前操作目录;相应的,所述创建模块用于,在所述当前操作目录下创建元素信息文件,所述元素信息文件的名称为所述自定义文件名;
所述创建模块还用于,在所述判断模块判断所述页面元素获取指令中不包括自定义文件名时,在预设默认目录下,创建元素信息文件,所述元素信息文件的名称为预设默认文件名。
10.根据权利要求9所述的终端设备,其特征在于,所述终端设备还包括第二确定模块和存储模块,其中,
所述第二确定模块用于,在所述第二获取模块获取所述当前页面的元素信息之后,确定所述元素信息文件对应的存储格式,所述当前页面的元素信息为第一元素信息或所述第二元素信息;
所述存储模块用于,按照所述元素信息文件对应的存储格式,将所述元素信息存储在所述元素信息文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710038201.4A CN107066377B (zh) | 2017-01-18 | 2017-01-18 | 基于Android系统的页面元素获取方法及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710038201.4A CN107066377B (zh) | 2017-01-18 | 2017-01-18 | 基于Android系统的页面元素获取方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107066377A CN107066377A (zh) | 2017-08-18 |
CN107066377B true CN107066377B (zh) | 2020-11-17 |
Family
ID=59598313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710038201.4A Active CN107066377B (zh) | 2017-01-18 | 2017-01-18 | 基于Android系统的页面元素获取方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107066377B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144860B (zh) * | 2018-08-08 | 2022-01-14 | 北京云测信息技术有限公司 | 一种对控件对象的操作方法及终端设备 |
CN110442510A (zh) * | 2019-06-19 | 2019-11-12 | 中国平安财产保险股份有限公司 | 一种页面属性获取方法、装置及计算机设备、存储介质 |
CN110704148B (zh) * | 2019-09-20 | 2023-09-05 | 广州虎牙科技有限公司 | 设备页面元素的获取方法、装置、服务器及存储介质 |
CN111124919A (zh) * | 2019-12-24 | 2020-05-08 | 浙江诺诺网络科技有限公司 | 一种用户界面的测试方法、装置、设备及存储介质 |
CN114463730B (zh) * | 2021-07-15 | 2023-07-14 | 荣耀终端有限公司 | 一种页面识别方法及终端设备 |
CN114675905B (zh) * | 2022-04-07 | 2024-03-08 | 亿咖通(湖北)技术有限公司 | 一种信息显示方法、车机系统和可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678321A (zh) * | 2012-09-03 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 页面元素确定方法及设备、用户行为路径确定方法及装置 |
CN104866509A (zh) * | 2014-02-26 | 2015-08-26 | 阿里巴巴集团控股有限公司 | 页面元素的定位方法及装置 |
CN105373468A (zh) * | 2014-06-20 | 2016-03-02 | 阿里巴巴集团控股有限公司 | 一种web自动化可测性的检测方法和系统 |
CN105426305A (zh) * | 2015-11-03 | 2016-03-23 | 上海斐讯数据通信技术有限公司 | 一种控件属性解析系统及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9021442B2 (en) * | 2013-02-13 | 2015-04-28 | Sap Se | Dynamic scenario testing of web application |
-
2017
- 2017-01-18 CN CN201710038201.4A patent/CN107066377B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678321A (zh) * | 2012-09-03 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 页面元素确定方法及设备、用户行为路径确定方法及装置 |
CN104866509A (zh) * | 2014-02-26 | 2015-08-26 | 阿里巴巴集团控股有限公司 | 页面元素的定位方法及装置 |
CN105373468A (zh) * | 2014-06-20 | 2016-03-02 | 阿里巴巴集团控股有限公司 | 一种web自动化可测性的检测方法和系统 |
CN105426305A (zh) * | 2015-11-03 | 2016-03-23 | 上海斐讯数据通信技术有限公司 | 一种控件属性解析系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107066377A (zh) | 2017-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107066377B (zh) | 基于Android系统的页面元素获取方法及终端设备 | |
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
US9152521B2 (en) | Systems and methods for testing content of mobile communication devices | |
WO2017083207A1 (en) | Digital assistant setting up device | |
CN104572042A (zh) | 移动终端设备的跨平台中间件装置及其实现方法 | |
CN108563579B (zh) | 白盒测试方法、装置、系统及存储介质 | |
CN107122301A (zh) | 界面测试方法及装置 | |
CN111159049A (zh) | 接口自动化测试方法及系统 | |
CN108228293B (zh) | 一种界面皮肤切换方法及装置 | |
CN110716853A (zh) | 一种测试脚本录制方法、应用程序测试方法和相关装置 | |
CN106027785A (zh) | 一种语音处理方法及终端 | |
CN110659197B (zh) | 应用程序的测试用例生成方法、装置和软件测试系统 | |
CN112732587A (zh) | 一种自动化测试日志的获取方法、装置、电子设备及存储介质 | |
CN104049974A (zh) | 控件动态组装方法和系统 | |
CN111694733A (zh) | 一种软件开发工具包sdk的api测试方法以及测试装置 | |
CN112241373A (zh) | 自动化测试方法、测试装置、处理器和测试系统 | |
US8773527B2 (en) | System and method for capturing debug information using a peripheral device | |
CN105306928A (zh) | 一种测试机顶盒浏览器的方法及装置 | |
CN114218072A (zh) | 测试脚本生成方法、装置、存储介质及计算机设备 | |
CN111813673A (zh) | 硬盘填充测试方法及系统 | |
CN113722214B (zh) | 测试方法、测试设备及测试系统 | |
CN107179990B (zh) | 一种实现测试校验的方法及装置 | |
CN111026650B (zh) | 软件测试的方法、装置、存储介质和电子设备 | |
CN111354089B (zh) | 多层级的特效排序方法、装置、设备及存储介质 | |
CN110750742B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant after: Hisense Video Technology Co., Ltd Address before: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant before: HISENSE ELECTRIC Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |