CN104461526A - 一种终端应用程序的控件遍历方法及装置 - Google Patents
一种终端应用程序的控件遍历方法及装置 Download PDFInfo
- Publication number
- CN104461526A CN104461526A CN201410709239.6A CN201410709239A CN104461526A CN 104461526 A CN104461526 A CN 104461526A CN 201410709239 A CN201410709239 A CN 201410709239A CN 104461526 A CN104461526 A CN 104461526A
- Authority
- CN
- China
- Prior art keywords
- interface
- control
- node
- successively
- contact surface
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000008859 change Effects 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 21
- 230000000694 effects Effects 0.000 description 24
- 230000005856 abnormality Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Abstract
本发明公开了一种终端应用程序的控件遍历方法及装置。本发明通过依次点击一个界面的控件,并将点击控件时发生变化的界面加入界面队列,并回到当前界面继续控件的遍历,直至完成当前界面的控件的遍历后,再依次进行界面队列中的界面的控件的遍历,可以保证终端应用程序的控件的遍历覆盖率,并提高了控件遍历的效率。
Description
技术领域
本发明涉及软件分析与测试领域,尤其涉及一种终端应用程序的控件遍历方法及装置。
背景技术
如今智能终端安装了越来越多的应用程序,对终端应用程序的控件进行遍历,有着广泛的应用。现有的控件遍历方法很多都是不断地点击控件,一直进行界面的跳转,这种方法很难比较完整地遍历所有控件,而且还会导致很多不可控的问题。
因此,需要提高终端应用程序的控件的遍历覆盖率和遍历效率。
发明内容
本发明提供一种终端应用程序的控件遍历方法及装置,以提高终端应用程序的控件的遍历覆盖率和遍历效率。
一方面,提供了一种终端应用程序的控件遍历方法,包括:
依次点击终端应用程序的第一界面上的至少一个控件,判断所述第一界面是否发生变化;
当判断的结果为是,将变化后的至少一个第二界面添加至界面队列,并继续所述依次点击所述第一界面上的至少一个控件的步骤;
当完成所述第一界面上的至少一个控件的遍历时,依次读取所述界面队列中的至少一个第二界面,并依次遍历所述至少一个第二界面上的至少一个控件。
另一方面,提供了一种终端应用程序的控件遍历装置,包括:
遍历单元,用于依次点击终端应用程序的第一界面上的至少一个控件;
判断单元,用于判断所述第一界面是否发生变化;
添加单元,用于当判断的结果为是,将变化后的至少一个第二界面添加至界面队列;
所述遍历单元还用于继续所述依次点击所述第一界面上的至少一个控件的步骤;
所述遍历单元还用于当完成所述第一界面上的至少一个控件的遍历时,依次读取所述界面队列中的至少一个第二界面,并依次遍历所述至少一个第二界面上的至少一个控件。
可见,根据本发明提供的一种终端应用程序的控件遍历方法及装置,通过依次点击一个界面的控件,并将点击控件时发生变化的界面加入界面队列,并回到当前界面继续控件的遍历,直至完成当前界面的控件的遍历后,再依次进行界面队列中的界面的控件的遍历,可以保证终端应用程序的控件的遍历覆盖率,并提高了控件遍历的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种终端应用程序的控件遍历方法的流程示意图;
图2a、图2b和图2c为点击控件后的界面变化示意图;
图3为示例的终端应用程序的控件遍历示意图;
图4为本发明实施例提供的另一种终端应用程序的控件遍历方法的流程示意图;
图5为本发明实施例提供的一种终端应用程序的控件遍历装置的结构示意图;
图6为本发明实施例提供的另一种终端应用程序的控件遍历装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,为本发明实施例提供的一种终端应用程序的控件遍历方法的流程示意图,该方法包括以下步骤:
步骤S101,依次点击终端应用程序的第一界面上的至少一个控件。
在本发明中,终端指安装并可运行应用程序的智能终端,例如手机、平板电脑等。控件是指对数据和方法的封装,包括用户界面(英文:User Interface,简称:UI)控件、图表控件、报表控件等,在本发明中,主要指UI控件。一个终端可能安装了多个应用程序,这里针对每一个应用程序的界面上的控件进行遍历。遍历控件主要检查各个控件显示是否正确,遍历点击控件以发现终端隐藏的一些漏洞(bug)。
一个界面是由各种控件进行一定组合排列而成,在Andriod系统中,称界面为Activity,Activity是一个系统组件,用来显示每个界面的内容,并且让用户与之交互。点击Activity上的控件可能会导致Activity的跳转,或者当前Activity控件的重新排列。我们需要做的是,找出所有这样的排列可能,并记录所有获取得到的控件信息。如图2a、图2b和图2c所示的点击控件后的界面变化示意图,点击图2a上的控件4,会引发Activity的跳转,跳转到图2b的界面;而点击图2a上的控件6,虽然并不会引发Activity的跳转,但是会让当前Activity弹出图2c下面的一列新的控件,这样的情况我们也是认为是界面进行了变化。
在本步骤中,首先针对一个界面,依次点击该界面上的所有控件。在实际中,该界面为应用程序启动后的初始界面。
步骤S102,判断所述第一界面是否发生变化,若是,转至步骤S103;否则,转至步骤S101。
步骤S103,将变化后的至少一个第二界面添加至界面队列。
点击第一界面上的每一个控件后,判断第一界面是否发生变化。如图2b和图2c所示,这两种情况都认为界面发生了变化,需要将变化后的界面添加至界面队列。若判断第一界面没有发生变化,则继续点击第一界面上的下一个控件。
步骤S104,判断所述第一界面上的至少一个控件的遍历是否完成,若是,则转至步骤S105;否则,转至步骤S101。
判断第一界面发生变化,并将变化后的界面添加至界面队列后,需要回到第一界面,继续点击第一界面的下一个控件,直到完成第一界面上的所有控件的遍历。
步骤S105,依次读取所述界面队列中的至少一个第二界面,并依次遍历所述至少一个第二界面上的至少一个控件。
第一界面的所有控件的遍历完成后,再依次读取界面队列中的每个界面,并依次遍历每个界面中的所有控件,每个界面中的控件的遍历的过程与第一界面的遍历的过程相同,如果遍历过程中遇到界面发生变化的,也需要先记录发生变化的界面,将发生变化的界面放入界面队列中,依次进行读取。在这里,界面队列是一种存储界面信息的先进先出的数据结构,通过此结构,可以实时加入新发现的界面,同时也可以有序地进行已发现界面的遍历。
以图3示例的终端应用程序的控件遍历示意图为例,对前面的步骤进一步详细地描述:启动界面1,界面1包括4个控件,即控件1-4,依次点击控件1-4,当点击控件1时,从界面1跳转到界面2,界面2与界面1不是相同的界面,将界面2记录到界面队列里,然后回到界面1,继续点击控件2,直至完成控件1-4的点击;然后读取界面2,界面2包括2个控件,即控件5、6,依次点击控件5、6,当点击控件5时,由界面2跳转到了界面1,但是因为界面1已经遍历过,不作记录,遍历结束。
根据本发明实施例提供的一种终端应用程序的控件遍历方法,通过依次点击一个界面的控件,并将点击控件时发生变化的界面加入界面队列,并回到当前界面继续控件的遍历,直至完成当前界面的控件的遍历后,再依次进行界面队列中的界面的控件的遍历,可以保证终端应用程序的控件的遍历覆盖率,并提高了控件遍历的效率。
请参阅图4,为本发明实施例提供的另一种终端应用程序的控件遍历方法的流程示意图,该方法包括以下步骤:
步骤S201,依次点击终端应用程序的第一界面上的至少一个控件。
步骤S202,判断所述第一界面和所述至少一个第二界面的界面名称、所述第一界面和所述至少一个第二界面分别包含的至少一个控件是否相同,若是,则转至步骤S203;否则,转至步骤S201。
如图2a所示,当点击图2a所示界面的控件以后,界面出现了如图2b或者图2c所示的变化,这里都认为界面发生了变化,记录到界面队列里面,等待遍历。判断的方法是,两个界面的Activity名称和Activity里所有的控件是否完全一致,如果一致,则认为是相同的界面,如果不一致则认为界面不一致。并且如果两个界面的界面名称不同,认为界面发生了跳转,例如,认为图2a至图2b的界面发生了跳转,而图2c仅是Activity的控件不一致,不认为界面发生了跳转,仅认为其界面发生了变化。
步骤S203,将变化后的至少一个第二界面添加至界面队列。
步骤S204,若所述第一界面和所述至少一个第二界面的界面名称不同,则确定所述第一界面发生了跳转,将跳转后的界面对应的节点入栈。
步骤S205,从跳转后的界面对应的节点的上一级节点回溯至最顶节点,依次将所述上一级节点至最顶节点入栈。
步骤S206,判断所述第一界面上的至少一个控件的遍历是否完成,若是,则转至步骤S209;否则,转至步骤S207。
步骤S207,访问所述最顶节点。
步骤S208,将所述最顶节点出栈,直至将所述第一界面对应的节点出栈。
根据本实施例的方案,当点击控件而导致界面发生变化以后,需要返回上一层界面继续遍历上一层界面的控件。但是,如何保证精确无误地返回上一层界面,我们这里还需要一个回溯的方法。回溯的方案如下:创建名为SurfaceNode的数据结构,记录当前节点信息和到达该节点之前父亲节点的信息。在需要回溯上一层的时候,访问其父亲节点即可。不过,例如在Android手机上,很难保证简单的返回操作就能回到原来的状态,所以我们这里对回溯方法进行了扩展。每次回溯,都直接回溯到最顶层节点,再往下找目标节点。具体方法是,把当前节点入栈,访问其父亲节点,如果不是最顶节点,继续入栈,直到访问到最顶节点(一般最顶节点就是程序的默认activity界面,初始化该程序并启动就可以保证进入状态完全一致)。再从栈中出栈,按照出栈的节点的操作,一步步地往下,直到找到目标节点为止。至此,我们就可以保证我们能精确无误地回溯到上一层节点。在本实施例中,若第一界面的控件还没有遍历完成,即要找到到第一界面对应的节点。
步骤S209,依次读取所述界面队列中的至少一个第二界面,并依次遍历所述至少一个第二界面上的至少一个控件。
步骤S210,在控件遍历过程中,对影响所述控件遍历的异常状况进行检测。
步骤S211,当出现所述异常状况时,对所述异常状况进行处理。
由于终端例如手机会出现各种偶发性的弹出框或者异常状态,我们需要对这些情况进行处理。具体做法就是,创建守护进程,处理异常状态。例如,当守护进程检测到“电量满”的对话框时,会自动消除该对话框。因为这些异常状态会因Android版本或者第三方rom的修改而变化,所以实现方法不尽相同,需要具体情况具体处理。
根据本发明实施例提供的一种终端应用程序的控件遍历方法,通过依次点击一个界面的控件,并将点击控件时发生变化的界面加入界面队列,并回到当前界面继续控件的遍历,直至完成当前界面的控件的遍历后,再依次进行界面队列中的界面的控件的遍历,可以保证终端应用程序的控件的遍历覆盖率,并提高了控件遍历的效率;且提高了控件遍历过程中的异常处理能力。
请参阅图5,为本发明实施例提供的一种终端应用程序的控件遍历装置,该装置1000包括:
遍历单元11,用于依次点击终端应用程序的第一界面上的至少一个控件。
一个终端可能安装了多个应用程序,这里针对每一个应用程序的界面上的控件进行遍历。遍历控件主要检查各个控件显示是否正确,遍历点击控件以发现终端隐藏的一些漏洞(bug)。
一个界面是由各种控件进行一定组合排列而成,在Andriod系统中,称界面为Activity,Activity是一个系统组件,用来显示每个界面的内容,并且让用户与之交互。点击Activity上的控件可能会导致Activity的跳转,或者当前Activity控件的重新排列。我们需要做的是,找出所有这样的排列可能,并记录所有获取得到的控件信息。如图2a、图2b和图2c所示的点击控件后的界面变化示意图,点击图2a上的控件4,会引发Activity的跳转,跳转到图2b的界面;而点击图2a上的控件6,虽然并不会引发Activity的跳转,但是会让当前Activity弹出图2c下面的一列新的控件,这样的情况我们也是认为是界面进行了变化。
遍历单元11首先针对一个界面,依次点击该界面上的所有控件。在实际中,该界面为应用程序启动后的初始界面。
判断单元12,用于判断所述第一界面是否发生变化。
添加单元13,用于当判断的结果为是,将变化后的至少一个第二界面添加至界面队列。
点击第一界面上的每一个控件后,判断单元12判断第一界面是否发生变化。如图2b和图2c所示,这两种情况都认为界面发生了变化,添加单元13需要将变化后的界面添加至界面队列。若判断第一界面没有发生变化,则遍历单元11继续点击第一界面上的下一个控件。
所述遍历单元11还用于继续依次点击所述第一界面上的至少一个控件。
判断单元12判断第一界面发生变化,添加单元13将变化后的界面添加至界面队列后,遍历单元11需要回到第一界面,继续点击第一界面的下一个控件,直到完成第一界面上的所有控件的遍历。
所述遍历单元11还用于当完成所述第一界面上的至少一个控件的遍历时,依次读取所述界面队列中的至少一个第二界面,并依次遍历所述至少一个第二界面上的至少一个控件。
第一界面的所有控件的遍历完成后,遍历单元11再依次读取界面队列中的每个界面,并依次遍历每个界面中的所有控件,每个界面中的控件的遍历的过程与第一界面的遍历的过程相同,如果遍历过程中遇到界面发生变化的,也需要先记录发生变化的界面,将发生变化的界面放入界面队列中,依次进行读取。在这里,界面队列是一种存储界面信息的先进先出的数据结构,通过此结构,可以实时加入新发现的界面,同时也可以有序地进行已发现界面的遍历。
以图3示例的终端应用程序的控件遍历示意图为例,对前面的步骤进一步详细地描述:启动界面1,界面1包括4个控件,即控件1-4,依次点击控件1-4,当点击控件1时,从界面1跳转到界面2,界面2与界面1不是相同的界面,将界面2记录到界面队列里,然后回到界面1,继续点击控件2,直至完成控件1-4的点击;然后读取界面2,界面2包括2个控件,即控件5、6,依次点击控件5、6,当点击控件5时,由界面2跳转到了界面1,但是因为界面1已经遍历过,不作记录,遍历结束。
根据本发明实施例提供的一种终端应用程序的控件遍历装置,通过依次点击一个界面的控件,并将点击控件时发生变化的界面加入界面队列,并回到当前界面继续控件的遍历,直至完成当前界面的控件的遍历后,再依次进行界面队列中的界面的控件的遍历,可以保证终端应用程序的控件的遍历覆盖率,并提高了控件遍历的效率。
请参阅图6,为本发明实施例提供的另一种终端应用程序的控件遍历装置,该装置2000包括:
遍历单元21,用于依次点击终端应用程序的第一界面上的至少一个控件。
判断单元22,用于判断所述第一界面和所述至少一个第二界面的界面名称、所述第一界面和所述至少一个第二界面分别包含的至少一个控件是否相同。
如图2a所示,当点击图2a所示界面的控件以后,界面出现了如图2b或者图2c所示的变化,这里都认为界面发生了变化,记录到界面队列里面,等待遍历。判断的方法是,两个界面的Activity名称和Activity里所有的控件是否完全一致,如果一致,则认为是相同的界面,如果不一致则认为界面不一致。并且如果两个界面的界面名称不同,认为界面发生了跳转,例如,认为图2a至图2b的界面发生了跳转,而图2c仅是Activity的控件不一致,不认为界面发生了跳转,仅认为其界面发生了变化。
添加单元23,用于将变化后的至少一个第二界面添加至界面队列。
判断单元22具体用于若所述第一界面和所述至少一个第二界面的界面名称不同,则确定所述第一界面发生了跳转。
入栈单元24,用于将跳转后的界面对应的节点入栈。
入栈单元24还用于从跳转后的界面对应的节点的上一级节点回溯至最顶节点,依次将所述上一级节点至最顶节点入栈。
访问单元25,用于访问所述最顶节点。
出栈单元26,用于将所述最顶节点出栈,直至将所述第一界面对应的节点出栈。
根据本实施例的方案,当点击控件而导致界面发生变化以后,需要返回上一层界面继续遍历上一层界面的控件。但是,如何保证精确无误地返回上一层界面,我们这里还需要一个回溯的方法。回溯的方案如下:创建名为SurfaceNode的数据结构,记录当前节点信息和到达该节点之前父亲节点的信息。在需要回溯上一层的时候,访问其父亲节点即可。不过,例如在Android手机上,很难保证简单的返回操作就能回到原来的状态,所以我们这里对回溯方法进行了扩展。每次回溯,都直接回溯到最顶层节点,再往下找目标节点。具体方法是,把当前节点入栈,访问其父亲节点,如果不是最顶节点,继续入栈,直到访问到最顶节点,一般最顶节点就是程序的默认activity界面,初始化该程序并启动就可以保证进入状态完全一致,访问单元25具体用于重新启动所述终端应用程序,进入所述最顶节点对应的界面。再从栈中出栈,按照出栈的节点的操作,一步步地往下,直到找到目标节点为止。至此,我们就可以保证我们能精确无误地回溯到上一层节点。在本实施例中,若第一界面的控件还没有遍历完成,即要找到到第一界面对应的节点。
遍历单元21还用于依次读取所述界面队列中的至少一个第二界面,并依次遍历所述至少一个第二界面上的至少一个控件。
检测单元27,用于在控件遍历过程中,对影响所述控件遍历的异常状况进行检测。
处理单元28,用于当出现所述异常状况时,对所述异常状况进行处理。
由于终端例如手机会出现各种偶发性的弹出框或者异常状态,我们需要对这些情况进行处理。具体做法就是,创建守护进程,处理异常状态。例如,当守护进程检测到“电量满”的对话框时,会自动消除该对话框。因为这些异常状态会因Android版本或者第三方rom的修改而变化,所以实现方法不尽相同,需要具体情况具体处理。
根据本发明实施例提供的一种终端应用程序的控件遍历装置,通过依次点击一个界面的控件,并将点击控件时发生变化的界面加入界面队列,并回到当前界面继续控件的遍历,直至完成当前界面的控件的遍历后,再依次进行界面队列中的界面的控件的遍历,可以保证终端应用程序的控件的遍历覆盖率,并提高了控件遍历的效率;且提高了控件遍历过程中的异常处理能力。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为根据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括随机存取存储器(英文:Random Access Memory,简称:RAM)、只读存储器(英文:Read-Only Memory,简称:ROM)、电可擦可编程只读存储器(英文:Electrically Erasable Programmable Read-Only Memory,简称:EEPROM)、只读光盘(英文:Compact Disc Read-Only Memory,简称:CD-ROM)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(英文:Digital Subscriber Line,简称:DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种终端应用程序的控件遍历方法,其特征在于,包括:
依次点击终端应用程序的第一界面上的至少一个控件,判断所述第一界面是否发生变化;
当判断的结果为是,将变化后的至少一个第二界面添加至界面队列,并继续所述依次点击所述第一界面上的至少一个控件的步骤;
当完成所述第一界面上的至少一个控件的遍历时,依次读取所述界面队列中的至少一个第二界面,并依次遍历所述至少一个第二界面上的至少一个控件。
2.如权利要求1所述的方法,其特征在于,所述第一界面为所述终端应用程序启动后的初始界面。
3.如权利要求1或2所述的方法,其特征在于,所述判断所述第一界面是否发生变化,包括:
判断所述第一界面和所述至少一个第二界面的界面名称、所述第一界面和所述至少一个第二界面分别包含的至少一个控件是否相同;
其中,若所述界面名称或包含的至少一个控件存在不同,则判断所述第一界面发生了变化。
4.如权利要求3所述的方法,其特征在于,所述判断所述第一界面是否发生变化,包括:
若所述第一界面和所述至少一个第二界面的界面名称不同,则确定所述第一界面发生了跳转;
所述确定所述第一界面发生了跳转之后,还包括:
将跳转后的界面对应的节点入栈;
从跳转后的界面对应的节点的上一级节点回溯至最顶节点,依次将所述上一级节点至最顶节点入栈;
所述将变化后的至少一个第二界面添加至界面队列之后,以及继续所述依次点击所述第一界面上的至少一个控件的步骤之前,还包括:
访问所述最顶节点;
将所述最顶节点出栈,直至将所述第一界面对应的节点出栈。
5.如权利要求4所述的方法,其特征在于,所述访问所述最顶节点,包括:
重新启动所述终端应用程序,进入所述最顶节点对应的界面。
6.如权利要求1所述的方法,其特征在于,还包括:
在控件遍历过程中,对影响所述控件遍历的异常状况进行检测;
当出现所述异常状况时,对所述异常状况进行处理。
7.一种终端应用程序的控件遍历装置,其特征在于,包括:
遍历单元,用于依次点击终端应用程序的第一界面上的至少一个控件;
判断单元,用于判断所述第一界面是否发生变化;
添加单元,用于当判断的结果为是,将变化后的至少一个第二界面添加至界面队列;
所述遍历单元还用于继续依次点击所述第一界面上的至少一个控件;
所述遍历单元还用于当完成所述第一界面上的至少一个控件的遍历时,依次读取所述界面队列中的至少一个第二界面,并依次遍历所述至少一个第二界面上的至少一个控件。
8.如权利要求7所述的装置,其特征在于,所述第一界面为所述终端应用程序启动后的初始界面。
9.如权利要求7或8所述的装置,其特征在于,所述判断单元具体用于:
判断所述第一界面和所述至少一个第二界面的界面名称、所述第一界面和所述至少一个第二界面分别包含的至少一个控件是否相同;
其中,若所述界面名称或包含的至少一个控件存在不同,则判断所述第一界面发生了变化。
10.如权利要求9所述的装置,其特征在于,所述判断单元具体用于:
若所述第一界面和所述至少一个第二界面的界面名称不同,则确定所述第一界面发生了跳转;
所述装置还包括:
入栈单元,用于将跳转后的界面对应的节点入栈;
所述入栈单元还用于从跳转后的界面对应的节点的上一级节点回溯至最顶节点,依次将所述上一级节点至最顶节点入栈;
访问单元,用于访问所述最顶节点;
出栈单元,用于将所述最顶节点出栈,直至将所述第一界面对应的节点出栈。
11.如权利要求10所述的装置,其特征在于,所述访问单元具体用于:
重新启动所述终端应用程序,进入所述最顶节点对应的界面。
12.如权利要求7所述的装置,其特征在于,还包括:
检测单元,用于在控件遍历过程中,对影响所述控件遍历的异常状况进行检测;
处理单元,用于当出现所述异常状况时,对所述异常状况进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410709239.6A CN104461526B (zh) | 2014-11-27 | 2014-11-27 | 一种终端应用程序的控件遍历方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410709239.6A CN104461526B (zh) | 2014-11-27 | 2014-11-27 | 一种终端应用程序的控件遍历方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461526A true CN104461526A (zh) | 2015-03-25 |
CN104461526B CN104461526B (zh) | 2017-08-29 |
Family
ID=52907637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410709239.6A Expired - Fee Related CN104461526B (zh) | 2014-11-27 | 2014-11-27 | 一种终端应用程序的控件遍历方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461526B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117257A (zh) * | 2015-09-01 | 2015-12-02 | 广东欧珀移动通信有限公司 | 一种自动缓冲应用最新内容的方法及系统 |
CN105389178A (zh) * | 2015-10-16 | 2016-03-09 | 华为技术有限公司 | 一种应用程序运行方法和装置 |
CN107515821A (zh) * | 2016-06-17 | 2017-12-26 | 百度在线网络技术(北京)有限公司 | 控件测试方法和装置 |
CN107870862A (zh) * | 2017-11-15 | 2018-04-03 | 厦门美图移动科技有限公司 | 新控件预测模型的构建方法、遍历测试方法和计算设备 |
CN108733551A (zh) * | 2017-04-13 | 2018-11-02 | 中兴通讯股份有限公司 | 控件遍历方法及装置、分析系统 |
CN109634831A (zh) * | 2017-10-09 | 2019-04-16 | 飞狐信息技术(天津)有限公司 | 一种Android应用程序GUI自动遍历测试方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020122065A1 (en) * | 2001-01-04 | 2002-09-05 | International Business Machines Corporation | Method and apparatus for exercising an unknown program with a graphical user interface |
CN104035867A (zh) * | 2014-06-04 | 2014-09-10 | 重庆泰凯科技有限公司 | 基于Android的应用功能遍历测试方法 |
CN104050076A (zh) * | 2013-03-12 | 2014-09-17 | 阿里巴巴集团控股有限公司 | 移动终端上的应用软件测试方法、装置及系统 |
-
2014
- 2014-11-27 CN CN201410709239.6A patent/CN104461526B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020122065A1 (en) * | 2001-01-04 | 2002-09-05 | International Business Machines Corporation | Method and apparatus for exercising an unknown program with a graphical user interface |
CN104050076A (zh) * | 2013-03-12 | 2014-09-17 | 阿里巴巴集团控股有限公司 | 移动终端上的应用软件测试方法、装置及系统 |
CN104035867A (zh) * | 2014-06-04 | 2014-09-10 | 重庆泰凯科技有限公司 | 基于Android的应用功能遍历测试方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105117257A (zh) * | 2015-09-01 | 2015-12-02 | 广东欧珀移动通信有限公司 | 一种自动缓冲应用最新内容的方法及系统 |
CN105117257B (zh) * | 2015-09-01 | 2018-07-06 | 广东欧珀移动通信有限公司 | 一种自动缓冲应用最新内容的方法及系统 |
CN105389178A (zh) * | 2015-10-16 | 2016-03-09 | 华为技术有限公司 | 一种应用程序运行方法和装置 |
CN105389178B (zh) * | 2015-10-16 | 2018-09-28 | 华为技术有限公司 | 一种应用程序运行方法和装置 |
CN107515821A (zh) * | 2016-06-17 | 2017-12-26 | 百度在线网络技术(北京)有限公司 | 控件测试方法和装置 |
CN107515821B (zh) * | 2016-06-17 | 2021-08-31 | 百度在线网络技术(北京)有限公司 | 控件测试方法和装置 |
CN108733551A (zh) * | 2017-04-13 | 2018-11-02 | 中兴通讯股份有限公司 | 控件遍历方法及装置、分析系统 |
CN109634831A (zh) * | 2017-10-09 | 2019-04-16 | 飞狐信息技术(天津)有限公司 | 一种Android应用程序GUI自动遍历测试方法及系统 |
CN107870862A (zh) * | 2017-11-15 | 2018-04-03 | 厦门美图移动科技有限公司 | 新控件预测模型的构建方法、遍历测试方法和计算设备 |
CN107870862B (zh) * | 2017-11-15 | 2020-05-12 | 厦门美图移动科技有限公司 | 新控件预测模型的构建方法、遍历测试方法和计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104461526B (zh) | 2017-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461526A (zh) | 一种终端应用程序的控件遍历方法及装置 | |
US8639973B2 (en) | System reset | |
CN102591745B (zh) | 基于安卓系统的系统恢复方法、装置及智能设备 | |
US10678446B2 (en) | Bitmap processing for log-structured data store | |
CN101183345B (zh) | 控制非易失性存储器中的操作处理的设备和方法 | |
CN101819543A (zh) | 快照数据处理方法和系统以及存储设备 | |
CN109508178A (zh) | 一种程序开发方法及装置 | |
CN105095078A (zh) | 一种系统自动化测试设备、方法和计算设备 | |
CN103458086A (zh) | 一种智能手机及其故障检测方法 | |
US20160266788A1 (en) | Terminal and method for controlling terminal | |
CN103902562A (zh) | 一种终端数据库升级方法及相关装置 | |
CN103412822A (zh) | 操作非易失性内存和数据操作的方法和相关装置 | |
WO2017088414A1 (zh) | 应用程序的处理方法、装置及电子设备 | |
CN104199701A (zh) | 一种在浏览器中启动应用的方法及装置 | |
CN106648685A (zh) | 智能终端系统应用的处理方法、装置及智能终端 | |
CN102819442A (zh) | 一种嵌入式设备程序烧写的方法及系统 | |
CN110096413A (zh) | 一种磁盘定位方法、系统及电子设备和存储介质 | |
US10042570B2 (en) | Tape backup and restore in a disk storage environment with intelligent data placement | |
CN113032105A (zh) | 一种Kubernetes集群访问控制方法、系统及相关设备 | |
CN104461730A (zh) | 一种虚拟资源分配方法及装置 | |
CN102654844A (zh) | 处理存储器数据的方法及可维持稳定性的计算机系统 | |
CN102880473A (zh) | 基于quartz框架的任务执行方法及装置 | |
CN104866388A (zh) | 数据处理方法及装置 | |
CN110941437A (zh) | 一种安装应用的方法与设备 | |
CN105809027A (zh) | 应用程序的权限控制方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18 Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170829 |