自动关闭弹框的方法、装置、设备及计算机可读存储介质与流程

文档序号:16753818发布日期:2019-01-29 17:09阅读:116来源:国知局
自动关闭弹框的方法、装置、设备及计算机可读存储介质与流程

本发明涉及互联网技术领域,尤其涉及一种自动关闭弹框的方法、装置、设备及计算机可读存储介质。



背景技术:

在日常使用移动终端的过程中,经常会不定时地在ui(userinterface,用户界面)中出现弹框,例如:广告弹框、软件更新弹框、anr(applicationnotresponding,应用程序无响应)弹框。通常来说,为了避免被干扰,用户都会关闭这些弹框。但是,这种情况无形中会对用户的正常使用造成干扰,尤其是对用户的体验是一个灾难性的后果。而且,弹框中还可能隐藏着恶意数据或非法数据,会存在一定的安全隐患。如何管理弹框、优化用户体验,成为亟需解决的技术问题。



技术实现要素:

本发明实施例的主要目的在于提出一种自动关闭弹框的方法、装置、设备及计算机可读存储介质,能够自动监控在移动终端的ui中出现的弹框,并在用户无感知的情况下关闭弹框,提高了用户体验度。

为实现上述目的,本发明实施例提供了一种自动关闭弹框的方法,所述方法包括:

在终端的用户界面ui上监控是否出现预设ui元素;

在出现所述预设ui元素的情况下,判断所述预设ui元素是否位于弹框中;

在所述预设ui元素位于弹框中的情况下,关闭所述弹框。

可选的,所述在终端的用户界面ui上监控是否出现预设ui元素,包括:

通过调用用户界面自动化测试框架中的获取对象单元来监控在ui上是否出现所述预设ui元素。

可选的,所述判断所述预设ui元素是否位于弹框中,包括:

判断在包含所述预设ui元素的界面中是否还包含预设文本信息;若是,则所述预设ui元素位于弹框中;若否,则所述预设ui元素不位于弹框中。

可选的,所述关闭所述弹框,包括:

通过调用用户界面自动化测试框架中的模拟操作单元来模拟用户的点击操作,以关闭所述弹框。

可选的,所述预设ui元素为应用程序无响应anr弹框中的控件。

此外,为实现上述目的,本发明实施例还提出一种自动关闭弹框的装置,所述装置包括:

监控模块,用于在终端的用户界面ui上监控是否出现预设ui元素;

判断模块,用于在出现所述预设ui元素的情况下,判断所述预设ui元素是否位于弹框中;

控制模块,用于在所述预设ui元素位于弹框中的情况下,关闭所述弹框。

可选的,所述监控模块,具体用于:

通过调用用户界面自动化测试框架中的获取对象单元来监控在ui上是否出现所述预设ui元素。

可选的,所述控制模块,具体用于:

通过调用用户界面自动化测试框架中的模拟操作单元来模拟用户的点击操作,以关闭所述弹框。

此外,为实现上述目的,本发明实施例还提出一种自动关闭弹框的设备,所述设备包括:处理器、存储器及通信总线;

所述通信总线用于实现所述处理器和所述存储器之间的连接通信;

所述处理器用于执行所述存储器中存储的自动关闭弹框的程序,以实现上述介绍的自动关闭弹框的方法的步骤。

此外,为实现上述目的,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质存储有自动关闭弹框的程序;

当所述自动关闭弹框的程序被至少一个处理器执行时,导致所述至少一个处理器执行上述介绍的自动关闭弹框的方法的步骤。

本发明实施例提出的自动关闭弹框的方法、装置、设备及计算机可读存储介质,通过对弹框中的ui元素进行监控以判断在移动终端的用户界面中是否出现弹框,并在出现弹框时按照预先设置关闭弹框,从而不影响用户的正常使用。本发明实施例可以在用户无感知的情况下,关闭弹框,解决了弹框给用户带来的不可继续使用的问题,提高了用户体验度。

附图说明

图1是本发明第一实施例的自动关闭弹框的方法的流程图;

图2是本发明第二实施例的自动关闭弹框的方法的流程图;

图3是本发明第三实施例的自动关闭弹框的方法的流程图;

图4是本发明第四实施例的自动关闭弹框的方法的流程图;

图5是本发明第五实施例的自动关闭弹框的装置的组成结构示意图;

图6是本发明第六实施例的自动关闭弹框的设备的组成结构示意图。

具体实施方式

为更进一步阐述本发明实施例为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明实施例进行详细说明如后。

为了解决上述技术问题,本发明第一实施例,提出了一种自动关闭弹框的方法,如图1所示,所述方法具体包括以下步骤:

步骤s101:在终端的用户界面ui上监控是否出现预设ui元素。

其中,ui元素为用户在使用移动终端以及移动终端中的应用程序的过程中,在用户界面上呈现的例如:按钮、文案、输入框、返回键等的一些可以点击或可以操作的控件。在本发明实施例中,预设ui元素为会在弹框中出现的控件,例如:“确定”按键、“等待”按键、“关闭”按键。

需要说明的是,当在用户界面上没有监控到预设ui元素时,说明在用户界面上没有出现弹框;当在用户界面上监控到预设ui元素时,说明在用户界面上可能出现了弹框。

在步骤s101中,监控在终端的用户界面上是否出现属于弹框的预设ui元素。

步骤s102:在出现所述预设ui元素的情况下,判断所述预设ui元素是否位于弹框中。

由于在实际应用中,有些属于弹框的ui元素也可能属于页面;例如,“关闭”按键,不仅可以出现在弹框的界面中,也可以出现在页面的界面中;所以在步骤s102中需要确定监控到的预设ui元素是否位于弹框的界面中,而不是位于其他界面中。

步骤s103:在所述预设ui元素位于弹框中的情况下,关闭所述弹框。

在步骤s103中,当确定出在移动终端的用户界面中出现弹框时,按照预先设置,自动关闭所述弹框。

在本发明实施例中,通过监控弹框中的ui元素来判断是否出现弹框,并当确定出移动终端的用户界面中出现弹框时,在用户无感知的情况下,自动关闭弹框,从而避免了在用户使用移动终端的过程中经常出现弹框而给用户带来的不可继续使用的问题,提高了用户的体验度。

本发明第二实施例,提出了一种自动关闭弹框的方法,如图2所示,所述方法具体包括以下步骤:

步骤s201:在终端的用户界面上监控是否出现预设ui元素。

其中,在本发明实施例中,所述预设ui元素为应用程序无响应anr弹框中的例如:“确定”按键、“等待”按键、“关闭”按键的控件。

需要说明的是,当在用户界面上没有监控到预设ui元素时,说明在用户界面上没有出现anr弹框;当在用户界面上监控到预设ui元素时,说明在用户界面上可能出现了anr弹框。

步骤s202:在出现所述预设ui元素的情况下,判断所述预设ui元素是否位于应用程序无响应anr弹框中。

由于在实际应用中,有些属于anr弹框的ui元素也可能属于页面;例如,“关闭”按键,不仅可以出现在anr弹框的界面中,也可以出现在页面的界面中;所以在步骤s202中需要确定监控到的预设ui元素是否位于anr弹框的界面中,而不是位于其他界面中。

具体的,步骤s202,包括:

判断在包含所述预设ui元素的界面中是否还包含预设文本信息;若是,则所述预设ui元素位于弹框中;若否,则所述预设ui元素不位于弹框中。

例如,在anr弹框中会出现例如:“无响应”的文本信息,所以当需要判断监控到的预设ui元素是否位于anr弹框中时,可以分析在包含所述预设ui元素的界面中是否还包含“无响应”文本信息,若在包含所述预设ui元素的界面中还包含“无响应”文本信息,则说明监控到的预设ui元素位于anr弹框中。

步骤s203:在所述预设ui元素位于anr弹框中的情况下,按照预先设置,关闭所述anr弹框。

具体的,在本发明实施例中,当监控到在移动终端的用户界面中出现anr弹框时,模拟用户点击操作去点击anr弹框中的“等待”按键,以关闭所述anr弹框。因为在点击“等待”按键后,用户可以继续操作,不影响用户的继续使用。

本发明第三实施例,提出了一种自动关闭弹框的方法,如图3所示,所述方法具体包括以下步骤:

步骤s301:通过调用用户界面自动化测试框架中的获取对象单元来监控在ui上是否出现预设ui元素。

其中,在本发明实施例中,所述用户界面自动化测试框架可以具体为uiautomator框架,当然,所述用户界面自动化测试框架还可以为除uiautomator框架以外的其它测试框架,这里不再赘述。当所述用户界面自动化测试框架为uiautomator框架时,所述获取对象单元为uiautomator框架中的uiobject类。

所述预设ui元素为应用程序无响应anr弹框中的例如:“确定”按键、“等待”按键、“关闭”按键的控件。

需要说明的是,当在用户界面上没有监控到预设ui元素时,说明在用户界面上没有出现anr弹框;当在用户界面上监控到预设ui元素时,说明在用户界面上可能出现了anr弹框。

步骤s302:在出现所述预设ui元素的情况下,判断所述预设ui元素是否位于应用程序无响应anr弹框中。

由于在实际应用中,有些属于anr弹框的ui元素也可能属于页面;例如,“关闭”按键,不仅可以出现在anr弹框的界面中,也可以出现在页面的界面中;所以在步骤s302中需要确定监控到的预设ui元素是否位于anr弹框的界面中,而不是位于其他界面中。

具体的,步骤s302,包括:

判断在包含所述预设ui元素的界面中是否还包含预设文本信息;若是,则所述预设ui元素位于弹框中;若否,则所述预设ui元素不位于弹框中。

例如,在anr弹框中会出现例如:“无响应”的文本信息,所以当需要判断监控到的预设ui元素是否位于anr弹框中时,可以分析在包含所述预设ui元素的界面中是否还包含“无响应”文本信息,若在包含所述预设ui元素的界面中还包含“无响应”文本信息,则说明监控到的预设ui元素位于anr弹框中。

步骤s303:在所述预设ui元素位于anr弹框中的情况下,通过调用用户界面自动化测试框架中的模拟操作单元来模拟用户的点击操作,以关闭所述anr弹框。

需要说明的是,在本发明实施例中,所述用户界面自动化测试框架可以具体为uiautomator框架,当然,所述用户界面自动化测试框架还可以为除uiautomator框架以外的其它测试框架,这里不再赘述。当所述用户界面自动化测试框架为uiautomator框架时,所述模拟操作单元为uiautomator框架中的uidevice类。

具体的,在本发明实施例中,当监控到在移动终端的用户界面中出现anr弹框时,模拟用户点击操作去点击anr弹框中的“等待”按键,以关闭所述anr弹框。因为在点击“等待”按键后,用户可以继续操作,不影响用户的继续使用。

软件的anr异常是一种严重的问题,此异常产生后将直接影响软件的正常使用,尤其是对用户的体验是一个灾难性的后果,虽然目前所有的安卓应用软件都会在开发阶段尽力解决,但是有些还会难以避免。

本发明第四实施例,提出了一种自动关闭弹框的方法,通过uiautomator解决安卓应用程序在使用过程中出现anr弹框而导致软件不能正常使用从而影响用户体验的问题,如图4所示,所述方法具体包括以下步骤:

步骤s401:在工程中引入uiautomator的jar包或依赖,以提供uiautomator中的api。

其中,uiautomator是google开发的自动化测试工具,通过ui创建自动化测试代码,来测试用户界面的有效功能。uiautomator是一个包含一套ui测试api的统称,uidevice、uiobject等都是uiautomator内的api。

步骤s402:在工程的androidtest目录下创建并编写监控用例。

具体的,所述监控用例可以完成以下操作:

步骤a1:通过uiautomator中的uiobject类来监控在ui上是否出现属于anr弹框的预设ui元素;

步骤a2:在出现所述预设ui元素的情况下,判断所述预设ui元素是否位于anr弹框中;

步骤a3:在所述预设ui元素位于anr弹框中的情况下,通过调用uiautomator中的uidevice类来模拟用户的点击操作,以关闭所述anr弹框。

进一步的,使用@test标注创建的监控用例,如果不用@test标注,监控用例不会被执行。

uidevice类是模拟用户操作的一个集合,这个集合包含多种模拟用户操作的方式,例如,点击操作、滑动操作等等。通过uidevice类即可点击移动终端上的按键,以实现类似于用户直接通过手指点击的效果。

在本发明实施例中,当监控到出现anr弹框时,通过模拟用户操作,可以第一时间把anr弹框关闭掉,从而不影响用户对应用程序软件的继续使用。

步骤s403:通过aminstrument命令启动所述监控用例。

本发明第五实施例,提出了一种自动关闭弹框的装置,如图5所示,所述装置具体包括以下组成部分:

监控模块501,用于在终端的用户界面ui上监控是否出现预设ui元素。

具体的,ui元素为用户在使用移动终端以及移动终端中的应用程序的过程中,在用户界面上呈现的例如:按钮、文案、输入框、返回键等的一些可以点击或可以操作的控件。在本发明实施例中,预设ui元素为会在弹框中出现的控件,例如:“确定”按键、“等待”按键、“关闭”按键。

需要说明的是,当在用户界面上没有监控到预设ui元素时,说明在用户界面上没有出现弹框;当在用户界面上监控到预设ui元素时,说明在用户界面上可能出现了弹框。

进一步的,监控模块501,具体用于:

通过调用用户界面自动化测试框架中的获取对象单元来监控在ui上是否出现所述预设ui元素。

需要说明的是,在本发明实施例中,所述用户界面自动化测试框架可以具体为uiautomator框架,当然,所述用户界面自动化测试框架还可以为除uiautomator框架以外的其它测试框架,这里不再赘述。当所述用户界面自动化测试框架为uiautomator框架时,所述获取对象单元为uiautomator框架中的uiobject类。

判断模块502,用于在出现所述预设ui元素的情况下,判断所述预设ui元素是否位于弹框中。

具体的,由于在实际应用中,有些属于弹框的ui元素也可能属于页面;例如,“关闭”按键,不仅可以出现在弹框的界面中,也可以出现在页面的界面中;所以判断模块502需要确定监控到的预设ui元素是否位于弹框的界面中,而不是位于其他界面中。

进一步的,判断模块502,具体用于:

判断在包含所述预设ui元素的界面中是否还包含预设文本信息;若是,则所述预设ui元素位于弹框中;若否,则所述预设ui元素不位于弹框中。

控制模块503,用于在所述预设ui元素位于弹框中的情况下,关闭所述弹框。

具体的,当确定出在移动终端的用户界面中出现弹框时,控制模块503按照预先设置,自动关闭所述弹框。

进一步的,控制模块503,具体用于:

通过调用用户界面自动化测试框架中的模拟操作单元来模拟用户的点击操作,以关闭所述弹框。

需要说明的是,在本发明实施例中,所述用户界面自动化测试框架可以具体为uiautomator框架,当然,所述用户界面自动化测试框架还可以为除uiautomator框架以外的其它测试框架,这里不再赘述。当所述用户界面自动化测试框架为uiautomator框架时,所述模拟操作单元为uiautomator框架中的uidevice类。

更进一步的,所述预设ui元素为应用程序无响应anr弹框中的控件。

本发明第六实施例,提出了一种自动关闭弹框的设备,如图6所示,所述设备包括:处理器601、存储器602及通信总线;

所述通信总线用于实现处理器601和存储器602之间的连接通信;

处理器601用于执行存储器602中存储的自动关闭弹框的程序,以实现以下步骤:

在终端的用户界面ui上监控是否出现预设ui元素;

在出现所述预设ui元素的情况下,判断所述预设ui元素是否位于弹框中;

在所述预设ui元素位于弹框中的情况下,关闭所述弹框。

本发明第七实施例,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有自动关闭弹框的程序;

当所述自动关闭弹框的程序被至少一个处理器执行时,导致所述至少一个处理器执行以下步骤操作:

在终端的用户界面ui上监控是否出现预设ui元素;

在出现所述预设ui元素的情况下,判断所述预设ui元素是否位于弹框中;

在所述预设ui元素位于弹框中的情况下,关闭所述弹框。

本发明实施例中介绍的自动关闭弹框的方法、装置、设备及计算机可读存储介质,通过对弹框中的ui元素进行监控以判断在移动终端的用户界面中是否出现弹框,并在出现弹框时按照预先设置关闭弹框,从而不影响用户的正常使用。本发明实施例可以在用户无感知的情况下,关闭弹框,解决了弹框给用户带来的不可继续使用的问题,提高了用户体验度。

通过具体实施方式的说明,应当可对本发明实施例为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明实施例加以限制。

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