CN1760841B - 使用户界面元素可见的系统和方法 - Google Patents
使用户界面元素可见的系统和方法 Download PDFInfo
- Publication number
- CN1760841B CN1760841B CN200510116337XA CN200510116337A CN1760841B CN 1760841 B CN1760841 B CN 1760841B CN 200510116337X A CN200510116337X A CN 200510116337XA CN 200510116337 A CN200510116337 A CN 200510116337A CN 1760841 B CN1760841 B CN 1760841B
- Authority
- CN
- China
- Prior art keywords
- user interface
- father
- seen
- visible
- window
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- 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/3696—Methods or tools to render software testable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
Abstract
公开了用于确保用户界面元素在自动化用户界面测试环境中可见的各种新颖且非显而易见的装置和方法。所公开的实施例之一是用于使用自顶向下滚动、自底向上滚动、扩展或所有三者的组合来定位用户界面元素的父元素,然后使该用户界面对象可见的方法。自顶向下滚动将滚动该父对象,直到该用户界面元素变得可见。自底向上滚动首先定位祖父元素。然后滚动父元素,直到用户界面元素在父对象内可见。然后滚动祖父元素,直到父对象在祖父元素内可见,然后滚动父对象直到该用户界面元素在祖父元素内可见。该示例性实施例还通过确保该用户界面元素所驻留的窗口对用户输入就绪并且不被另一对象覆盖,来确认变得可见的用户界面元素可被选择。
Description
版权授权
本专利文档公开的一部分包含受版权保护的材料。版权所有者不反对本专利公开的任何人的拓制,如同它出现在美国专利商标局的专利文件或记录中那样,但是无论如何都保留所有的版权。
技术领域
本发明一般涉及软件应用程序的测试,尤其涉及确保要测试的图形用户界面项的可见性。
背景技术
在现代世界中,人们依赖于其计算机以及它们所运行的应用程序。在工作和家庭生活的几乎每一方面,人们都依赖于其软件正确运行。软件错误可导致诸如医学应用程序、银行应用程序、飞机和机动车辆控制等许多设置中的严重问题。
由此,计算机应用程序正确地运作是相当重要的。为确保这一可靠性,必需测试应用程序以确保它们具有尽可能少的错误,即“程序缺陷”。在应用程序开发的最初阶段,计算机软件公司将雇佣内部的测试者来试图模拟最终用户输入,由此发现代码中的问题,这是使用至今的方法。另一常见的测试方法是向顾客现场推出Beta版,这是已知仍包含错误的软件;然后,顾客通过使用该软件继续测试它。然而,内部测试和Beta版测试都要求过长的时间段或大量的用户现场来找出足够大量的错误以产生适当的无错误计算机应用程序。为解决这些问题,开发了自动测试程序,它模拟键盘和鼠标用户输入,并可用于更快速地测试应用程序,因为不像人类,它们连续且飞快地运行。由此,它们可用于更详尽地测试应用程序,从而得到质量更高的软件。
为测试应用程序的控件项,仿真键盘和鼠标数据的测试程序必须能够选择屏幕上的项。该项至少必须是可见的以使它能够被选择。此处,术语“选择项”意味着用户通过鼠标、键盘或另一输入设备与UI元素(项)的交互。
发明内容
如此处所描述的,提供了一种确保用户界面对象可见,并由此能够由自动化测试程序选择的方法。可组合或独立地使用各种技术和工具。所公开的示例性装置和方法无论如何都不应当被认为是限制性的。相反,本公开针对各种揭示的实施例的独立或彼此组合或子组合的非显而易见特征和方面。该方法不限于任何特定的方面、特征或其组合,所公开的方法也不要求存在任何一个或多个特定优点或解决任何一个或多个问题。
在一种实现中,遍历用户界面元素的分层结构到该用户界面元素中要变得可见的父元素。然后,执行使子对象可见的动作。如果该对象是可滚动的,则使子对象可见动作滚动该父对象,以使直接子对象可见。如果对象是可扩展的,则使子对象可见动作扩展该对象。一旦该对象变得可见,如果该对象所驻留的窗口被禁用、不具有焦点、或者如果另一对象覆盖该对象,它仍可能不是可选择的(即,当它由用户或用户仿真测试程序点击时能够被选中)。检查这些条件,以确保该对象是可选择的。
在一个实施例中,使用了一种自顶向下的方法以使可滚动对象可见。定位父对象视图区域中可见元素的父对象中的第一元素的位置,将第一可见元素的位置与要变得可见的元素的位置进行比较,然后在适当的方向上滚动该父对象。有时候,在到达滚动对象的末端之前,要变得可见的元素无法出现。在这一情况下,反转滚动方向。可执行二分搜索来定位第一可见元素。在某些实施例中,在散列表中标记先前已被搜索过的位置,以确保它们仅被检查一次。
在另一实施例中,使用自底向上方法来使可滚动对象可见。从底部向顶部遍历所选择的用户界面对象的分层结构。从底部对象的父对象开始,滚动每一父对象以显示该父对象内的子对象。当到达顶部对象时,再次遍历该分层结构到达底部。然后滚动每一父对象,直到在祖父对象内显示子对象。
在另一实施例中,从底部向顶部遍历用户对象分层结构,依次根据对象类型扩展或滚动每一对象。
当参考附图阅读以下各实施例的详细描述时,可以清楚其它特征和优点。
附图说明
图1A是计算机系统的框图。
图1B是示出用于确保用户界面元素可见的示例性方法的流程图。
图2是示出用于确保用户界面元素可见的示例性方法的流程图,它扩展了图1A所示的某些方法动作。
图3是示出用于确保用户界面元素可见的示例性方法的流程图,它扩展了图2所示的某些方法动作。
图4A是示例性用户界面窗口的描述。
图4B是图4A的用户界面窗口的分层表示的描述。
图4C是图4B的分层表示中的单个节点分层结构的描述。
图4D是当实现图3所示的方法时,图4A的用户界面的中间表示的描述。
图4E是当实现图3所示的方法时,图4A的用户界面的另一中间表示的描述。
图4F是当实现图3所示的方法时,图4A的用户界面的另一中间表示的描述。
图4G是当实现图3所示的方法时,图4A的用户界面的另一中间表示的描述。
图4H是当实现图3所示的方法时,图4A的用户界面的最终表示的描述。
图5是用于确保用户界面元素可见的另一示例性方法的流程图,它扩展了图2所示的某些方法动作。
图6A是当实现图5所示的方法时,图4A的用户界面的中间表示的描述。
图6B是当实现图5所示的方法时,图4A的用户界面的中间表示的描述。
图6C是当实现图5所示的方法时,图4A的用户界面的最终表示的描述。
图7是用于确保用户界面元素可见的示例性方法的流程图,它扩展了图5所示的过程的某些方面。
图8是用于阐明图7的讨论的列表框的描述。
图9是可用于实现使用户界面对象可见的计算机系统的框图。
具体实施方式
计算环境
图1A示出了其中可实现所描述的若干实施例的合适的计算环境100A的一般化示例。计算环境100A并非对使用范围或功能提出任何局限,因为这些技术和工具可以在各种通用或专用计算环境中实现。
参考图1A,计算环境100A包括至少一个处理单元110A和存储器120A。在图1A中,这一最基本的配置130A包括在虚线中。处理单元110A执行计算机可执行指令,并且可以是真实或虚拟的处理器。在多处理系统中,多个处理单元执行 计算机可执行指令以提高处理能力。存储器120A可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或两者的某一组合。存储器120A储存实现使UI元素可见的方法和装置的软件180A。
计算环境可具有其它特征。例如,计算环境100A包括存储140A、一个或多个输入设备150A、一个或多个输出设备160A以及一个或多个通信连接170A。诸如总线、控制器或网络等互连机制(未示出)将计算环境100A的组件互连。通常,操作系统软件(未示出)为在计算环境100A中执行的其它软件提供了操作环境,并协调计算环境100A的组件的活动。
存储140A可以是可移动或不可移动的,并包括磁盘、磁带或盒式磁带、CD-ROM、DVD或可用于储存信息并可在计算环境100A内访问的任何其它介质。存储140A储存软件180A用于实现使UI元素可见的机制的指令。
输入设备150A可以是触摸输入设备,诸如键盘、鼠标、笔、或跟踪球、语音输入设备、扫描设备或向计算环境100A提供输入的其他设备。对于音频或视频编码,输入设备150A可以是声卡、视频卡、TV调谐卡、或接收模拟或数字形式的音频或视频输入的类似设备、或将音频或视频样值读入计算环境100A中的CD-ROM或CD-RW。输出设备160A可以是显示器、打印机、扬声器、CD书写器或从计算环境100A提供输出的其他设备。
通信连接170A允许通过通信介质到另一计算实体的通信。通信介质在已调制数据信号中传达诸如计算机可执行指令、音频或视频输入或输出、或其它数据等信息。已调制数据信号是以在信号中编码信息的方式设置或改变其一个或多个特征的信号。作为示例,而非局限,通信介质包括用电、光、RF、红外、声学或其它载波实现的有线或无线技术。
这些技术和工具可以在计算机可读介质的通用上下文中描述。计算机可读介质是可在计算环境内访问的任何可用介质。作为示例,而非局限,对于计算环境100A,计算机可读介质包括存储器120A、存储140A、通信介质以及以上任一个的组合。
这些技术和工具可以在诸如程序模块等在计算环境内在目标真实或虚拟处理器上执行的计算机可执行指令的通用上下文中描述。一般而言,程序模块包括例程、程序、库、对象、类、组件、数据结构等,它们执行特定的任务或实现特定的抽象数据类型。程序模块的功能可以如各实施例中所需的那样组合或分开。用于程序模 块的计算机可执行指令可以在本地或分布式计算环境中执行。
如有需要,此处所描述的技术(例如,确保用户界面项可见,并且因此可被选中用于自动化测试)可以作为自动化测试服务的一部分来提供。由此,与服务交互的程序可如所需地利用这些特征。
此处所描述的各种技术对于确保用户界面元素可见且可选择是有用的。用户界面元素可以采取许多形式,诸如图形按钮、编辑框、滚动条、选取列表、下拉菜单、ACTIVEX控件、图像等等。用户界面元素可以作为程序的一部分(例如,为控制程序的功能)或在文档内出现。
本发明一般针对通过确保图形用户界面(GUI)元素可见,使得它可以被选择并且由此可以由自动测试程序来测试,而对软件应用程序进行自动测试。术语“可见”被定义如下:如果存在属于GUI元素的、可在屏幕上点击的至少一个可见点,则该GUI元素是可见的。为使可点击,该点必须既是可见又是被启用的,且必须不被另一对象覆盖。
为说明起见,在以下详细描述中使用列表框和树形结构作为可以变得可见的可见GUI元素的示例。然而,本领域的技术人员应当理解,此处所示的实施例不局限于列表框和树形视图,而是可以被推广到任何其它可见GUI控件,诸如组合框、菜单、多列列表框、多列组合框、多选扩展列表框、ActiveX控件、多行文本框、结合了单选按钮的控件、切换按钮和/或按钮、滚动窗格、加选项卡的窗格、日历、窗口、以及没有标准名称的各种各样的自定义控件。
如此处所描述的,控件、元素、项和对象这几个词是可互换的,并且也包含诸如容器等概念。所有这些列出的词语之后的概念包含了任何可查看的对象、组合框、菜单、多列列表框、多列组合框、多选扩展列表框、多行文本框、结合单选按钮的控件、切换按钮和/或按钮、滚动窗格、加选项卡的窗格、日历、窗口及其组合。正在不断地创建可查看对象的新实现,并且所公开的实施例包含尚未被给予正式名称的可查看元素。
此处所描述的各种技术对于确保用户界面项可见,并由此可由自动化测试程序选择是有用的。用户界面元素可采用许多形式,诸如图形按钮、编辑框、滚动条、选取列表、下拉菜单、ACTIVEX控件、图像等等。用户界面元素可以作为程序的一部分(例如,为控制程序的功能)或在文档内出现。仅当用户界面项可见时,它才能由使用鼠标、键盘或其它用户界面仿真来驱动基于UI的目标应用程序的测试装置选择。例如,图形用户界面(GUI)允许用户在任何给定的时刻选择许许多多选项。在种种可用的选择中,用户可打开新应用程序、可选择打开的应用程序中的项、或可选择修改操作系统的默认设置。
由于这一灵活性,图形用户界面具有几乎无限数量的路径,在这些路径中,必须测试至少一部分来确保底层的程序是尽可能无程序缺陷的。由于无限路径问题,可能要求人们在现场或在Beta版现场延长测试时间段,以满意地测试包括图形用户界面的程序。为解决这一问题,开发了自动化测试过程,它模拟用户键盘和鼠标输入以更准确地执行具有GUI的程序内可用的多个选项。然而,为测试GUI内的项,该项首先必须是可见的,且是可选择的。
贯穿本讨论,以最通用的术语提及滚动的概念。不同的GUI元素将以不同的方式来滚动;诸如列表框等GUI元素可以在不同的操作系统中甚至在运行在同一操作系统中的不同程序中以不同的方式滚动。
综述
参考图1B,流程图100B示出了此处所公开的方法的简要综述。选择要变得可见的用户界面元素。这一选择可以由用户界面测试程序来完成。在过程框102B,确定该用户界面元素的父对象。一般而言,如果需要使列表框中的元素变得可见,则必须知道与该元素相关联的列表框。这一过程框做出该确定。在过程框104B,执行使子对象可见动作。该过程参考图2更完整地解释,它使用户界面对象在屏幕上可见。然而,可见性有时候不足以确保对象是可选择的,因为另一框可能覆盖它、该对象所属的窗口可能没有焦点、或可能有某些别的东西影响可选择性。在过程框106B,做出检查以确保可见对象是可选择的。
图2的流程图所示的示例性方法200可用于执行如过程框104B处所示的使子对象可见动作。示例性方法200表示扩展上述示例性方法的一个特定实施例,并且无论如何都不应被解释为限制性的。相反,该方法可以在排列和细节上进行修改,而不脱离所公开的技术的范围。例如,在特定实施例中,可以省略所描述的某些动作,并且可以按与所示的不同顺序执行某些动作。
存在某些合成屏幕对象,它们要求滚动和扩展的组合来确保特定元素出现。对于这些对象,在必要时,用自顶向下的方法处理其分层结构树中的一部分,并用自底向上的方法处理该树的另一部分,使得某些元素族使用自底向上方法而变得可见,而其它元素族使用自顶向下方法而变得可见。这在过程框202中表示,其中确定给定用户界面对象的相对分层结构顶部。
如果对象是要扩展的种类(204),诸如某些实施例中的树形列表,则它然后被扩展(206)。扩展可以是自底向上或自顶向下的。如果对象是要滚动的种类(208),则有两种可能性:或者该对象及其分层父对象自底向上滚动(210),或者它们自顶向下滚动(214)。这可能仍无法确保对象在屏幕上的可见性,因为仍可能有必须出现的另一扩展或滚动层,在这一情况下,该过程重复其自身(218)。
如过程框212所示的,在某些实施例中,是使用自底向上方法使用户界面变得可见,其中,滚动该用户界面元素的父对象,直到该用户界面元素出现在父对象的客户区域中。该操作被递归地执行,直到到达分层结构的用户界面元素的顶部对象。随后,滚动用户界面对象的父对象,直到该用户界面对象在祖父对象中可见。该操作也被递归执行,直到用户界面元素出现在分层结构中的顶部元素中,并且因此在屏幕上是可见的。一旦元素可见,它就可被自动化测试程序选择。一个示例性实施例在用户界面元素及其分层祖先的边界矩形已知时使用自底向上的方法。
在其它实施例中,如在过程框216中所示的,可使用自顶向下方法使用户界面元素变得可见,其中,滚动分层结构上顶部的元素直到其子元素可见。这一操作被递归地执行,直到到达该用户界面元素。另一示例性实施例在用户界面元素及其分层祖先的边界矩形未知时使用自顶向下的方法。
如在过程框216中所示的,在某些实施例中,由于其视图被折叠,用户界面元素是隐藏的,例如如同它是树形视图中的隐藏节点那样。在某些这样的情况下,从底部到顶部沿着元素分层结构向上扩展该元素,使得所有父元素也都被扩展。这保证原始元素是可见的。在元素由于其视图被折叠而被隐藏的其它实施例中,遍历元素分层结构到顶部的可查看元素,然后从顶部到底部遍历该树,使得依次扩展每一可扩展节点。扩展的对象的表示的完整视图可以足够复杂,使得整个扩展的视图无法适合屏幕。在这一情况下,显示原始用户界面元素,以及元素分层结构中适合屏幕的那些部分。
有时候,由于不与用户界面元素窗口或线程相关联的一个或多个对象在其顶部,从而阻挡了视图,用户界面元素不是可见的。在其它时刻,可见到用户界面元素,但是仍无法选择它,因为另一对象位于它之上。在这些情况下,通过给予窗口焦点、通过调整Z轴位置、通过使与该窗口相关联的线程成为前台线程或通过某些其它手段,将用户界面元素及与其相关联的窗口推到屏幕的前方。这确保要选择的元素在显示中的顶部窗口中,并且由此是可见且可选择的。这在过程框220中表示。
流程图200仅示出了一个示例性实施例,并且无论如何都不应被解释为限制性的。例如,在流程图中过程框204和208中做出的扩展或滚动项的决策可以在其它位置做出,诸如在遍历分层结构前做出。方法200可以由驻留在计算环境100A中的测试工具实现,并且可以用软件、硬件或两者的组合来实现。
如有需要,此处所描述的技术(例如,确保一个要测试的项是可见的)可以作为自动化测试服务的一部分来提供。如果适合其特性,不同类型的对象可具有此处所公开的方法的不同例示。由此,与服务交互的程序可以如所需地利用这些特征。
用于确保用户界面中的元素可见的示例性自底向上方法
图3是用于实现所公开的使UI对象可见的实施例的基本过程的流程图300。流程图300仅示出了一个示例性实施例,且无论如何都不应被解释为限制性的。图4A-4H合在一起是使用图2所公开并在图3进一步放大的过程的示例图示。这一自底向上方法可以在控件的边界矩形已知时使用。当控件是使用由操作系统提供的工具创建的标准控件,或者当这类矩形是在创建时另外指定时,控件的边界矩形可以是已知的。图4A示出了一个示例性用户界面400A,它具有要变得可见的目标用户界面元素,用“Mint”408A来标记。
对于要变得可见的元素,它必须物理地位于拥有它的窗口的边界之内。类似地,控件内的每一元素必须物理地位于要使它被看见的控件窗口(即,在它之内显示)的边界内。用户界面元素“Mint”408A是列表框“HerbList”406A中的元素,它目前在看不见的地方,因为它目前未出现在“HerbList”列表框视图窗口中。“HerbList”406A本身是列表框“FoodList”404A中的一个元素。列表框“FoodLists”404A属于窗口“FoodWindow”402A,但是当前被滚动到该出窗口之下,因此不能看到。
以软件表示用户界面元素的一种常见方法是将其以具有各种节点的分层树的形式储存。图4B示出了图4A所示的用户界面元素的一个示例性分层表示。节点402B-412B被示出为具有父一子关系。注意该关系的复杂特性,因为用户界面元素可以是对于其它用户界面元素的表示的父节点。在这一实施例中,列表框“FoodLists”404B是三个子列表框406B、408B和410B(分别是“NutList”、“VegList”和“HerbList”)的父对象。
图3是用于确保要测试的对象可见的基本过程的流程图300,它使用了上述概念。流程图300仅示出了一个示例性实施例,并且无论如何都不应被解释为限制性的。这些步骤可以由驻留在计算环境100A中的测试工具实现,并且可以用软件、硬件或两者的组合来实现。
在过程框302,确定希望变得可见的元素的分层结构。图4C是图4B所示的界面元素的简化视图,它显示了与要变得可见的标签为“Mint”408A的界面元素相关联的节点分层结构。如可以见到的,从要变得可见的元素开始,即位于其直接父对象“HerbList”404C中的标签为“Mint”402C的元素开始,遍历图4B所示的分层结构,然后到“FoodLists”406C,然后到分层结构“FoodWindow”408C的顶部。
在过程框304,确定当前元素是否具有父对象。如果是,则该过程在过程框306继续;如果不是,则该过程在过程框310继续。转向图4C,可以看到,当前元素“Mint”402C的确具有父对象,即“HerbList”404C。
在过程框306,移动(在列表框的情况下为滚动)当前元素(在该示例性实施例中为Mint 402C),直到它与其父对象(“HerbList”404C)重叠。给定元素所必需的移动是实现专用的,但是本领域的技术人员可以容易地确定它。参考图4D,滚动“HerbList”404D,直到元素“Mint”402D与列表框“HerbList”404D的视图区域重叠。在某些情况下,需要在一个以上方向上移动对象,以使两个对象重叠。
在过程框308,在该分层结构中向上移动一层,这具有使(先前的)父元素变为当前元素的效果。继续参考图4C,“Mint”402C的父对象“HerbList”404C成为当前元素。该过程在过程框304继续,其中确定当前元素“HerbList”404C具有父对象“FoodLists”406C。然后,如图4E所示,在过程框306,滚动当前元素“HerbList”402E,直到它与“FoodLists”406E重叠。重复过程框304、306和308,图4F示出了“FoodLists”404F与其父对象“FoodWindow”406F重叠。
一旦遍历该分层结构到顶部元素,该过程在过程框310继续。如可以在图4F中见到的,要变得可见的目标元素(“Mint”402F)可能仍在该分层结构顶部的可见对象之外。为确保目标元素可见,从底部到顶部滚动该分层结构中的每一父元素,以显露祖父元素中的子元素。在过程框310,再次从顶部遍历对象分层结构到要变得可见的元素的父元素“HerbList”404C,如图4C所示,该元素然后变为当前元素。在过程框312,确定当前元素是否具有父元素。如果没有,则该过程结束。如果存在父元素,则该过程在过程框314继续。在过程框314,滚动当前对象,直到目标对象的边界矩形与当前对象的父对象的边界矩形重叠。参考图4G,滚动当前对象“HerbList”404G,直到目标对象“Mint”402G的边界矩形与“HerbList”404G的父对象“FoodLists”406G的边界矩形重叠。然而,“HerbList”404G和“Mint”402G在“Foodwindows”408G中仍是不可见的。
在过程框316,在该分层结构中向上移动一层,使得当前元素的父元素成为新的当前元素。然后重复过程框312、314和316,直到过程到达没有父元素的元素。图4H示出了该过程的下一迭代的结果,其中滚动当前元素“FoodLists”406H,直到目标对象“Mint”402H的边界矩形出现在“FoodList”406H的父对象“FoodWindow”408H内。这在其分层结构顶部元素“FoodWindow”408H内显露了标签为“Mint”402H的元素,从而使得“Mint”402H可见。一旦如过程框312所确定的到达没有父元素的分层结构的顶部,该过程结束,使得要变得可见的原始元素“Mint”402H当前在其分层结构最顶部的元素中可见。
用于确保用户界面中的元素可见的示例性自顶向下方法
图5是用于实现使用自顶向下方法使UI对象可见的所公开的实施例的基本过程的流程图500。在一个示例性实施例中,采用以下方法以使这类对象可见。参考图5的流程图,一旦要变得可见的目标对象被选中,就遍历该对象的分层结构,直到到达该分层结构顶部的对象(502)。这给出了可能需要修改以确保目标对象的可见性的所有对象的列表。
流程图500仅示出了一个示例性实施例,并且无论如何都不应被解释为限制性的。图6A-6C合在一起是使用图5所公开的过程的示例图示,它们使用了与前一实施例中示出的相同的用户界面元素。再次转向图4A,要使标签为“Mint”408A的用户界面元素可见。对于这一示例性用户界面中要变得可见(或显示)的元素,它必须物理地位于拥有它的窗口的边界内。
图5是用于确保要测试的对象可见的基本过程的流程图500,它使用了上述概念。流程图500仅示出了一个示例性实施例,并且无论如何都不应被解释为限制性的。这些步骤可以由驻留在计算环境100A内的测试工具来实现,并且可以用软件、硬件或两者的组合来实现。
一旦选择了要变得可见的目标元素,在过程框502,遍历该目标元素的分层结构,直到到达该分层结构顶部的元素。这给出了可能需要修改以确保目标对象的可见性的所有对象的列表。再次转向图4C,示出了要变得可见的元素“Mint”402C的分层表示。该分层结构的顶部元素是“FoodWindow”408C。这变为当前元素。同时,确定当前元素的直接子元素。在所示的实施例中,子元素是“FoodLists”406C。 在过程框504,确定目标元素是否可滚动。如果是,则该过程在过程框506继续。如果不是,则该过程在过程框514继续。
在过程框506,滚动当前元素,直到在父元素内显示子元素。图6A示出了在通过在窗口“FoodWindow”602A内滚动直到可见而使子元素“FoodLists”604A在分层结构的顶部元素内可见之后所示的实施例。
在过程框508,遍历该分层结构向下一层,使得当前子元素(在所示的实施例中为“FoodLists”604A)变为新的当前元素。在过程框510,确定当前元素是否具有子元素。如果是,则该过程在过程框504继续。如果不是,则该过程终止。
图6B示出了此处所描述的方法的下一迭代的结果。“FoodLists”是当前元素,“HerbList”602B是子元素;在“FoodLists”604B中滚动“HerbList”602B,直到“HerbList”602B在“FoodWindow”606B中可见。
图6C示出了用于所示的实施例的方法的最终迭代:“HerbList”606C是父元素,“Mint”602C是子元素;滚动“HerbList”606C,直到“Mint”602C在分层结构顶部表单“FoodWindow”604C中可见。
如果在过程框504处,当前元素不可滚动,则在过程框514,确定它是否可扩展。示例性可扩展元素是树形列表和组合框。如果当前元素是可扩展的,则在过程框516扩展它;该过程然后在过程框508继续。如果不是可扩展的,则该过程在过程框508继续。
图7的流程图中示出的一种示例性方法700可用于如过程框506所示的那样找出元素并使它们可见。示例性方法700表示扩展上述示例性方法的一个特定实施例,并且无论如何都不应被解释为限制性的。相反,可以在排列和细节上修改该方法,而不脱离所公开的技术的范围。例如,在特定实施例中,可省略所描述的某些动作。
在过程框506,滚动当前元素,直到其分层子元素可见。用于执行这一滚动的一个示例性方法在流程图700中揭示。最初,如下所述,执行搜索以定位当前元素内任何可见的子元素。在过程框702,每隔n个元素进行检查。在一个示例性实施例中,最初每隔N/2个元素(其中N是父元素内元素的总数),尽管对于n的最优选择是依赖于实现的,并且n的最佳值通常难以确定。在一个实施例中,当元素总数为100时,最初每隔50个元素检查。如果到达列表的底部而没有发现可见项,则每隔n/2个元素检查,然后每隔n/4个元素检查,依此类推。在某些实施例中,在散列表中标记所检查的每一元素,以确保它仅被检查一次。继续参考图8,使用列表框800来阐明该方法的某些方面。其分层表示在图4B和4C中找到的列表框“HerbList”802是列表项“Allspice”、“Anise”等804的父节点。在该列表框中只有16个项,因此最大项/2(16/2)将是原始的搜索参数(依赖于应用程序的例示)。第8个项是“Garlic”808,并且它是不可见的,而第16个项“Vanilla”812也是不可见的。在过程框704,确定是否定位了可见元素。如果是,则该过程在过程框708继续。如果没有定位任何元素,则该过程在过程框706继续。在过程框706,检查第(1/x)个元素,其中x等于当前递归层。在所示的实施例中,由于这是第二次检查该列表,因此每隔四个元素((1/2)*8)进行检查一定位了“Chili”806并且它是可见的。在一个实施例中,储存关于哪些元素已被检查了可见性的信息,以确保它们不被重复检查。在该实施例的某些形式中,该信息储存在散列表中。在其它实施例中,可使用其它搜索类型,诸如斐波纳契(Fibonacci)搜索、跳跃搜索或线性搜索。在找到可见元素之后,使用二分搜索来找出将在实际滚动中担当锚的角色的第一个可见元素。
一旦定位了第一个可见元素,就通过将目标元素的适当参数,通常是位置参数与可见元素进行比较,来发现滚动方向。在过程框708,确定滚动方向。在某些实施例中,将可见元素个数与目标元素个数进行比较,然后将滚动方向设为适当的方向。一旦确定了滚动方向,就滚动该元素(710),直到在当前(滚动)元素的可见性区域内显示了期望的元素(714)。有时候,在找到元素之前到达末端(712),在这一情况下,将滚动方向设为相反的方向(716)。
再次参考图8,“Chili”806具有元素个数4,而目标元素“Mint”810具有元素个数10,因此将向下滚动该列表框,直到“Mint”810可见(714)。尽管有时候,在找到期望元素之前定位了末端。在过程框712,确定是否到达了当前元素(“HerbList”802)的末端。如果是,则该过程在过程框716继续,其中将滚动方向设为相反的方向。也可能在同一方向上滚动了某些次数之后,第一个可见元素不改变。如果这样,则这是在错误方向上滚动的指示;再一次,在一个示例性实施例中,滚动方向应当被设为相反的方向。
确保窗口接受用户数据的示例性实施例
在某些实施例中,在使目标元素在目标窗口中可见之后,通过确保与该用户界面元素相关联的窗口处于接受用户输入的状态来确保可见性。在键盘输入的情况下,这通常被称为窗口具有焦点。例如,如果在与该用户界面元素相关联的窗口之上有另一窗口,如果窗口被禁用,或者如果与该窗口相关联的线程不是前台线程,则窗口可能不处于接受用户输入的状态。在不同的实施例中,可采用以下方法,尽管这些示例不被认为是限制性的,且通常是依赖于实现的。在一个实施例中,设置z索引,使得与该用户界面元素相关联的适当分层对象处于屏幕的前方。z索引是窗口沿计算机屏幕的z轴所具有的值,该轴朝向和背离计算机用户延伸。一般而言,具有最大z值的窗口在屏幕的前方,并且由于它不被遮挡,它可能已对用户输入就绪。
在另一实施例中,设置将与要变得可见的对象相关联的窗口指定为具有焦点的窗口的属性。在又一实施例中,实现诸如“将窗口带到顶部”等过程,它确保窗口对用户输入就绪。在另一实施例中,确定不可见元素(诸如清除矩形)是否在要选择的用户元素的前方。如果是,则将不可见元素重新定位到允许所述元素被选中的位置。在再一实施例中,尝试多种这样的方法。
示例性系统实施例
图9示出了可用于实现使用户界面对象可见的计算机系统900的另一示例性实施例。计算机系统900具有用户界面910。它还包含分层排列(908)的用户界面对象902、904、906。一种典型的排列是基用户界面节点902与父节点904相关联,基用户界面节点是要变得可见的用户界面对象,诸如列表框中的项,而父节点904即列表框。列表框904本身与窗口906相关联。许多其它排列也是可能的。
计算机系统900还包括自动化测试器模块,它可物理地位于计算机系统900上,或可位于通过诸如内联网或因特网等通信链接连接到计算机系统900的远程位置。请求动作模块912选择要测试的特定用户界面元素。该模块可以是自动化测试者模块914的一部分,或可以是单独的模块。它可驻留在与要变得可见的UI节点902相同的计算机上,或者可驻留在可与要变得可见的UI节点902所驻留的计算系统通信的一个不同的计算系统上。
该系统也包括遍历分层结构模块916,当给定用户节点时,它可确定使该用户界面节点可见需要考虑的父节点。例如,如果给定UI节点902,即列表框元素,它可定位父列表框904,以及父列表框所属的窗口906。
有时候,复杂的元素同时需要滚动和扩展,以使期望的元素可见。框918示出了扩展模块。该模块用于扩展其中滚动不适当的元素,诸如树形视图。
也包括在父对象中定位模块920。该模块定位父对象中的子对象。例如,参考 图8,该模块可在列表框“HerbList”802中定位标签为“Mint”的元素810。
框922示出了在祖父对象中定位模块922。参考图4C和4H,该模块允许父对象使子对象在祖父对象中可见。在图4G中,子对象“HerbList”404G在父对象“FoodLists”406G中可见,但是不能在祖父对象“FoodWindow”408G中看到。在图4H中,父对象“FoodLists”406H滚动了子对象“HerbList”404H,使得“HerbList”404H现在可以在窗口“FoodWindow”408H中看到。
还存在窗口就绪模块924。该模块确保与要变得可见的用户界面对象相关联的窗口处于如上所述接受用户输入的状态。简言之,该模块检查使得用户界面元素可被选中的条件是否为真。这些条件的示例是:窗口被启用、窗口所属的线程是前台线程、或没有另一对象覆盖要变得可见的用户界面元素。
替换实施例
在另一示例性实施例中,自顶向下扩展可扩展元素。诸如折叠的树形视图中所示的某些元素由于扩展的特性,即它们是部分隐藏的,而是不可见的。为确保可扩展目标元素是可见的,从顶部向底部扩展目标分层结构。即,遍历目标元素以定位分层结构中的顶部元素。然后,扩展该顶部元素。如果该元素本身具有子对象,则扩展它,依此类推,直到到达目标元素并使其变得可见。诸如层叠对话框、层叠菜单、组合列表框、多选扩展列表框等控件可能都需要扩展。
在另一实施例中,自底向上扩展可扩展目标,即扩展该目标,然后扩展其父对象,向上依此类推,直到分层结构中的顶部元素。
在另一实施例中,通过组合扩展和滚动使元素变得可见:遍历该分层结构到顶部元素;当回头向下遍历该树时,根据沿遍历路线的每一元素的类型扩展或滚动它。
此处所描述的实现是技术不可知的,因为它应当能够对任何具有可滚动或可扩展元素的给定UI实现。此外,该功能期望被构建到自动测试程序中,使得该实现对于自动测试程序的用户是不可见的;对象表现为可见且对输入就绪,而无需进一步的工作。用户不应需要知道使元素可见的机制是如何对特定类型的控件工作的。例如,用户不需要发送操作系统消息以使一类GUI元素可见,并拖曳滚动条滑块以使一个不同的GUI元素可见。
构成此处所公开的实施例的功能应当是可扩展的;如果执行实际的滚动和扩展的默认动作不对特定的元素起作用,则该动作可由用户覆盖,而保持底层过程和 校验不变。例如,使用一个特定的示例,如果向上翻页/向下翻页是滚动容器1的默认动作,但是它对容器2不其作用,但是Ctrl—滚轮将滚动容器2,则用户可重新定义该功能的这一部分。然而,做出基本决策的过程较佳地应当保持不变。这些过程包括滚动方向、何时停止、滚动是否成功等等。
其它替换方案
描述并示出了本发明的原理之后,可以认识到,可在排列和细节上修改各实施例而不脱离这些原理。应当理解,此处所描述的程序、过程或方法并不涉及或限于任何特定类型的计算环境,除非另外指明。例如,此处所描述的技术可以应用于可由用户选择的任何用户界面元素。
可以使用各种类型的通用或专用计算环境来执行依照此处所描述的教导的操作。以软件示出的实施例的各元素可以用硬件来实现,反之亦然。可使用各种类型的通用或专用计算机来执行此处所揭示的系统和方法。此外,此处所描述的动作可以用包括用于执行这些动作的计算机可执行指令的计算机可读介质来实现。
鉴于可应用本发明的原理的许多可能的实施例,应当认识到,详细描述的实施例仅是说明性的,并且不应被认为是限制本发明的范围。相反,要求保护落入所附权利要求书及其等效技术方案的范围和精神内的所有这些实施例作为本发明。
Claims (13)
1.一种用于自动化用户界面测试环境内的计算机实现的方法,包括:
选择一要在屏幕上变得被看见的用户界面元素;
确定所述用户界面元素的至少一个父元素;
对所述用户界面元素的至少一个父元素执行使子元素在屏幕上被看见的动作;以及
确保与所述用户界面元素相关联的窗口对用户输入就绪;
其中,所述执行使子元素在屏幕上被看见的动作包括:
如果所述父元素是可滚动的,则沿移动方向滚动所述父元素,直到所述父元素的边界矩形和所述用户界面元素的边界矩形相重叠;
如果所述父元素是可扩展的,则扩展所述父元素以使所述用户界面元素被看见;以及
如果所述父元素不在所述用户界面元素分层结构的顶部,则在分层结构中向上移动一个层级使得所述用户界面元素的祖父元素是新的父元素而所述用户界面元素的父元素是新的用户界面元素。
2.如权利要求1所述的方法,其特征在于,在所述移动方向上滚动所述父元素在所述用户界面元素变得被看见之前到达末端位置,并且其中,所述方法还包括在与所述移动方向相反的方向上滚动所述父元素,直到所述用户界面元素被看见。
3.如权利要求1所述的方法,其特征在于,在所述移动方向上滚动所述父元素无法改变当前位置,并且其中,所述方法还包括在与所述移动方向相反的方向上滚动所述父元素,直到所述用户界面元素被看见。
4.如权利要求1所述的方法,其特征在于,存在父元素的N个子元素,并且其中滚动所述父元素包括:
通过递归地每隔N个子元素中的n个子元素检查其被看见性来搜索所述N个子元素的能被看见的子元素,最初n=N/2或n=N/3;并且在每一连续的递归层,n=n/2;
一旦找到了所述能被看见的子元素,则使用二分搜索找出所述N个子元素的第一个能被看见的子元素;以及
根据所述第一个能被看见的子元素的位置和所述用户界面元素的位置来确定滚动所述父元素的移动方向。
5.如权利要求4所述的方法,其特征在于,标记对其检查被看见性的每一子元素,并且其中,在后续的递归搜索中不检查已标记的子元素。
6.如权利要求5所述的方法,其特征在于,还包括一散列表,并且其中,所标记的子元素储存在所述散列表中。
7.如权利要求1所述的方法,其特征在于,所述用户界面元素是从一元素列表中选出的,所述元素列表包括列表框、列表框元素、组合框、组合框元素、菜单、菜单元素、多列列表框、多列列表框元素、多列组合框、多列组合框元素、多选扩展列表框、多选扩展列表框元素、文本框、文本框元素、滚动窗格、滚动窗格元素、加选项卡的窗口、加选项卡的窗口元素、日历、日历元素、树、树元素、窗口、或窗口元素。
8.如权利要求1所述的方法,其特征在于,所述确保与所述用户界面对象相关联的窗口对输入就绪包括以下的至少一个:给予与所述用户界面对象相关联的窗口焦点、使与所述界面对象相关联的线程成为前台线程、或确保没有另一对象覆盖在所述用户界面对象上。
9.一种用于自动化用户界面测试环境内的计算机系统,所述计算机系统包括:
用于选择一要在屏幕上变得被看见的用户界面元素的装置;
用于确定所述用户界面元素的至少一个父元素的装置;
用于对所述用户界面元素的至少一个父元素执行使子元素在屏幕上被看见的动作的装置;以及
用于确保与所述用户界面元素相关联的窗口对用户输入就绪的装置;
其中,执行使子元素在屏幕上被看见的动作包括:
如果所述父元素是可滚动的,则沿移动方向滚动所述父元素,直到所述父元素的边界矩形和所述用户界面元素的边界矩形相重叠;
如果所述父元素是可扩展的,则扩展所述父元素以使所述用户界面元素被看见;以及
如果所述父元素不在所述用户界面元素分层结构的顶部,则在分层结构中向上移动一个层级使得所述用户界面元素的祖父元素是新的父元素而所述用户界面元素的父元素是新的用户界面元素。
10.如权利要求9所述的计算机系统,其特征在于,存在父元素的N个子元素,并且其中滚动所述父元素包括:
通过递归地每隔N个子元素中的n个子元素检查其被看见性来搜索所述N个子元素的能被看见的子元素,最初n=N/2或n=N/3;并且在每一连续的递归层,n=n/2;
一旦找到了所述能被看见的子元素,则使用二分搜索找出所述N个子元素的第一个能被看见的子元素;以及
根据所述第一个能被看见的子元素的位置和所述用户界面元素的位置来确定滚动所述父元素的移动方向。
11.一种用于使用户界面对象在屏幕上被看见的方法,所述方法包括:
从要使用自动化来测试的图形用户界面内的多个界面对象中选择一用户界面对象,所述用户界面对象在所述对象分层结构的基底;
从基对象开始遍历所述用户界面对象分层结构到顶部对象的子对象,滚动当前对象的每一父对象,直到所述当前对象与所述当前对象的父对象重叠;
从所述基对象开始遍历所述用户界面对象分层结构到顶部对象的孙对象,滚动当前对象的每一父对象直到所述当前对象与所述当前对象的祖父对象重叠;以及
确保与所述用户界面对象相关联的窗口对用户输入就绪。
12.如权利要求11所述的方法,其特征在于,滚动还包括在x、y和z方向的至少一个中滚动。
13.一种使用户界面对象在屏幕上被看见的计算机系统,所述计算机系统包括:
用于从要使用自动化来测试的图形用户界面内的多个界面对象中选择一用户界面对象的装置,所述用户界面对象在所述对象分层结构的基底;
用于从基对象开始遍历所述用户界面对象分层结构到顶部对象的子对象,滚动当前对象的每一父对象,直到所述当前对象与所述当前对象的父对象重叠的装置;
用于从所述基对象开始遍历所述用户界面对象分层结构到顶部对象的孙对象,滚动当前对象的每一父对象直到所述当前对象与所述当前对象的祖父对象重叠的装置;以及
用于确保与所述用户界面对象相关联的窗口对用户输入就绪的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/966,855 US7543278B2 (en) | 2004-10-15 | 2004-10-15 | System and method for making a user interface element visible |
US10/966,855 | 2004-10-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1760841A CN1760841A (zh) | 2006-04-19 |
CN1760841B true CN1760841B (zh) | 2012-05-23 |
Family
ID=35840072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510116337XA Expired - Fee Related CN1760841B (zh) | 2004-10-15 | 2005-10-14 | 使用户界面元素可见的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7543278B2 (zh) |
EP (1) | EP1650660B1 (zh) |
JP (1) | JP2006114049A (zh) |
KR (1) | KR101004493B1 (zh) |
CN (1) | CN1760841B (zh) |
AT (1) | ATE533106T1 (zh) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7469381B2 (en) | 2007-01-07 | 2008-12-23 | Apple Inc. | List scrolling and document translation, scaling, and rotation on a touch-screen display |
US7917895B2 (en) * | 2001-07-27 | 2011-03-29 | Smartesoft, Inc. | Automated software testing and validation system |
US20050257190A1 (en) * | 2004-05-11 | 2005-11-17 | Victor Shaburov | Developing and executing applications with configurable patterns |
US7577681B1 (en) * | 2005-06-29 | 2009-08-18 | Emc Corporation | Methods and apparatus for managing contents of a database |
US8046732B2 (en) | 2005-12-30 | 2011-10-25 | Sap Ag | Distribution of data changes in pattern configurations |
US7844915B2 (en) | 2007-01-07 | 2010-11-30 | Apple Inc. | Application programming interfaces for scrolling operations |
FR2921171B1 (fr) * | 2007-09-14 | 2015-10-23 | Airbus France | Procede de minimisation du volume d'informations requis pour le debogage d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre |
FR2921170B1 (fr) * | 2007-09-14 | 2018-01-12 | Airbus Operations | Procede de generation automatique de programmes de test d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef, et dispositif de mise en oeuvre |
FR2921172B1 (fr) * | 2007-09-14 | 2015-09-04 | Airbus France | Procede de debogage d'un logiciel de fonctionnement d'un systeme embarque a bord d'un aeronef et dispositif de mise en oeuvre |
CN101377759B (zh) * | 2008-08-26 | 2010-06-09 | 中国工商银行股份有限公司 | 自动化界面测试系统 |
US20100064282A1 (en) * | 2008-09-05 | 2010-03-11 | Microsoft Corporation | Declarative testing for user interfaces |
US20100199223A1 (en) * | 2009-02-03 | 2010-08-05 | Oracle International Corporation | Hierarchy display |
US9569231B2 (en) * | 2009-02-09 | 2017-02-14 | Kryon Systems Ltd. | Device, system, and method for providing interactive guidance with execution of operations |
US20100205529A1 (en) * | 2009-02-09 | 2010-08-12 | Emma Noya Butin | Device, system, and method for creating interactive guidance with execution of operations |
US8169904B1 (en) * | 2009-02-26 | 2012-05-01 | Sprint Communications Company L.P. | Feedback for downlink sensitivity |
DE102009012164A1 (de) * | 2009-03-06 | 2010-09-09 | Siemens Aktiengesellschaft | Verfahren zur Auswahl eines einem Übertragungsnetz eines Automatisierungs-Systems zugeordneten Kommunikationssystems |
US9792385B2 (en) * | 2009-06-19 | 2017-10-17 | Oath Inc. | Systems and methods for improved web-based document retrieval and object manipulation |
US9405558B2 (en) * | 2009-08-24 | 2016-08-02 | Kryon Systems Ltd. | Display-independent computerized guidance |
US8918739B2 (en) | 2009-08-24 | 2014-12-23 | Kryon Systems Ltd. | Display-independent recognition of graphical user interface control |
US9098313B2 (en) * | 2009-08-24 | 2015-08-04 | Kryon Systems Ltd. | Recording display-independent computerized guidance |
US8893036B1 (en) * | 2009-09-24 | 2014-11-18 | Adobe Systems Incorporated | Display region scrolling |
WO2012043756A1 (ja) * | 2010-09-30 | 2012-04-05 | 楽天株式会社 | 閲覧装置、閲覧方法、プログラムを記録した非一時的なコンピュータ読み取り可能な記録媒体、ならびに、スクリプトプログラム |
US8661432B2 (en) * | 2010-10-05 | 2014-02-25 | Sap Ag | Method, computer program product and system for installing applications and prerequisites components |
CN103164191B (zh) * | 2011-12-08 | 2017-07-11 | 腾讯科技(深圳)有限公司 | 网页元素拖拽方法和装置 |
US11847300B2 (en) * | 2012-03-12 | 2023-12-19 | Comcast Cable Communications, Llc | Electronic information hierarchy |
CN103309802A (zh) * | 2012-03-16 | 2013-09-18 | 百度在线网络技术(北京)有限公司 | 一种移动终端中系统稳定性测试的方法及装置 |
CN102905194B (zh) * | 2012-08-29 | 2014-11-19 | 深圳市茁壮网络股份有限公司 | 数字电视浏览器中焦点的移动方法、装置和数字电视 |
CN102915349A (zh) * | 2012-09-27 | 2013-02-06 | 北京奇虎科技有限公司 | 在浏览器中显示网页的方法及在浏览器中显示的网页组件 |
US10691230B2 (en) | 2012-12-29 | 2020-06-23 | Apple Inc. | Crown input for a wearable electronic device |
US20140280890A1 (en) * | 2013-03-15 | 2014-09-18 | Yahoo! Inc. | Method and system for measuring user engagement using scroll dwell time |
US10491694B2 (en) | 2013-03-15 | 2019-11-26 | Oath Inc. | Method and system for measuring user engagement using click/skip in content stream using a probability model |
US10503388B2 (en) | 2013-09-03 | 2019-12-10 | Apple Inc. | Crown input for a wearable electronic device |
US9317175B1 (en) * | 2013-09-24 | 2016-04-19 | Amazon Technologies, Inc. | Integration of an independent three-dimensional rendering engine |
CN104572430B (zh) * | 2013-10-24 | 2018-04-27 | 腾讯科技(深圳)有限公司 | 一种终端应用界面的测试方法、装置和系统 |
CN104679485A (zh) * | 2013-11-28 | 2015-06-03 | 阿里巴巴集团控股有限公司 | 页面元素的控制方法及装置 |
US20150205464A1 (en) * | 2014-01-22 | 2015-07-23 | Microsoft Corporation | Updating a user interface to a service |
WO2015149347A1 (en) | 2014-04-04 | 2015-10-08 | Microsoft Technology Licensing, Llc | Expandable application representation |
WO2015154276A1 (en) | 2014-04-10 | 2015-10-15 | Microsoft Technology Licensing, Llc | Slider cover for computing device |
WO2015161239A1 (en) * | 2014-04-17 | 2015-10-22 | Versata Development Group, Inc. | User interface test coverage |
US9965452B2 (en) | 2014-09-04 | 2018-05-08 | Home Box Office, Inc. | Pre-children in a user interface tree |
US11494048B2 (en) * | 2014-09-04 | 2022-11-08 | Home Box Office, Inc. | View virtualization |
CN106662891B (zh) | 2014-10-30 | 2019-10-11 | 微软技术许可有限责任公司 | 多配置输入设备 |
US20160202865A1 (en) | 2015-01-08 | 2016-07-14 | Apple Inc. | Coordination of static backgrounds and rubberbanding |
US10534512B2 (en) * | 2015-03-04 | 2020-01-14 | Tata Consultancy Services Limited | System and method for identifying web elements present on a web-page |
WO2016197247A1 (en) * | 2015-06-12 | 2016-12-15 | Nureva, Inc. | Method and apparatus for managing and organizing objects in a virtual repository |
BE1023683B1 (nl) * | 2015-10-16 | 2017-06-14 | Jamo Solutions Nv | Een werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface |
BE1023690B1 (nl) * | 2015-10-16 | 2017-06-15 | Jamo Solutions Nv | Werkwijze voor het testen van een software applicatie doorheen een grafische gebruikersinterface. |
CN106776301B (zh) * | 2016-12-01 | 2020-12-04 | 广州酷狗计算机科技有限公司 | 子元素测试方法及装置 |
CN106598592A (zh) * | 2016-12-12 | 2017-04-26 | 北京奇虎科技有限公司 | 应用模块的管理方法及装置 |
US10606448B2 (en) | 2017-01-04 | 2020-03-31 | International Business Machines Corporation | Searching and displaying child objects of a parent object |
CN107479795B (zh) * | 2017-07-07 | 2020-06-23 | 阿里巴巴集团控股有限公司 | 滚动处理方法、装置及电子设备 |
CN107783762B (zh) * | 2017-11-24 | 2020-05-15 | 重庆金融资产交易所有限责任公司 | 界面生成方法、装置、存储介质和计算机设备 |
CN109144871B (zh) * | 2018-08-17 | 2020-11-10 | 北京邮电大学 | 一种自动化测试元素的识别方法及装置 |
CN109885225A (zh) * | 2018-12-14 | 2019-06-14 | 平安万家医疗投资管理有限责任公司 | 一种级联式选择的显示方法、装置及计算机设备 |
CN109814961B (zh) * | 2018-12-26 | 2020-11-06 | 北京城市网邻信息技术有限公司 | 列表控制方法、装置、电子设备及存储介质 |
CN110221892B (zh) * | 2019-05-20 | 2022-07-15 | 北京字节跳动网络技术有限公司 | 一种滚动窗口信息的方法、装置、介质和电子设备 |
CN110287108A (zh) * | 2019-05-31 | 2019-09-27 | 北京随信云链科技有限公司 | 一种页面测试方法、计算设备和存储介质 |
KR102221336B1 (ko) * | 2020-03-20 | 2021-03-03 | 재단법인대구경북과학기술원 | 사용자의 감각에 대한 자극 제공 시스템 및 그 방법 |
CN115357671B (zh) * | 2022-10-19 | 2023-01-10 | 成都飞机工业(集团)有限责任公司 | 一种飞机装配数据构建方法、装置、设备及介质 |
CN116401178B (zh) * | 2023-06-09 | 2023-08-11 | 成都融见软件科技有限公司 | Ui组件问题点定位方法、电子设备和介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1387105A (zh) * | 2001-02-27 | 2002-12-25 | 微软公司 | 产生用户界面的专门系统 |
CN1484790A (zh) * | 2001-01-04 | 2004-03-24 | �Ҵ���˾ | 测试带有图形用户界面的未知程序的方法和装置 |
CN1508704A (zh) * | 2002-12-18 | 2004-06-30 | 带有简化的视图的用户界面组件表示 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05298049A (ja) * | 1992-04-17 | 1993-11-12 | Hitachi Ltd | メニュー表示制御方式 |
US5600789A (en) * | 1992-11-19 | 1997-02-04 | Segue Software, Inc. | Automated GUI interface testing |
US5488685A (en) * | 1993-01-27 | 1996-01-30 | Apple Computer, Inc. | Method and apparatus for providing visual cues in a graphic user interface |
US5588107A (en) * | 1993-03-22 | 1996-12-24 | Island Graphics Corporation | Method and apparatus for selectably expandable menus |
JPH0756768A (ja) * | 1993-08-10 | 1995-03-03 | Hitachi Ltd | データ型対応の自動テスト方法 |
JP3754111B2 (ja) * | 1994-07-28 | 2006-03-08 | ゼロックス コーポレイション | 階層的に関連した情報の生成方法及びコンピュータ制御ディスプレイシステム |
US5784059A (en) * | 1994-09-16 | 1998-07-21 | Aisin Aw Co., Ltd. | Vehicle navigation system with destination selection using hierarchical menu arrangement with selective level skipping |
US5819055A (en) * | 1994-12-13 | 1998-10-06 | Microsoft Corporation | Method and apparatus for docking re-sizeable interface boxes |
JPH09330248A (ja) * | 1996-06-12 | 1997-12-22 | Hitachi Ltd | Gui制御プログラムのイベントテスト方式 |
US6160552A (en) * | 1997-01-09 | 2000-12-12 | Sun Microsystems, Inc. | Method and apparatus for managing multiple hierarchical lists within a browser |
US5956035A (en) * | 1997-05-15 | 1999-09-21 | Sony Corporation | Menu selection with menu stem and submenu size enlargement |
US6018524A (en) * | 1997-09-09 | 2000-01-25 | Washington University | Scalable high speed IP routing lookups |
US6236400B1 (en) * | 1998-04-02 | 2001-05-22 | Sun Microsystems, Inc. | Method and apparatus for controlling the display of hierarchical information |
US6473102B1 (en) | 1998-05-11 | 2002-10-29 | Apple Computer, Inc. | Method and system for automatically resizing and repositioning windows in response to changes in display |
US6188406B1 (en) * | 1998-08-12 | 2001-02-13 | Sony Corporation | Single-item text window for scrolling lists |
US6380947B1 (en) * | 1999-07-22 | 2002-04-30 | At&T Corp. | Method and apparatus for displaying and tree scrolling a hierarchical data structure |
US6430574B1 (en) * | 1999-07-22 | 2002-08-06 | At&T Corp. | Method and apparatus for displaying and header scrolling a hierarchical data structure |
US6448985B1 (en) * | 1999-08-05 | 2002-09-10 | International Business Machines Corporation | Directory tree user interface having scrollable subsections |
JP2002366273A (ja) * | 2001-06-13 | 2002-12-20 | Matsushita Electric Ind Co Ltd | 選択情報表示装置、選択候補表示方法、および、選択候補表示ソフトウェア、並びに、選択候補表示ソフトウェアを記録した記録媒体 |
US7093238B2 (en) * | 2001-07-27 | 2006-08-15 | Accordsqa, Inc. | Automated software testing and validation system |
US7290245B2 (en) * | 2001-10-18 | 2007-10-30 | Microsoft Corporation | Methods and systems for navigating deterministically through a graphical user interface |
JP2004110267A (ja) * | 2002-09-17 | 2004-04-08 | Fuji Xerox Co Ltd | テスト実行装置、方法およびプログラム |
CA2413695A1 (en) * | 2002-12-06 | 2004-06-06 | Ibm Canada Limited - Ibm Canada Limitee | Tracking unit tests of computer software applications |
US7242413B2 (en) * | 2003-05-27 | 2007-07-10 | International Business Machines Corporation | Methods, systems and computer program products for controlling tree diagram graphical user interfaces and/or for partially collapsing tree diagrams |
US7266785B2 (en) * | 2003-12-15 | 2007-09-04 | International Business Machines Corporation | Showing ancestors in tree view while scrolling |
CA2466253A1 (en) * | 2004-05-04 | 2005-11-04 | Ibm Canada Limited - Ibm Canada Limitee | Display of enlarged visual container graphical user interface (gui) components during gui layout or design |
US7421665B2 (en) * | 2004-08-31 | 2008-09-02 | Oracle International Corporation | Node scrollers |
GB0420086D0 (en) * | 2004-09-10 | 2004-10-13 | Ibm | Data processing system and method |
-
2004
- 2004-10-15 US US10/966,855 patent/US7543278B2/en not_active Expired - Fee Related
-
2005
- 2005-09-15 EP EP05020139A patent/EP1650660B1/en not_active Not-in-force
- 2005-09-15 AT AT05020139T patent/ATE533106T1/de active
- 2005-09-29 KR KR1020050091106A patent/KR101004493B1/ko not_active IP Right Cessation
- 2005-10-14 CN CN200510116337XA patent/CN1760841B/zh not_active Expired - Fee Related
- 2005-10-17 JP JP2005301987A patent/JP2006114049A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1484790A (zh) * | 2001-01-04 | 2004-03-24 | �Ҵ���˾ | 测试带有图形用户界面的未知程序的方法和装置 |
CN1387105A (zh) * | 2001-02-27 | 2002-12-25 | 微软公司 | 产生用户界面的专门系统 |
CN1508704A (zh) * | 2002-12-18 | 2004-06-30 | 带有简化的视图的用户界面组件表示 |
Also Published As
Publication number | Publication date |
---|---|
EP1650660A3 (en) | 2009-11-04 |
US20060085764A1 (en) | 2006-04-20 |
CN1760841A (zh) | 2006-04-19 |
US7543278B2 (en) | 2009-06-02 |
EP1650660B1 (en) | 2011-11-09 |
JP2006114049A (ja) | 2006-04-27 |
EP1650660A2 (en) | 2006-04-26 |
KR20060051821A (ko) | 2006-05-19 |
KR101004493B1 (ko) | 2010-12-31 |
ATE533106T1 (de) | 2011-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1760841B (zh) | 使用户界面元素可见的系统和方法 | |
US6289489B1 (en) | Method and apparatus for automatically cross-referencing graphical objects and HDL statements | |
US5745738A (en) | Method and engine for automating the creation of simulations for demonstrating use of software | |
Grossman et al. | Chronicle: capture, exploration, and playback of document workflow histories | |
US6184880B1 (en) | Automatic GUI system operation device and operation macro execution device | |
US5708764A (en) | Hotlinks between an annotation window and graphics window for interactive 3D graphics | |
EP0706124B1 (en) | System for generating interactive software applications | |
US7346846B2 (en) | Strategies for providing just-in-time user assistance | |
US5874952A (en) | Method and apparatus for improved graphical user interface with function icons | |
US6826443B2 (en) | Systems and methods for managing interaction with a presentation of a tree structure in a graphical user interface | |
US7210107B2 (en) | Menus whose geometry is bounded by two radii and an arc | |
US8578271B2 (en) | Nested roadmap navigation in a graphical user interface | |
MXPA05002322A (es) | Sistema y metodo para producir elementos de interfaz del usuario conocidos para una aplicacion y para el usuario. | |
US20050123892A1 (en) | Method, system and program product for developing and utilizing interactive simulation based training products | |
US5542069A (en) | Method and apparatus for simulating input events in a windowed environment | |
US5469539A (en) | Method for abstracting/detailing structuring elements of system specification information | |
Bork et al. | An extended taxonomy of advanced information visualization and interaction in conceptual modeling | |
JP3064296B2 (ja) | 階層構造データの表示画面制御方法及び装置 | |
US20040189711A1 (en) | Object display device, object display method and computer program product | |
JP2002287964A (ja) | 画面入出力仕様設計システムと方法およびプログラム | |
JPH05189177A (ja) | 階層構造表示装置 | |
Abbott | AutoCAD: secrets every user should know | |
JPH10293673A (ja) | ウインドウ表示方法 | |
Jacobs | CHI'88 Workshop on Real Time, decision support computer-human interaction | |
Inman | A syntax-directed graphics editor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120523 Termination date: 20141014 |
|
EXPY | Termination of patent right or utility model |