CN109597755B - 文本显示的检测方法、装置、存储介质和电子设备 - Google Patents
文本显示的检测方法、装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN109597755B CN109597755B CN201811253056.2A CN201811253056A CN109597755B CN 109597755 B CN109597755 B CN 109597755B CN 201811253056 A CN201811253056 A CN 201811253056A CN 109597755 B CN109597755 B CN 109597755B
- Authority
- CN
- China
- Prior art keywords
- control
- target
- text
- detected
- visible
- 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
- 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/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/454—Multi-language systems; Localisation; Internationalisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开涉及一种文本显示的检测方法、装置、存储介质和电子设备,涉及软件检测领域,该方法包括:获取目标软件的全部页面中控件类型为文本控件的至少一个目标控件,当目标控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡,当目标控件的显示属性为可见时,根据目标控件的父控件的显示属性,确定目标控件是否被遮挡。能够实现文本显示检测的自动化,减少测试人员的工作量,提高了文本显示检测的效率和质量,降低了软件开发的成本,减少文本显示不正常的问题。
Description
技术领域
本公开涉及软件检测领域,具体地,涉及一种文本显示的检测方法、装置、存储介质和电子设备。
背景技术
随着计算机技术和软件开发技术的不断发展,终端所具备的功能越来越多样化,通过在终端上安装不同的应用程序(英文:Application,缩写:APP),可以实现用户的各种需求。由于用户群体会使用的各自不同的语言,因此应用程序通常需要进行国际化切换,即将应用程序中的文本切换为不同种类的语言。在国际化切换的过程中,由于不同语言在描述同样内容的文本时,显示的长度也不同,因此,容易造成文本显示时互相遮挡的问题,需要开发或测试人员根据应用程序的功能进行逐一页面的人工排查,检测效率和正确度不高。
发明内容
本公开的目的是提供一种文本显示的检测方法、装置、存储介质和电子设备,用以解决现有技术中文本显示检测需要人工排查,检测效率和正确度不高的问题。
为了实现上述目的,根据本公开实施例的第一方面,提供一种文本显示的检测方法,所述方法包括:
获取目标软件的全部页面中控件类型为文本控件的至少一个目标控件;
当所述目标控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡;
当所述目标控件的显示属性为可见时,根据所述目标控件的父控件的显示属性,确定所述目标控件是否被遮挡。
可选的,所述当所述目标控件的显示属性为可见时,根据所述目标控件的父控件的显示属性,确定所述目标控件是否被遮挡,包括:
将所述目标控件记录为待检测控件;
当所述待检测控件的父控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡;
当所述待检测控件的父控件的显示属性为可见时,根据所述待检测控件的父控件的可见子控件列表确定所述目标控件是否被遮挡,所述可见子控件列表包括所述待检测控件的父控件的,显示属性为可见的全部子控件。
可选的,所述当所述待检测控件的父控件的显示属性为可见时,根据所述待检测控件的父控件的可见子控件列表确定所述目标控件是否被遮挡,包括:
获取所述待检测控件在所述可见子控件列表中的索引;
当所述目标控件的显示区域和第一控件的显示区域重叠时,确定所述目标控件被遮挡,并记录第一检测信息,所述第一检测信息包括:所述目标控件的名称,所述目标控件所在页面的名称和所述第一控件的名称,所述第一控件为所述可见子控件列表中的任一子控件。
可选的,所述当所述待检测控件的父控件的显示属性为可见时,根据所述待检测控件的父控件的可见子控件列表确定所述目标控件是否被遮挡,还包括:
当所述目标控件的显示区域与所述可见子控件列表中的每一个子控件的显示区域都不重叠,且所述目标软件中不存在所述待检测控件的父控件的父控件时,确定所述目标控件未被遮挡;
当所述目标控件的显示区域与所述可见子控件列表中的每一个子控件的显示区域都不重叠,且所述目标软件中存在所述待检测控件的父控件的父控件时,将所述待检测控件的父控件作为所述待检测控件;
再次执行所述当所述待检测控件的父控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡至所述当所述目标控件的显示区域与所述可见子控件列表中的每一个子控件的显示区域都不重叠,且所述目标软件中存在所述待检测控件的父控件的父控件时,将所述待检测控件的父控件作为所述待检测控件的步骤。
可选的,所述方法还包括:
设置所述目标控件的ellipsize属性;
根据所述目标控件的文本中省略字符的个数,确定所述目标控件是否显示完整。
可选的,所述方法还包括:
所述设置所述目标控件的ellipsize属性,包括:
将所述目标控件的ellipsize属性设置为省略字符显示在文本结尾;
所述根据所述目标控件的文本中省略字符的个数,确定所述目标控件是否显示完整,包括:
将所述目标控件的文本的最后一行作为目标行;
当所述目标行中的省略字符的数量为零个时,确定所述目标控件显示完整;
当所述目标行中的省略字符的数量不为零个时,确定所述目标控件显示不完整,并记录第二检测信息,所述第二检测信息包括:所述目标控件的名称和所述目标控件所在页面的名称。
可选的,所述获取目标软件的全部页面中控件类型为文本控件的至少一个目标控件,包括:
将所述目标软件当前已加载的全部页面中控件类型为文本控件的控件作为所述目标控件;和/或,
将所述目标软件在运行过程中,通过预设操作触发的页面中控件类型为文本控件的控件作为所述目标控件。
根据本公开实施例的第二方面,提供一种文本显示的检测装置,所述装置包括:
获取模块,用于获取目标软件的全部页面中控件类型为文本控件的至少一个目标控件;
检测模块,用于当所述目标控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡;
所述检测模块,还用于当所述目标控件的显示属性为可见时,根据所述目标控件的父控件的显示属性,确定所述目标控件是否被遮挡。
可选的,所述检测模块包括:
记录子模块,用于将所述目标控件记录为待检测控件;
第一检测子模块,用于当所述待检测控件的父控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡;
第二检测子模块,用于当所述待检测控件的父控件的显示属性为可见时,根据所述待检测控件的父控件的可见子控件列表确定所述目标控件是否被遮挡,所述可见子控件列表包括所述待检测控件的父控件的,显示属性为可见的全部子控件。
可选的,所述第二检测子模块用于:
获取所述待检测控件在所述可见子控件列表中的索引;
当所述目标控件的显示区域和第一控件的显示区域重叠时,确定所述目标控件被遮挡,并记录第一检测信息,所述第一检测信息包括:所述目标控件的名称,所述目标控件所在页面的名称和所述第一控件的名称,所述第一控件为所述可见子控件列表中的任一子控件。
可选的,所述第二检测子模块还用于:
当所述目标控件的显示区域与所述可见子控件列表中的每一个子控件的显示区域都不重叠,且所述目标软件中不存在所述待检测控件的父控件的父控件时,确定所述目标控件未被遮挡;
当所述目标控件的显示区域与所述可见子控件列表中的每一个子控件的显示区域都不重叠,且所述目标软件中存在所述待检测控件的父控件的父控件时,将所述待检测控件的父控件作为所述待检测控件;
再次执行所述当所述待检测控件的父控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡至所述当所述目标控件的显示区域与所述可见子控件列表中的每一个子控件的显示区域都不重叠,且所述目标软件中存在所述待检测控件的父控件的父控件时,将所述待检测控件的父控件作为所述待检测控件的步骤。
可选的,所述装置还包括:
设置模块,用于设置所述目标控件的ellipsize属性;
确定模块,用于根据所述目标控件的文本中省略字符的个数,确定所述目标控件是否显示完整。
可选的,所述设置模块用于:将所述目标控件的ellipsize属性设置为省略字符显示在文本结尾;
所述确定模块包括:
目标行确定子模块,用于将所述目标控件的文本的最后一行作为目标行;
显示确定子模块,用于当所述目标行中的省略字符的数量为零个时,确定所述目标控件显示完整;
所述显示确定子模块,还用于当所述目标行中的省略字符的数量不为零个时,确定所述目标控件显示不完整,并记录第二检测信息,所述第二检测信息包括:所述目标控件的名称和所述目标控件所在页面的名称。
可选的,所述获取模块用于:
将所述目标软件当前已加载的全部页面中控件类型为文本控件的控件作为所述目标控件;和/或,
将所述目标软件在运行过程中,通过预设操作触发的页面中控件类型为文本控件的控件作为所述目标控件。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现第一方面提供的文本显示的检测方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面提供的文本显示的检测方法的步骤。
通过上述技术方案,本公开首先获取目标软件内全部页面中控件类型属于文本类型,即文本控件的一个或多个目标控件,再根据目标控件的显示属性来确定目标控件是否被遮挡,当目标控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡,当目标控件的显示属性为可见时,再根据目标控件的父控件的显示属性来确定目标控件是否被遮挡。能够实现文本显示检测的自动化,减少测试人员的工作量,提高了文本显示检测的效率和质量,降低了软件开发的成本,减少文本显示不正常的问题。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种文本显示的检测方法的流程图;
图2是根据一示例性实施例示出的另一种文本显示的检测方法的流程图;
图3是根据一示例性实施例示出的另一种文本显示的检测方法的流程图;
图4是根据一示例性实施例示出的另一种文本显示的检测方法的流程图;
图5是根据一示例性实施例示出的一种文本显示的检测装置的框图;
图6是根据一示例性实施例示出的另一种文本显示的检测装置的框图;
图7是根据一示例性实施例示出的另一种文本显示的检测装置的框图;
图8是根据一示例性实施例示出的另一种文本显示的检测装置的框图;
图9是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在介绍本公开提供的文本显示的检测方法、装置、存储介质和电子设备之前,首先对本公开中各个实施例所涉及的应用场景进行介绍,该应用场景为软件开发阶段,对软件中的文本显示进行检测。例如,将软件中的文本切换为不同种类的语言之后,检测国际化后的文本是否能够正常显示(是否被遮挡、是否显示完整)。本公开中各个实施例所涉及的软件开发平台,例如可以是安卓(英文:Android)平台(基于安卓系统),对应的文本控件可以为TextView类,另外,软件开发平台同样也可以是其他基于不同操作系统的平台,例如Xcode平台(基于iOS系统或Mac OS系统)、或者是Windows Phone系统、Windows系统、Linux系统等开发平台,本公开中对软件开发平台不做限定。
图1是根据一示例性实施例示出的一种文本显示的检测方法的流程图,如图1所示,该方法包括:
步骤101,获取目标软件的全部页面中控件类型为文本控件的至少一个目标控件。
举例来说,在需要对目标软件的文本显示进行检测时,首先获取目标软件内全部页面中所有的控件类型为文本控件的目标控件,目标控件可能为一个或多个。以Android开发平台为例,文本控件对应的是TextView,因此可以将目标软件中所有控件类型为TextView子类的控件作为目标控件。需要说明的是,要获取目标控件,可以在目标软件中当前已加载的全部页面中进行查找,还可以在目标软件在运行的过程中,根据预设的操作触发得到的页面中进行查找,例如:由指定区域内产生的压力感应事件(例如长按、双击或放大手势操作等)触发的页面,或者,利用Android Monkey模拟伪随机的用户事件(例如:初始化、点击、长按等)来触发的页面。
步骤102,当目标控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡。
步骤103,当目标控件的显示属性为可见时,根据目标控件的父控件的显示属性,确定目标控件是否被遮挡。
示例的,文本控件的显示属性(英文:visibility)通常分为三类:可见(英文:visible)、不可见(英文:invisible)和隐藏(英文:gone),其中,可见属性对应的控件能够在软件的页面中显示,不可见和隐藏属性对应的控件在软件的页面中不显示,同时,一个控件是否能够显示还决定于该控件的父控件设置的显示属性,当父控件的显示属性为不可见或隐藏时,父控件的所有子控件都不显示,但所述子控件对应的显示属性仍然保留。因此,当目标控件的显示属性为不可见或隐藏时,表示目标控件中包含的文本不会在目标软件的页面中显示,也就不存在目标控件被遮挡的问题,那么可以确定目标控件未被遮挡。当目标控件的显示属性为可见时,表示目标控件中包含的文本可能会在目标软件的页面中显示,因此需要进一步根据目标控件的父控件的显示属性,以确定目标控件是否被遮挡。
综上所述,本公开首先获取目标软件内全部页面中控件类型属于文本类型,即文本控件的一个或多个目标控件,再根据目标控件的显示属性来确定目标控件是否被遮挡,当目标控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡,当目标控件的显示属性为可见时,再根据目标控件的父控件的显示属性来确定目标控件是否被遮挡。能够实现文本显示检测的自动化,减少测试人员的工作量,提高了文本显示检测的效率和质量,降低了软件开发的成本,减少文本显示不正常的问题。
图2是根据一示例性实施例示出的另一种文本显示的检测方法的流程图,如图2所示,步骤103包括:
步骤1031,将目标控件记录为待检测控件。
步骤1032,当待检测控件的父控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡。
步骤1033,当待检测控件的父控件的显示属性为可见时,根据待检测控件的父控件的可见子控件列表确定目标控件是否被遮挡,可见子控件列表包括待检测控件的父控件的,显示属性为可见的全部子控件。
举例来说,首先,将目标控件记录为待检测控件,例如可以设置一个变量用于记录目标控件对应的控件标识,例如可以是目标控件的ID(英文:Identification),作为待检测控件,以便后续步骤中对与待检测控件相关的控件(可以包括:待检测控件的父控件、待检测控件的父控件的父控件、待检测控件的兄弟控件等)进行检测。再获取待检测控件的父控件的显示属性。当待检测控件的父控件的显示属性为不可见或隐藏时,待检测控件的父控件的所有子控件(包括目标控件)都不会在目标软件的页面中显示,也就不存在目标控件被遮挡的问题,那么可以确定目标控件未被遮挡。
当待检测控件的父控件的显示属性为可见时,那么再根据待检测控件的父控件的子控件对应的显示属性,来确定可见子控件列表,可见子控件列表中包含了待检测控件的父控件的,显示属性为可见的全部子控件,其中包括目标控件。如果目标控件有被遮挡的可能,那么会对目标控件产生遮挡的控件也会存在于可见子控件列表中,因此可以根据可见子控件列表来确定目标控件是否被遮挡。
其中,步骤1033的具体实现方式可以包括:
a.获取待检测控件在可见子控件列表中的索引。
b.当目标控件的显示区域和第一控件的显示区域重叠时,确定目标控件被遮挡,并记录第一检测信息,第一检测信息包括:目标控件的名称,目标控件所在页面的名称和第一控件的名称,第一控件为可见子控件列表中的任一子控件。
示例的,先获取待检测控件在可见子控件列表中的索引,即待检测控件在可见子控件列表中的顺序编号,会对目标控件产生遮挡的控件会存在于可见子控件列表中的任一个控件中。因此,可以遍历可见子控件列表中的每一个控件,检测这些控件的显示区域与目标控件的显示区域是否有重叠。以第一控件来举例,可以通过调用矩形相交检测接口来判断目标控件的显示区域对应的矩形和第一控件的显示区域对应的矩形是否相交,如果有相交,那么确定目标控件被遮挡,并记录相应的第一检测信息,其中,第一检测信息可以包括:目标控件的名称,目标控件所在页面的名称和第一控件的名称,还可以包括目标控件的ID、第一控件的ID、第一控件的父控件的名称和ID等。
可选的,步骤1033还可以包括以下步骤:
c.当目标控件的显示区域与可见子控件列表中的每一个子控件的显示区域都不重叠,且目标软件中不存在待检测控件的父控件的父控件时,确定目标控件未被遮挡。
d.当目标控件的显示区域与可见子控件列表中的每一个子控件的显示区域都不重叠,且目标软件中存在待检测控件的父控件的父控件时,将待检测控件的父控件作为待检测控件。
再次执行从步骤1032至步骤1033中的步骤d。
举例来说,当目标控件的显示区域与可见子控件列表中的每一个子控件的显示区域都不重叠时,排除了目标控件与待测控件的父控件的其他子控件重叠的可能性,那么可以向上迭代,进一步判断待测控件的父控件的父控件的显示属性。可以先确定目标软件中是否存在待检测控件的父控件的父控件,如果不存在,那么表示目标控件未被遮挡,如果存在,那么将待检测控件的父控件作为待检测控件,再次执行步骤1032至步骤1033中的步骤d,以确定更新后的待检测控件(即更新前的待检测控件的父控件的父控件)的显示属性,如果更新后的待检测控件的显示属性为不可见或隐藏,确定目标控件未被遮挡,如果显示属性为可见,那么根据待检测控件的父控件的可见子控件列表确定目标控件是否被遮挡。
图3是根据一示例性实施例示出的另一种文本显示的检测方法的流程图,如图3所示,该方法还包括:
步骤104,设置目标控件的ellipsize属性。
步骤105,根据目标控件的文本中省略字符的个数,确定目标控件是否显示完整。
示例的,文本控件具有ellipsize属性,用于指示文本长度超出了显示区域时,系统的处理方式,例如:ellipsize属性可以分为四种:start对应省略字符显示在文本开头、end对应省略字符显示在文本结尾、middle对应省略字符显示在文本中间和marquee对应以横向滚动方式显示文本。根据ellipsize属性设置的不同,获取目标控件对应的文本中不同位置(文本结尾、开头或中间)的省略字符的个数,来确定目标控件是否显示完整。
在用户使用软件过程中,如果遇到无法获取文本全部内容的问题,通常可能是多个文本(即多个文本控件)之间相互遮挡导致显示不全,也可能是由于某个文本对应的显示区域的面积不足以显示文本的全部内容而被省略所导致显示不全。因此,终端设备在检测文本显示时,在执行上述步骤103确定目标控件是否被遮挡后,还可以通过检测目标控件中的文本中是否存在省略字符来确定目标控件是否显示完整,从而使终端设备能够确定目标控件的文本是否是完全显示的,并且能够在目标控件的文本显示不全时,确定导致该目标控件的文本显示不全的原因是因为目标控件被遮挡,和/或是因为文本长度超出了显示区域而被省略了。另外,值得说明的是,上述在方法中,也可以先执行步骤104-105,根据目标控件的文本中省略字符的个数确定目标控件是否显示完整,再执行步骤103确定目标控件是否被遮挡;或者,步骤104-105可以与步骤103同时执行。
从而通过上述方案能够检测出控件文本显示不完整的问题,并且能够分析出控件文本显示不完整的原因。
图4是根据一示例性实施例示出的另一种文本显示的检测方法的流程图,如图4所示,步骤104可以通过以下方式来实现:
将目标控件的ellipsize属性设置为省略字符显示在文本结尾。
步骤105可以包括以下步骤:
步骤1051,将目标控件的文本的最后一行作为目标行。
步骤1052,当目标行中的省略字符的数量为零个时,确定目标控件显示完整。
步骤1053,当目标行中的省略字符的数量不为零个时,确定目标控件显示不完整,并记录第二检测信息,第二检测信息包括:目标控件的名称和目标控件所在页面的名称。
示例的,当ellipsize属性设置为省略字符显示在文本结尾时,即ellipsize属性设置为end,那么将目标空间对应的文本的最后一行作为目标行,再统计目标行中省略字符的个数,当省略字符的个数为零个时,表示目标控件中的文本能够全部显示,即目标控件显示完整,当省略字符的个数不为零个时,表示目标控件显示不完整,记录第二检测信息,其中,第二检测信息包括:目标控件的名称和目标控件所在页面的名称,还可以包括目标控件的ID。
可选的,步骤101可以通过以下方式来实现:
1)将目标软件当前已加载的全部页面中控件类型为文本控件的控件作为目标控件。和/或,
2)将目标软件在运行过程中,通过预设操作触发的页面中控件类型为文本控件的控件作为目标控件。
举例来说,获取目标控件的方式可以是在目标软件中当前已加载的全部页面中进行查找,还可以在目标软件在运行的过程中,根据预设的操作触发得到的页面中进行查找,其中,预设的操作可以包括:在指定区域内产生的压力感应事件(例如长按、双击或放大手势操作等),或者,Android Monkey模拟的伪随机的用户事件(例如:长按、初始化、点击等)。其中,可以采用反射机制或者自定义基类事件的方式,来全局监控预设操作,以获取预设操作所触发的页面。
需要说明的是,本公开中提供的文本显示的检测方法可以是在目标软件初始化完成之后执行的。以Android开发平台为例,在页面基类Activity的onCreat()方法中,页面开始加载,此时,页面的View还没有绘制完成,在页面的View绘制完成之后,可以通过View.post()方法在UI(英文:User Interface,中文:用户界面)线程中执行本公开中提供的文本显示的检测方法,以检测目标软件中的文本是否显示正常。进一步的,由于文本显示的检测通常是在软件开发或者测试的阶段使用的,在软件交付给用户使用后一般不会使用,因此,可以设置一个检测开关,在软件开发和测试阶段,控制检测开关打开,软件发布时,控制检测开关关闭。在使用本公开中提供的文本显示的检测方法之前,先确定检测开关是否打开,当检测开关打开时,才能执行文本显示的检测,当检测开关关闭时,不能执行文本显示的检测,以防止用户误操作触发了文本显示的检测,降低用户的使用体验。
综上所述,本公开首先获取目标软件内全部页面中控件类型属于文本类型,即文本控件的一个或多个目标控件,再根据目标控件的显示属性来确定目标控件是否被遮挡,当目标控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡,当目标控件的显示属性为可见时,再根据目标控件的父控件的显示属性来确定目标控件是否被遮挡。能够实现文本显示检测的自动化,减少测试人员的工作量,提高了文本显示检测的效率和质量,降低了软件开发的成本,减少文本显示不正常的问题。
图5是根据一示例性实施例示出的一种文本显示的检测装置的框图,如图5所示,该装置200包括:
获取模块201,用于获取目标软件的全部页面中控件类型为文本控件的至少一个目标控件。
检测模块202,用于当目标控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡。
检测模块202,还用于当目标控件的显示属性为可见时,根据目标控件的父控件的显示属性,确定目标控件是否被遮挡。
图6是根据一示例性实施例示出的另一种文本显示的检测装置的框图,如图6所示,检测模块202包括:
记录子模块2021,用于将目标控件记录为待检测控件。
第一检测子模块2022,用于当待检测控件的父控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡。
第二检测子模块2023,用于当待检测控件的父控件的显示属性为可见时,根据待检测控件的父控件的可见子控件列表确定目标控件是否被遮挡,可见子控件列表包括待检测控件的父控件的,显示属性为可见的全部子控件。
可选的,第二检测子模块2023可以用来实现以下步骤:
a.获取待检测控件在可见子控件列表中的索引。
b.当目标控件的显示区域和第一控件的显示区域重叠时,确定目标控件被遮挡,并记录第一检测信息,第一检测信息包括:目标控件的名称,目标控件所在页面的名称和第一控件的名称,第一控件为可见子控件列表中的任一子控件。
可选的,第二检测子模块2023还可以包括以下步骤:
c.当目标控件的显示区域与可见子控件列表中的每一个子控件的显示区域都不重叠,且目标软件中不存在待检测控件的父控件的父控件时,确定目标控件未被遮挡。
d.当目标控件的显示区域与可见子控件列表中的每一个子控件的显示区域都不重叠,且目标软件中存在待检测控件的父控件的父控件时,将待检测控件的父控件作为待检测控件。
再次执行当待检测控件的父控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡至当目标控件的显示区域与可见子控件列表中的每一个子控件的显示区域都不重叠,且目标软件中存在待检测控件的父控件的父控件时,将待检测控件的父控件作为待检测控件的步骤。
图7是根据一示例性实施例示出的另一种文本显示的检测装置的框图,如图7所示,该装置200还包括:
设置模块203,用于设置目标控件的ellipsize属性。
确定模块204,用于根据目标控件的文本中省略字符的个数,确定目标控件是否显示完整。
图8是根据一示例性实施例示出的另一种文本显示的检测装置的框图,如图8所示,设置模块203用于:
将目标控件的ellipsize属性设置为省略字符显示在文本结尾。
确定模块204包括:
目标行确定子模块2041,用于将目标控件的文本的最后一行作为目标行。
显示确定子模块2042,用于当目标行中的省略字符的数量为零个时,确定目标控件显示完整。
显示确定子模块2042,还用于当目标行中的省略字符的数量不为零个时,确定目标控件显示不完整,并记录第二检测信息,第二检测信息包括:目标控件的名称和目标控件所在页面的名称。
可选的,获取模块201可以用于:
a)将目标软件当前已加载的全部页面中控件类型为文本控件的控件作为目标控件。和/或,
b)将目标软件在运行过程中,通过预设操作触发的页面中控件类型为文本控件的控件作为目标控件。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开首先获取目标软件内全部页面中控件类型属于文本类型,即文本控件的一个或多个目标控件,再根据目标控件的显示属性来确定目标控件是否被遮挡,当目标控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡,当目标控件的显示属性为可见时,再根据目标控件的父控件的显示属性来确定目标控件是否被遮挡。能够实现文本显示检测的自动化,减少测试人员的工作量,提高了文本显示检测的效率和质量,降低了软件开发的成本,减少文本显示不正常的问题。
图9是根据一示例性实施例示出的一种电子设备300的框图。如图9所示,该电子设备300可以包括:处理器301,存储器302。该电子设备300还可以包括多媒体组件303,输入/输出(I/O)接口304,以及通信组件305中的一者或多者。
其中,处理器301用于控制该电子设备300的整体操作,以完成上述的文本显示的检测方法中的全部或部分步骤。存储器302用于存储各种类型的数据以支持在该电子设备300的操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于该电子设备300与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件305可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的文本显示的检测方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的文本显示的检测方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令可由电子设备300的处理器301执行以完成上述的文本显示的检测方法。
综上所述,本公开首先获取目标软件内全部页面中控件类型属于文本类型,即文本控件的一个或多个目标控件,再根据目标控件的显示属性来确定目标控件是否被遮挡,当目标控件的显示属性为不可见或隐藏时,确定目标控件未被遮挡,当目标控件的显示属性为可见时,再根据目标控件的父控件的显示属性来确定目标控件是否被遮挡。能够实现文本显示检测的自动化,减少测试人员的工作量,提高了文本显示检测的效率和质量,降低了软件开发的成本,减少文本显示不正常的问题。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,本领域技术人员在考虑说明书及实践本公开后,容易想到本公开的其它实施方案,均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。同时本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。本公开并不局限于上面已经描述出的精确结构,本公开的范围仅由所附的权利要求来限制。
Claims (8)
1.一种文本显示的检测方法,其特征在于,所述方法包括:
获取目标软件的全部页面中控件类型为文本控件的至少一个目标控件;
当所述目标控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡;
当所述目标控件的显示属性为可见时,根据所述目标控件的父控件的显示属性,确定所述目标控件是否被遮挡;
所述获取目标软件的全部页面中控件类型为文本控件的至少一个目标控件,包括:
在所述目标软件初始化完成,且所述目标软件切换了文本的语言之后,将所述目标软件当前已加载的全部页面中控件类型为文本控件的控件作为所述目标控件;和/或,
在所述目标软件初始化完成,且所述目标软件切换了文本的语言之后,将所述目标软件在运行过程中,采用反射机制或者自定义基类事件的方式,全局监控预设操作,以获取所述预设操作触发的页面中控件类型为文本控件的控件作为所述目标控件,所述预设操作为Android Monkey模拟伪随机的用户事件;
所述当所述目标控件的显示属性为可见时,根据所述目标控件的父控件的显示属性,确定所述目标控件是否被遮挡,包括:
将所述目标控件记录为待检测控件;
当所述待检测控件的父控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡;
当所述待检测控件的父控件的显示属性为可见时,根据所述待检测控件的父控件的可见子控件列表确定所述目标控件是否被遮挡,所述可见子控件列表包括所述待检测控件的父控件的,显示属性为可见的全部子控件。
2.根据权利要求1所述的方法,其特征在于,所述当所述待检测控件的父控件的显示属性为可见时,根据所述待检测控件的父控件的可见子控件列表确定所述目标控件是否被遮挡,包括:
获取所述待检测控件在所述可见子控件列表中的索引;
当所述目标控件的显示区域和第一控件的显示区域重叠时,确定所述目标控件被遮挡,并记录第一检测信息,所述第一检测信息包括:所述目标控件的名称,所述目标控件所在页面的名称和所述第一控件的名称,所述第一控件为所述可见子控件列表中的任一子控件。
3.根据权利要求2所述的方法,其特征在于,所述当所述待检测控件的父控件的显示属性为可见时,根据所述待检测控件的父控件的可见子控件列表确定所述目标控件是否被遮挡,还包括:
当所述目标控件的显示区域与所述可见子控件列表中的每一个子控件的显示区域都不重叠,且所述目标软件中不存在所述待检测控件的父控件的父控件时,确定所述目标控件未被遮挡;
当所述目标控件的显示区域与所述可见子控件列表中的每一个子控件的显示区域都不重叠,且所述目标软件中存在所述待检测控件的父控件的父控件时,将所述待检测控件的父控件作为所述待检测控件;
再次执行所述当所述待检测控件的父控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡至所述当所述目标控件的显示区域与所述可见子控件列表中的每一个子控件的显示区域都不重叠,且所述目标软件中存在所述待检测控件的父控件的父控件时,将所述待检测控件的父控件作为所述待检测控件的步骤。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
设置所述目标控件的ellipsize属性;
根据所述目标控件的文本中省略字符的个数,确定所述目标控件是否显示完整。
5.根据权利要求4所述的方法,其特征在于,所述设置所述目标控件的ellipsize属性,包括:
将所述目标控件的ellipsize属性设置为省略字符显示在文本结尾;
所述根据所述目标控件的文本中省略字符的个数,确定所述目标控件是否显示完整,包括:
将所述目标控件的文本的最后一行作为目标行;
当所述目标行中的省略字符的数量为零个时,确定所述目标控件显示完整;
当所述目标行中的省略字符的数量不为零个时,确定所述目标控件显示不完整,并记录第二检测信息,所述第二检测信息包括:所述目标控件的名称和所述目标控件所在页面的名称。
6.一种文本显示的检测装置,其特征在于,所述装置包括:
获取模块,用于获取目标软件的全部页面中控件类型为文本控件的至少一个目标控件;
检测模块,用于当所述目标控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡;
所述检测模块,还用于当所述目标控件的显示属性为可见时,根据所述目标控件的父控件的显示属性,确定所述目标控件是否被遮挡;
所述获取模块用于:
在所述目标软件初始化完成,且所述目标软件切换了文本的语言之后,将所述目标软件当前已加载的全部页面中控件类型为文本控件的控件作为所述目标控件;和/或,
在所述目标软件初始化完成,且所述目标软件切换了文本的语言之后,将所述目标软件在运行过程中,采用反射机制或者自定义基类事件的方式,全局监控预设操作,以获取所述预设操作触发的页面中控件类型为文本控件的控件作为所述目标控件,所述预设操作为Android Monkey模拟伪随机的用户事件;
所述检测模块包括:
记录子模块,用于将所述目标控件记录为待检测控件;
第一检测子模块,用于当所述待检测控件的父控件的显示属性为不可见或隐藏时,确定所述目标控件未被遮挡;
第二检测子模块,用于当所述待检测控件的父控件的显示属性为可见时,根据所述待检测控件的父控件的可见子控件列表确定所述目标控件是否被遮挡,所述可见子控件列表包括所述待检测控件的父控件的,显示属性为可见的全部子控件。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
8.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811253056.2A CN109597755B (zh) | 2018-10-25 | 2018-10-25 | 文本显示的检测方法、装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811253056.2A CN109597755B (zh) | 2018-10-25 | 2018-10-25 | 文本显示的检测方法、装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109597755A CN109597755A (zh) | 2019-04-09 |
CN109597755B true CN109597755B (zh) | 2022-04-12 |
Family
ID=65957956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811253056.2A Active CN109597755B (zh) | 2018-10-25 | 2018-10-25 | 文本显示的检测方法、装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109597755B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110442521B (zh) * | 2019-08-02 | 2023-06-27 | 腾讯科技(深圳)有限公司 | 控件单元检测方法及装置 |
CN110990212A (zh) * | 2019-10-15 | 2020-04-10 | 厦门美柚股份有限公司 | 一种控件状态检测方法及装置 |
CN111324535B (zh) * | 2020-02-18 | 2022-02-25 | 腾讯科技(深圳)有限公司 | 一种控件异常检测方法、装置和计算机设备 |
CN112416777B (zh) * | 2020-11-23 | 2022-11-18 | 珠海格力电器股份有限公司 | 文本显示测试方法、装置、计算机设备和存储介质 |
CN113467867B (zh) * | 2021-06-10 | 2024-05-07 | 北京达佳互联信息技术有限公司 | 信息处理方法、装置、电子设备及存储介质 |
CN113408241A (zh) * | 2021-07-16 | 2021-09-17 | 网易(杭州)网络有限公司 | 文本数据的处理方法、装置、电子设备及可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064782A (zh) * | 2011-10-21 | 2013-04-24 | 腾讯科技(深圳)有限公司 | 一种获取控件的方法及装置 |
CN103399960A (zh) * | 2013-08-21 | 2013-11-20 | 珠海市魅族科技有限公司 | 一种网页的显示方法及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130339930A1 (en) * | 2012-06-18 | 2013-12-19 | South Dakota Board Of Regents | Model-based test code generation for software testing |
-
2018
- 2018-10-25 CN CN201811253056.2A patent/CN109597755B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103064782A (zh) * | 2011-10-21 | 2013-04-24 | 腾讯科技(深圳)有限公司 | 一种获取控件的方法及装置 |
CN103399960A (zh) * | 2013-08-21 | 2013-11-20 | 珠海市魅族科技有限公司 | 一种网页的显示方法及终端 |
Non-Patent Citations (3)
Title |
---|
Android多层级判断view是否被遮挡;everlastxgb;《https://blog.csdn.net/xuguobiao/article/details/50911986》;20160317;第1-2页 * |
everlastxgb.Android多层级判断view是否被遮挡.《https://blog.csdn.net/xuguobiao/article/details/50911986》.2016, * |
TextView--判断TextView有没有显示完全(即有没有出现省略号),若果没有显示完全,则点击某个按钮查看全部;yzjgogo;《https://blog.csdn.net/yinzhijiezhan/article/details/50970726?utm_source=blogxgwz9》;20160324;第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109597755A (zh) | 2019-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109597755B (zh) | 文本显示的检测方法、装置、存储介质和电子设备 | |
US10572647B2 (en) | Touchscreen unlocking method and apparatus | |
US9448652B2 (en) | Method and terminal for activating application based on handwriting input | |
US9058105B2 (en) | Automated adjustment of input configuration | |
US9699295B2 (en) | Method for displaying an icon and terminal device thereof | |
US20150331882A1 (en) | Redundant file deletion method, apparatus and storage medium | |
CN111881019B (zh) | 一种用户界面测试方法及装置 | |
KR102105753B1 (ko) | 모바일 어플리케이션 환경설정을 시험하기 위한 시험 항목 자동 생성 방법 및 시스템 | |
CN103941964A (zh) | 一种基于桌面组件的信息加载方法及智能终端 | |
CN101479706B (zh) | 计算机外板上的反病毒使用模型 | |
CN109358827B (zh) | 控制应用串口打印的方法、系统、设备及存储介质 | |
CN112650433A (zh) | 界面截图方法、装置和电子设备 | |
CN108845924B (zh) | 控制响应区域显示控制方法、电子装置及存储介质 | |
CN102880408A (zh) | 终端设备的场景解锁方法及终端设备 | |
KR101796009B1 (ko) | 프로그램 자동 분석 시스템 및 이를 이용한 자동분석 방법 | |
US20180088766A1 (en) | Folder creating and cancelling method and system applied on touch screen | |
CN111124627B (zh) | 应用程序的调起者确定方法、装置、终端及存储介质 | |
CN104077210A (zh) | 一种客户端崩溃的定位方法及系统 | |
CN107168776B (zh) | 一种事件统计方法、装置、设备及存储介质 | |
CN110580221A (zh) | 控件测试方法、装置、存储介质及电子设备 | |
CN113141530B (zh) | 基于遥控交互方法、装置、电子设备和存储介质 | |
CN104407763A (zh) | 内容输入方法及系统 | |
CN111221723B (zh) | 测试记录生成方法、装置、存储介质及电子设备 | |
EP1515542A1 (en) | Method to provide logging information of an application in a digital broadcast system | |
US9600161B2 (en) | Generating and displaying a specific area |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |