自动寻窗的方法和装置制造方法及图纸

技术编号:14372078 阅读:45 留言:0更新日期:2017-01-09 17:53
本发明专利技术公开了一种自动寻窗的方法和装置。其中,该方法包括:获取当前时刻的界面上多个窗口的位置排列信息,其中,多个窗口包括一个或多个父窗口,一个或多个父窗口中的至少之一包括子窗口,子窗口为该父窗口的嵌套窗口;获取当前时刻光标在界面中的位置;根据位置和多个窗口的位置排列信息在多个窗口中查找光标当前位于的子窗口。本发明专利技术解决了现有技术中无法自动获取子窗口的位置和实际大小的技术问题。

【技术实现步骤摘要】

本专利技术涉及测试领域,具体而言,涉及一种自动寻窗的方法和装置
技术介绍
在测试领域中,对于手机应用(或者游戏)的测试,通常采用的方法是在完成自动回归测试脚本的编写后,可以通过一些工具软件可以快速生成测试脚本;还可以将手机屏幕同步投射到PC屏幕上,以便操作者可以通过鼠标的交互达到操作手机的目的。其中,脚本录制伴随用户的每一步鼠标模拟操作,通过一些工具软件可以同步地自动生成相应脚本,并记录操作位置(以及对应的操作截图)以及操作类型(例如,点击、滑动等)。在对脚本回放的过程中,可以将安卓手机(任何分辨率的手机)连接至电脑(或者手机),并载入脚本,用户点击回放即可进行脚本的回放。假设,对于手机A录制的脚本,在手机B中回放时,如果A和B的手机屏幕分辨率不同,则脚本中的截图和手机实时屏幕中的对应区域大小和位置均会有所不同。为此,录制脚本的时候,需要将当前游戏画面的分辨率记录下来,供脚本运行时使用。例如,在实际应用时,为了能够支持在游戏“xxx网游网页版”上录制的脚本能够在手机上正常播放,就需要在录制脚本时获取当前网页中游戏窗口的大小,作为测试脚本中游戏画面分辨率。由于在“xxx网游”的网页版中是可以在网页中通过Ctrl+滚轮的操作方式来使得相应窗口放大和缩小。由于,在脚本录制时我们并不知道当前的游戏窗口的大小,因此需要一种解决方案,能够在我们录制脚本时,自动提供当前游戏窗口的大小(单位:桌面像素值)。目前的一种解决方案是获取屏幕内的指定视频录制区域,然后,抓取整个屏幕的图像数据,接下来提取所述指定视频录制区域内的图像数据,最后,将提取出的所述指定视频录制区域图像数据写入视频文件。如图1所示,其欲采集图1中大方框内不规则四边形和圆形的画面,可以根据不规则四边形和圆形的边界,划定外接矩形,录制时截取外接矩形的画面,并将外接矩形与不规则四边形和圆形之间的部分填充成黑色像素,从而录制结果中指定的不规则四边形和圆形拥有正常画面,其他画面均为黑色。但是该方案仅叙述了录制区域的获取方式,并未描述自动获取游戏子窗口位置大小数据。因此,通过上述方式不能准确获取界面中每个窗口在屏幕中的准确位置,也不能得知窗口的实际大小。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种自动寻窗的方法和装置,以至少解决现有技术中无法自动获取子窗口的位置和实际大小的技术问题。根据本专利技术实施例的一个方面,提供了一种自动寻窗的方法,包括:获取当前时刻的界面上多个窗口的位置排列信息,其中,所述多个窗口包括一个或多个父窗口,所述一个或多个父窗口中的至少之一包括子窗口,所述子窗口为所述父窗口的嵌套窗口;获取所述当前时刻光标在所述界面中的位置;根据所述位置和所述多个窗口的位置排列信息在所述多个窗口中查找所述光标当前位于的子窗口。进一步地,所述多个窗口的位置排列信息包括:父窗口的排列顺序和子窗口的排列顺序,获取当前时刻的界面上多个窗口的位置排列信息包括:获取所述界面中的所有父窗口在所述界面中层叠的排列顺序;获取每个父窗口的一个或多个子窗口的层叠和/或包含的排列顺序,得到所述多个窗口的位置排列信息。进一步地,获取每个父窗口的一个或多个子窗口的层叠和/或包含的排列顺序包括:获取步骤,获取所述每个父窗口的初始子窗口序列,其中,所述初始子窗口序列中包含所述每个父窗口的一个或多个子窗口的初始层叠和/或初始包含的排列顺序;第一判断步骤,依次将初始子窗口序列中第一子窗口之后的子窗口设置为目标子窗口,判断所述目标子窗口是否被所述第一子窗口所包含,其中,所述第一子窗口为所述初始子窗口序列中的第一个子窗口;如果判断出未被包含,则执行第一循环步骤,如果判断出被包含,则执行调序步骤和第二循环步骤;所述第一循环步骤,将所述初始子窗口序列中的第二子窗口作为所述第一子窗口,返回执行所述第一判断步骤,其中,所述第二子窗口为所述初始子窗口序列中所述第一子窗口的后一个子窗口;直至所述初始子窗口序列中的子窗口全部被判断;所述调序步骤,将所述第一子窗口与所述目标子窗口在所述初始子窗口序列中的顺序进行调换,得到调换之后的子窗口序列;所述第二循环步骤,将所述调序步骤中所获得的所述子窗口序列作为所述初始子窗口序列,返回执行所述第一判断步骤,直至所述初始子窗口序列中的子窗口全部被判断。进一步地,获取每个父窗口的一个或多个子窗口的层叠和/或包含的排列顺序包括:在所述每个父窗口的初始子窗口序列中遍历每个子窗口,判断是否包括与所述每个子窗口相同的子窗口;如果判断出查找到所述相同的子窗口,则删除所述相同的子窗口。进一步地,获取所述界面中的所有父窗口在所述界面中层叠的排列顺序包括:通过windows函数获取所述界面中的所有父窗口在所述界面中层叠的排列顺序。进一步地,所述判断所述目标子窗口是否被所述第一子窗口所包含包括:依据包含关系,判断所述目标子窗口是否被所述第一子窗口所包含,其中,所述包含关系包括:所述目标子窗口与所述第一子窗口的面积不相等、且所述目标子窗口的边界包含于所述第一子窗口的范围内。根据本专利技术实施例的另一方面,还提供了一种自动寻窗的装置,包括:第一获取模块,用于获取当前时刻的界面上多个窗口的位置排列信息,其中,所述多个窗口包括一个或多个父窗口,所述一个或多个父窗口中的至少之一包括子窗口,所述子窗口为所述父窗口的嵌套窗口;第二获取模块,用于获取所述当前时刻光标在所述界面中的位置;查找模块,用于根据所述位置和所述多个窗口的位置排列信息在所述多个窗口中查找所述光标当前位于的子窗口。进一步地,所述多个窗口的位置排列信息包括:父窗口的排列顺序和子窗口的排列顺序,所述第一获取模块包括:第一获取单元,用于获取所述界面中的所有父窗口在所述界面中层叠的排列顺序;第二获取单元,用于获取每个父窗口的一个或多个子窗口的层叠和/或包含的排列顺序,得到多个窗口的位置排列信息。进一步地,第二获取单元包括:获取子单元,用于获取所述每个父窗口的初始子窗口序列,其中,所述初始子窗口序列中包含所述每个父窗口的一个或多个子窗口的初始层叠和/或初始包含的排列顺序;第一判断子单元,依次将初始子窗口序列中第一子窗口之后的子窗口设置为目标子窗口,判断所述目标子窗口是否被所述第一子窗口所包含,其中,所述第一子窗口为所述初始子窗口序列中的第一个子窗口;如果判断出未被包含,则执行第一循环子单元,如果判断出被包含,则执行调序子单元和第二循环子单元;所述第一循环子单元,将所述初始子窗口序列中的第二子窗口作为所述第一子窗口,返回执行所述第一判断子单元,其中,所述第二子窗口为所述初始子窗口序列中所述第一子窗口的后一子窗口;直至所述初始子窗口序列中的子窗口全部被判断;所述调序子单元,将所述第一子窗口与所述目标子窗口在所述初始子窗口序列中的顺序进行调换,得到调换之后的子窗口序列;第二循环子单元,将所述调序子单元中所获得的所述子窗口序列作为所述初始子窗口序列,返回执行所述第一判断子单元,直至所述初始子窗口序列中的子窗口全部被判断。进一步地,所述第二获取单元用于:在所述每个父窗口的初始子窗口序列中遍历每个子窗口,判断是否包括与所述每个子窗口相同的子窗口;如果判断出查找到所述相同的子窗口,则删除所述相同的子窗口。进一步地,所述本文档来自技高网
...
自动寻窗的方法和装置

【技术保护点】
一种自动寻窗的方法,其特征在于,包括:获取当前时刻的界面上多个窗口的位置排列信息,其中,所述多个窗口包括一个或多个父窗口,所述一个或多个父窗口中的至少之一包括子窗口,所述子窗口为所述父窗口的嵌套窗口;获取所述当前时刻光标在所述界面中的位置;根据所述位置和所述多个窗口的位置排列信息在所述多个窗口中查找所述光标当前位于的子窗口。

【技术特征摘要】
1.一种自动寻窗的方法,其特征在于,包括:获取当前时刻的界面上多个窗口的位置排列信息,其中,所述多个窗口包括一个或多个父窗口,所述一个或多个父窗口中的至少之一包括子窗口,所述子窗口为所述父窗口的嵌套窗口;获取所述当前时刻光标在所述界面中的位置;根据所述位置和所述多个窗口的位置排列信息在所述多个窗口中查找所述光标当前位于的子窗口。2.根据权利要求1所述的方法,其特征在于,所述多个窗口的位置排列信息包括:父窗口的排列顺序和子窗口的排列顺序,获取当前时刻的界面上多个窗口的位置排列信息包括:获取所述界面中的所有父窗口在所述界面中层叠的排列顺序;获取每个父窗口的一个或多个子窗口的层叠和/或包含的排列顺序,得到所述多个窗口的位置排列信息。3.根据权利要求2所述的方法,其特征在于,获取每个父窗口的一个或多个子窗口的层叠和/或包含的排列顺序包括:获取步骤,获取所述每个父窗口的初始子窗口序列,其中,所述初始子窗口序列中包含所述每个父窗口的一个或多个子窗口的初始层叠和/或初始包含的排列顺序;第一判断步骤,依次将初始子窗口序列中第一子窗口之后的子窗口设置为目标子窗口,判断所述目标子窗口是否被所述第一子窗口所包含,其中,所述第一子窗口为所述初始子窗口序列中的第一个子窗口;如果判断出未被包含,则执行第一循环步骤,如果判断出被包含,则执行调序步骤和第二循环步骤;所述第一循环步骤,将所述初始子窗口序列中的第二子窗口作为所述第一子窗口,返回执行所述第一判断步骤,其中,所述第二子窗口为所述初始子窗口序列中所述第一子窗口的后一个子窗口;直至所述初始子窗口序列中的子窗口全部被判断;所述调序步骤,将所述第一子窗口与所述目标子窗口在所述初始子窗口序列中的顺序进行调换,得到调换之后的子窗口序列;所述第二循环步骤,将所述调序步骤中所获得的所述子窗口序列作为所述初始子窗口序列,返回执行所述第一判断步骤,直至所述初始子窗口序列中的子窗口全部被判断。4.根据权利要求2所述的方法,其特征在于,获取每个父窗口的一个或多个子窗口的层叠和/或包含的排列顺序包括:在所述每个父窗口的初始子窗口序列中遍历每个子窗口,判断是否包括与所述每个子窗口相同的子窗口;如果判断出查找到所述相同的子窗口,则删除所述相同的子窗口。5.根据权利要求2所述的方法,其特征在于,获取所述界面中的所有父窗口在所述界面中层叠的排列顺序包括:通过windows函数获取所述界面中的所有父窗口在所述界面中层叠的排列顺序。6.根据权利要求3所述的方法,其特征在于,所述判断所述目标子窗口是否被所述第一子窗口所包含包括:依据包含关系,判断所述目标子窗口是否被所述第一子窗口所包含,其中,所述包含关系包括:所述目标子窗口与所述第一子窗口的面积不相等、且所述目标子窗口...

【专利技术属性】
技术研发人员:王建军刘欣
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1