CN102129405B - 跨浏览器交互性测试 - Google Patents
跨浏览器交互性测试 Download PDFInfo
- Publication number
- CN102129405B CN102129405B CN201110026360.5A CN201110026360A CN102129405B CN 102129405 B CN102129405 B CN 102129405B CN 201110026360 A CN201110026360 A CN 201110026360A CN 102129405 B CN102129405 B CN 102129405B
- Authority
- CN
- China
- Prior art keywords
- browser
- follower
- leader
- user
- relevant
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
Abstract
本文中描述了一种跨浏览器交互性测试。多浏览器交互性测试连接领导者浏览器以及一个或多个随从者浏览器。阻塞对随从者浏览器的直接用户输入。截取文档对象模型元素处所指示的对领导者浏览器的用户输入。使用属性值或其他机制来在每一个随从者浏览器中定位对应的元素。将用户输入应用于领导者元素并通过模拟的系统级事件来应用于随从者元素,并且在所有浏览器上实时显示结果。取决于诸如登录或可折叠控件等交互行为以及交互性的其他方面的布局能够在不对每一个浏览器手动地重复输入,并且不管不同浏览器的布局引擎指派给元素的屏幕区域的差异的情况下测试。领导和随从者浏览器角色还可以自动互换。
Description
技术领域
本发明涉及跨浏览器交互性测试。
背景技术
浏览器可能是用于在万维网中检索、呈现以及导航网页的最熟悉的工具。网页可包含文本、静止图像、视频、音频以及交互式内容。浏览器还可用来访问由专用网络中的服务器或对等体提供的或在特定计算机、智能电话或其他设备上的本地文件中的信息。
可以在服务中找到各种各样的浏览器。例如,存在着微软Internet浏览器的具有不同能力的不同版本(Internet是微软公司的标记)。虽然Internet浏览器被广泛使用,但也可在计算机上、在电话上、在汽车中或在其他设备中使用许多其他浏览器。浏览器在诸如它们在其下运行的操作系统、它们用来将网页对象转换成视觉显示的布局引擎、它们用来接受用户输入的机制、它们在本机实现哪些特征(不使用插件或其他扩展)、以及它们支持哪些web标准和协议等特性方面不同。
发明内容
浏览器在它们如何呈现图像、进行页面布局以及为用户生成页面交互性方面不同。为了增强或补充用于测试不同的浏览器中的屏幕布局的技术,本文描述的一些实施方式支持跨浏览器交互性测试。例如,能够同时且交互式地测试不同的浏览器以基于代码或层叠样式表代码来标识并探查行为差异(是Sun微系统有限公司的标记)。
一些实施方式支持多浏览器交互性测试。指定领导者浏览器以及一个或多个随从者浏览器。截取对领导者浏览器的用户输入并使用该用户输入来标识相关领导者元素,即领导者浏览器中的被配置成响应所截取的用户输入的文档对象模型(DOM)元素。输入可使用诸如透明窗口和/或事件程序等机制来截取。还可禁用对随从者浏览器的直接用户输入。在每一个随从者浏览器中定位对应于相关领导者元素的相关随从者元素。将用户输入应用于相关领导者元素并应用程序相关随从者元素,并且在单个屏幕上并排、实时或以其他方式显示结果。相关随从者元素可通过诸如元素ID属性值、DOM树位置、预定的一组元素属性值和/或位置(诸如相对于视口原点的位置)等机制来定位。可通过在随从者浏览器中生成系统级事件而不管对随从者浏览器的直接用户输入的缺失,或者通过在相关随从者元素上调用例如增强的DOM树中定义的方法,来将用户输入应用于相关随从者元素。
一些实施方式冻结浏览器状态以便于询问页面布局以及DOM元素属性值。一些实施方式记录用户和领导者浏览器之间的交互,而一些实施方式将这些记录传送至远程随从者浏览器以远程应用用户输入。
领导者浏览器以及一个(或多个)随从者浏览器可以驻留在相同设备或不同设备上。承载浏览器的设备可以是例如工作站设备、便携式设备、嵌入式设备和/或电话设备。在一些实施方式中,领导者和随从者的角色可以自动互换。
所给出的这些示例仅仅是说明性的。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。相反,提供本发明内容是为了以简化的形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明由权利要求书限定,并且在本发明内容与权利要求书相冲突时以权利要求书为准。
附图说明
将参考附图给出更具体的描述。这些附图只示出了各选择性方面并且因而不完全决定范围。
图1是示出计算机或其他计算设备并且还示出经配置的存储介质实施方式的框图,该计算机或其他设备具有至少一个处理器、至少一个存储器、至少一个浏览器以及可存在于多个网络节点上的操作环境中的其他项目;
图2是示出用于一些实施方式的示例体系结构中的领导者浏览器、随从者浏览器、交互性测试代码以及其他组件的框图;
图3是示出一些实施方式中的用于截取用户输入、应用用户输入和/或以其他方式管理用户输入的机制的框图;
图4是表示一些实施方式中在交互性测试期间具有分配给领导者浏览器的一个区域和分配给随从者浏览器的另一区域的屏幕的图示;
图5是示出其中领导者浏览器驻留在一个设备上并且三个随从者浏览器分别驻留在三个其他设备上且这些设备通过网络连接的实施方式的框图;
图6是示出一些实施方式中的用户-浏览器交互的规范化记录的框图;
图7是示出一些方法的步骤和经配置的存储介质的实施方式的流程图;以及
图8是示出一些实施方式的数据流程图。
具体实施方式
概览
在开发网页期间,可能花费大量努力来确保网页在各种各样的浏览器中相似地运作,包括例如微软Internet软件、软件以及软件(分别是微软公司、Mozilla Foundation以及Apple有限公司的标记)的多个版本。尽管存在用于对各元素在页面上的布局在不同的浏览器中是否相匹配进行静态测试的若干解决方案,但缺少用于测试诸如代码行为和动画以及层叠样式表(CSS)代码行为等跨浏览器交互性的解决方案。
跨浏览器布局的常见解决方案可被分成两组。一组包括布局解决方案,如BrowserLab服务和Expression Web SuperPreview工具。这些解决方案允许用户通过实质地拍摄页面的照片并允许用户比较这些照片来验证页面元素在多个浏览器中的布局,并且标识哪些元素是相同的(或不同的)以帮助诊断它们为什么是不同的。在该组中,这些解决方案提供可能由元素信息补充了的静态图片。这些解决方案如果不是根本没有探查交互式行为,那也是没有进行充分探查。
第二组包括诸如IETester工具等布局解决方案。这些解决方案仅仅以肩并肩的方式主存多个浏览器,从而允许用户在一个浏览器中测试操作序列,并随后方便地切换到另一浏览器来测试同一序列。IETester工具允许开发人员访问Internet软件的多个不兼容的版本。然而,该第二组布局软件不提供同时测试多个浏览器的能力。
另一已知技术是“共同浏览(co-browsing)”,由此用户在他们的机器上安装特殊客户端(通常是浏览器插件)。在共同浏览期间浏览器被置于主机-从机关系中,使得从浏览器将自动地去往主浏览器中设置的目的地。然而,共同浏览仅仅同步了网页目的地,并非目的地网页内的用户动作和页面行为。
相反,本文描述的一些实施方式通过例如跨浏览器页面可视化生成和跨浏览器页面可视化呈现来支持跨浏览器交互性测试。一些实施方式提供用于在多个web浏览器中同时测试网页交互性(动画、行为、程序响应)的机制。用户直接与领导(基准)浏览器进行交互,并且与页面元素的交互(点击、鼠标悬停以及其他姿势)被映射到随从者浏览器中相对应的页面元素。随从者浏览器可以位于同一机器上并且甚至主存在与领导者浏览器相同的界面中,或者随从者可以位于与领导者不同的物理CPU上。在一些配置中,一个或多个随从者在与领导者相同的机器上,而该同一领导者的其他随从者在不同的机器上。
现在将参考诸如附图中所示的那些示例性实施方式,并且将使用具体语言来描述它们。但在此示出的特征的替换和进一步修改,以及在此示出的原理的附加应用(掌握本发明的相关领域技术人员会想到)应该被认为处于权利要求的范围内。
术语的含义在本公开内容中进行阐明,所以权利要求应当在仔细注意这些说明的情况下来阅读。给出了具体示例,但相关领域技术人员将理解其他示例也可能落入所使用的术语的意义内,并落入一个或多个权利要求的范围内。各术语不一定具有与它们在一般使用中、在特定行业使用中、或在特定字典或一组字典的使用中所具有的意义相同的意义。附图标记可以与各种措辞一起使用,以帮助示出术语的外延。从给定文本片段中省略附图标记不一定意味着文本没有在讨论附图的内容。发明人主张并行使他们对他们自己的词典编纂的权利。在此,可以在“具体实施方式”中和/或在本申请文件的其他部分,显式或隐式地定义术语。
如本文所使用的,“计算机系统”可包括例如一个或多个服务器、主板、处理节点、个人计算机(便携式或非便携式)、个人数字助理、蜂窝或移动电话、和/或提供至少部分地由指令控制的一个或多个处理器的其他设备。指令可以是以存储器和/或电路中特定的软件的形式。具体而言,虽然可以想到许多实施方式在工作站或膝上型计算机上运行,但其他实施方式可以在其他计算设备上运行,并且任何一个或多个这样的设备可以是给定实施方式的一部分。
“多线程”计算机系统是支持多执行线程的计算机系统。术语“线程”应被理解为包括能够同步或服从同步的任何代码,并且也以另一名称为人所知,如“任务”、“进程”或“协同程序”。线程可以并行运行、串行运行、或以并行执行(例如,多处理)和串行执行(例如,时间分片)的组合来运行。在各种配置中都设计了多线程环境。执行线程可以并行运行,或可以组织线程以供并行执行但实际上串行轮流执行。例如,可通过在多处理环境中的不同的核上运行不同的线程、通过在单个处理器核上对不同的线程进行时间分片、或通过时间分片和多处理器线程化的一些组合,来实现多线程。例如,可以通过内核的线程调度器、通过用户空间信号、或通过用户空间和内核操作的组合,来启动线程上下文切换。例如,线程可以轮流操作共享数据,或每一线程可以操作其自己的数据。
“逻辑处理器”或“处理器”是单个独立硬件线程处理单元。例如,每个核运行两个线程的超线程四核芯片具有八个逻辑处理器。处理器可以是通用的,或者它们可以针对诸如图形处理、信号处理、浮点算术处理、加密、I/O处理等特定用途来定制。
“多处理器”计算机系统是具有多个逻辑处理器的计算机系统。多处理器环境以各种配置出现。在一给定配置中,所有处理器可以在功能上相同,而在另一配置中,一些处理器可能由于具有不同的硬件能力、不同的软件分配、或这两者而与其他处理器不同。取决于配置,处理器可以彼此紧耦合在单个总线上,或它们可以是松耦合的。在一些配置中,各处理器共享中央存储器,在一些配置中,它们各自具有其自己的本地存储器,并且在一些配置中,共享和本地存储器两者都存在。
“内核”包括操作系统、系统管理程序、虚拟机、以及类似的硬件接口软件。
“代码”意味着处理器指令、数据(其包括常量、变量以及数据结构),或指令和数据两者。
“自动地”意味着使用自动化(例如,由在此讨论的特定操作的软件配置的通用目的计算硬件),与没有自动化相反。具体而言,“自动地”执行的步骤不是通过手在纸上或在人的脑中执行的,它们是用机器执行的。
贯穿全文,使用可选的复数“(诸)”意味着存在所指示的特征中的一个或多个。例如,“(诸)浏览器”意味着“一个或多个浏览器”或等效于“至少一个浏览器”。
无论何时引用了数据或指令,可以理解这些项配置计算机可读存储器,从而将其转换成与简单存在于纸上、人脑中相反的特定制品,或例如,作为线上的瞬时信号。
操作环境
参考图1,用于实施方式的操作环境100可包括计算机系统102。计算机系统102可以是或不是多处理器计算机系统。操作环境可包括给定计算机系统中的一个或多个机器,它们可以群集的、客户机-服务器联网的、和/或对等联网的。
人类用户104可以通过使用显示器、键盘、以及其他外围设备106来与计算机系统102进行交互,例如以从web服务器142请求网页128。系统管理员、开发人员、工程技术人员、以及最终用户各自都是特定类型的用户104。代表一个或多个人的自动化代理也可以是用户104。在一些实施方式中,存储设备和/或联网设备可被认为是外围装备。图1中未示出的其他计算机系统,可以使用例如经由网络接口设备到网络108的一个或多个连接来与计算机系统102或与另一系统实施方式进行交互。在交互期间,用户通过键盘、鼠标、以及其他外围设备106和/或通过网络108连接提供输入120,并且用户通过例如显示器122、其他硬件124和/或网络连接接收输出数据。
计算机系统102包括至少一个逻辑处理器110。与其他合适系统一样,计算机系统102还包括一个或多个计算机可读非瞬态存储介质112。介质112可以是易失性存储器、非易失性存储器、固定在适当位置的介质、可移动介质、磁性介质、光学介质、和/或其他类型的非瞬态介质(与诸如仅仅传播信号的电线等瞬态介质相对)。介质112可以是不同的物理类型。具体而言,诸如CD、DVD、记忆棒、或其他可移动非易失性存储器介质等的经配置介质114,在被插入或以其他方式安装时,可以在功能上变成计算机系统的一部分,使得它的内容可被访问以供处理器110使用。可移动经配置的介质114是计算机可读存储介质112的示例。计算机可读存储介质112的一些其他示例包括内置RAM、ROM、硬盘、以及不易于由用户104移动的其他存储设备。
介质114由可由处理器110执行的指令116来配置;“可执行”在此以宽泛的意义来使用,以包括例如机器代码、可解释代码、以及在虚拟机上运行的代码。介质114还由数据118来配置,数据118是通过执行指令116来创建、修改、引用、和/或以其他方式使用的。指令116和数据118配置它们位于其中的介质114;当该存储器是给定计算机系统的功能部分时,指令116和数据118还配置该计算机系统。在一些实施方式中,数据118的一部分表示真实世界项目,如产品特征、清单、物理测量、设置、图像、读数、目标、容量等。如本文讨论的,这样的数据也被转换,例如通过映射、截取、执行、挂起、询问、修改、显示、创建、加载、和/或其他操作。
具有HTML页面128的一个或多个web浏览器126和一个或多个文档对象模型(DOM)树132中的对应的DOM元素130、其他软件134、以及附图中示出的其他项可以部分或全部驻留在一个或多个介质112内,由此配置这些介质。元素130(有时也被称为对象)可以具有相关联的属性值136。可显示元素130一般具有相应的位置138,如相对于某一视口原点的位置。在一些情况下,一元素的位置取决于浏览器窗口的宽度以及浏览器呈现引擎。除了处理器110、可任选外围设备106、介质112和可任选显示器122之外,操作环境还可包括其他硬件124,诸如例如总线、电源和加速器。
给定操作环境100可包括向开发人员提供一组协同的软件开发工具的集成开发环境(IDE)140。具体而言,对于一些实施方式,合适的操作环境中的一些包括或帮助创建被配置成支持程序开发的 开发环境(微软公司的标记)。一些合适的操作环境包括环境(SunMicrosystems有限公司的标记),并且一些操作环境包括利用诸如C++或C#(“C-Sharp”)等语言的环境,但本文的教导适用于各种各样的程序设计语言、程序设计模型、以及程序,以及本质上适用于软件开发领域之外的使用浏览器的努力。
一些项在图1中以轮廓形式示出以强调它们不是所示操作环境的必需部分,但可以与在此讨论的操作环境中的项进行互操作。在任何附图或任何实施方式中,并不能得出不是轮廓形式的项就一定需要的结论。
系统
图2示出适用于一些实施方式的体系结构。领导者浏览器202接收输入,该输入由交互性测试代码204在元素130层面映射以提供与一个或多个随从者浏览器206的对应交互。具体而言,相关领导者元素208(其是在其处指示指定的用户输入120的元素130)被映射到对应的相关随从者元素210,并且该用户输入被应用于该相关随从者元素以便在模拟在领导者浏览器处指示的输入的引导下测试这些随从者元素的交互行为。在本文讨论的各实施方式中提供了用于截取、阻塞、应用、模拟以及以其他方式管理用户输入的机制212。
一些实施方式创建用户与领导者浏览器的交互的规范化记录214,并且一些实施方式通过读取和操作用户-浏览器交互的这些规范化记录214来控制随从者浏览器行为。
在一些实施方式中,可以测试脚本语言216代码(例如,代码)在网页中的交互行为。用户在领导者浏览器处指示用户输入120的序列,并且测试代码204自动将那些输入通过相关领导者元素映射到相关随从者元素。测试代码还自动将这些输入应用于相关随从者元素,使得可以在一个或多个机器上的多个浏览器中同时测试浏览器脚本语言行为和其他行为,而无需用户手动地将该输入重复到每一浏览器中或对每一测试序列和每一浏览器使用测试场景专用脚本。
给定实施方式可包括一个或多个类型的一个或多个系统102(也称为设备、机器)。例如,系统102可被看作属于以下设备类别218中的一个或多个:工作站设备(例如,台式计算机、服务器计算机)、便携式设备(例如,膝上型计算机)、嵌入式设备(例如,嵌入在汽车、飞机、船舶以及其他交通工具中的系统)以及电话设备(例如,蜂窝电话、智能电话)。
参考图1和2,一些实施方式提供具有逻辑处理器110和存储器介质112的计算机系统102,该存储器介质112由电路、固件和/或软件配置成将用户在领导者浏览器处指示的输入变换成一个或多个随从者浏览器中的同时的自动元素集对应的模拟输入。
在一些实施方式中,存在诸如人类用户I/O设备(屏幕、键盘、鼠标、输入板、话筒、扬声器、运动传感器等)等外围设备106,可操作地与一个或多个处理器110和存储器进行通信。然而,一实施方式还可被配置成没有人类用户104直接与该实施方式交互;软件进程可以是用户104。
在一些实施方式中,该系统包括通过网络连接的多个计算机。连网接口设备可使用例如计算机系统中存在的诸如分组交换网络接口卡、无线收发机、或电话网络接口等组件来提供对网络108的访问。然而,一实施方式也可以通过直接存储器访问、可移动非易失性介质、或其它信息存储-取回和/或传输方法来进行通信,或计算机系统中的一实施方式可以在不与其它计算机系统进行通信的情况下操作。
在一些实施方式中,多浏览器交互性测试系统包括至少一个逻辑处理器110以及在操作上与逻辑处理器通信的至少一个本地存储器。具有领导者文档对象模型元素130的领导者浏览器202驻留在本地存储器中。具有随从者文档对象模型元素130的随从者浏览器206驻留在本地存储器中。交互性测试代码204驻留在至少一个本地存储器中。即,领导者浏览器202、随从者浏览器206和交互性测试代码204可以驻留在可在操作上与一个或多个逻辑处理器110通信的一个或多个存储器中;在该上下文中,“逻辑”暗示在与逻辑处理器相同的设备中,与在某一其他设备中形成对比。除非另外指明,否则权利要求书中对逻辑处理器的引用意味着存在一个或多个逻辑处理器。
交互性测试代码204被配置成在随从者文档对象模型元素中定位对应于相关领导者元素的相关随从者元素。相关领导者元素是由用户输入对领导者浏览器定标的领导者文档对象模型元素。交互性测试代码204还被配置成将用户输入应用于相关随从者元素。
例如,在一些实施方式中,交互性测试代码204的一部分与领导者浏览器一起驻留在第一机器上,该交互性测试代码204的另一部分与随从者浏览器一起驻留在第二机器上,并且交互性测试代码204的类似部分与另一随从者浏览器一起驻留在第三机器上。如同其他系统102,特定机器可以是单处理器设备或多核设备。
更一般而言,一个或多个随从者浏览器可以存在于特定实施方式中。在一些实施方式中,领导者浏览器、随从者浏览器和交互性测试代码全都驻留在同一设备上。在其他实施方式中,领导者浏览器驻留在具有第一逻辑处理器和第一本地存储器的第一设备上,随从者浏览器驻留在具有第二逻辑处理器和第二本地存储器的第二设备上,而交互性测试代码的至少一部分驻留在每一个设备上。例如,一些实施方式将Macintosh或其他OS X操作系统机器上的浏览器与微软Windows或其他微软Windows操作系统机器上的浏览器进行连接,以使得领导者浏览器和至少一个随从者浏览器在不同的操作系统下运行和测试。
在一些实施方式中,设备类别218包括:诸如台式机和服务器等工作站设备;诸如膝上型计算机、图形输入板计算机和网络计算机等便携式设备;诸如那些嵌入在汽车、飞机或其他交通工具或电器中的嵌入式设备;以及电话设备。其上运行浏览器的第一设备和第二设备可具有不同的设备类别。交互活动测试代码不一定在每一可用设备类别中实现,所使用的类别可以随实施方式而变化。
在一些实施方式中,允许一个或多个随从者浏览器。但在一些情况下,实施方式包括至少一个附加随从者浏览器中的至少一个附加相关随从者元素,并且交互性测试代码被配置成将用户输入应用于附加相关随从者元素中的至少一个。在此类实施方式中,存在两个或更多随从者浏览器。例如,图5示出了具有通过网络与领导者浏览器通信的三个随从者浏览器的实施方式。
参考用于管理用户输入的机制212,并且参考图3和4以及图1和2,一些实施方式包括位于浏览器窗口或其他显示区域402前端的透明窗口302。使用该透明窗口,交互性测试代码204截取来自用户输入设备(外围设备106)的信号,诸如浏览器处所指示的鼠标、笔和触摸屏信号。由在随从者浏览器前端的透明窗口截取的信号可以在交互性分析后被丢弃或传递至相关元素。在一些情形中,随从者浏览器不受实况直接输入(用户->随从者浏览器)控制,而改为经由领导者接收其输入(用户->领导者浏览器->系统信号->随从者浏览器)。直接控制随从者浏览器,而不是经由领导者浏览器来控制随从者浏览器的尝试可通过将直接输入丢弃至随从者浏览器来阻塞。在一些情形中,随从者浏览器既直接接受输入又间接接受输入。在一些情形中,可以分析由在领导者浏览器前端的透明窗口截取的信号以标识在其处指示信号的相关领导者元素208。在操作中,一些实施方式通过查看不保证是相同的相关联的浏览器DOM来关联相关领导者元素和相关随从者元素。因此,一些实施方式的一方面是将领导者DOM元素与相同的随从元素相关联。另一种方法是“挂钩”用于浏览器的窗口句柄,这将不需要透明窗口。由此将在Windows API层面截取到现存窗口的所有消息。
在一些实施方式中,诸如相关领导者元素208和/或相关随从者元素210等元素130用元素ID属性值308来指定。元素ID属性值不一定存在于不用作相关元素的元素上。在每一个页面128中,并非所有相关元素都一定设有ID属性,因此相关元素在一些情况下还可以由其他机制来指定。
例如,在一些实施方式中,元素可由其在DOM树中的位置310来指定。位置可通过列出从根到元素的路径来指定。例如,“113”可以意味着“从根开始,遵循最左边的链接,遵循最左边的链接,遵循左起第三个链接,直至到达元素”。位置还可通过列出元素在特定遍历中的序数来指定。例如,“17”可以意味着“元素是从根开始的前序遍历中的第十七个元素”。
在一些实施方式中,元素可由属性值136的特定集合312来指定。例如,相关元素可以是树132中具有Flashing_On(闪烁开)属性值和Fuzzy_Border(模糊边框)属性值两者的唯一元素。
在一些实施方式中,事件处理程序304通过生成系统级事件306来模拟用户输入事件。例如,随从者浏览器机器上的交互性测试代码204可接受描述用户与领导者浏览器的交互的记录214,并且然后生成系统级事件以导致与相关随从者元素的对应交互。在一些实施方式中,事件处理程序通过捕捉和响应事件来“模拟”事件。
在一些实施方式中,事件处理程序304使用熟悉的DOM挂钩来插入在浏览器中的页面128中。在一些实施方式中,事件处理程序304被插入在重新编写的网页128中,即HTML被测试代码204修改以插入事件处理程序。在任一种情况下,所插入的事件处理程序通常不存在于web服务器142上的网页128的原始版本中,并且事件处理程序被配置成处理用户输入设备信号所导致的事件。
换言之,所插入的事件处理程序截取否则已去往不同的事件处理程序或将哪儿也不去的事件(一些事件不具有监听程序)。在领导者浏览器中,可以重新编写页面以使得具有事件处理程序Z的任何元素也具有预先挂到该事件处理程序的所插入的处理程序304。所插入的处理程序304将事件已被触发的消息发送到交互性测试代码204。交互性测试代码204在随从者浏览器中模拟相同事件。事件处理程序插入可以在不重新编写网页的情况下完成;HTML DOM提供用于在实际上不重新编写源HTML的情况下钩住事件处理程序的熟悉机制。
特别参考图3和6,在一些实施方式中,使用用户与领导者浏览器202的交互的规范化记录214。规范化记录驻留在至少一个本地存储器中;记录214可用于引导与领导者浏览器相同的机器上的随从者浏览器和/或可通过网络被传送至远程机器上的随从者浏览器。规范化记录包括元素指定符602、动作类别604并且可任选地包括其他数据606,诸如例如时间戳、领导者浏览器系统的其他标识符的地址、加载到领导者浏览器中的网页文档的URI或其他地址、校验和、和/或数字签名。
元素指定符602指定相关元素。例如,相关元素可由元素ID属性值308、对象名称608、DOM树位置310或属性值集312来指定。在一些情况下,相关元素可以不被精确地且简明地指定,如同可对于上述内容完成的,但尽管如此可以至少大致地指定。元素逼近610可以例如基于鼠标坐标以及到已知宽度和高度的显示区域的中心点的距离来形成为最佳猜测。类似地,所呈现的页面可根据DOM元素显示区域来被划分成瓦块,并且鼠标坐标可用于大致标识相关元素。
动作类别604指定用户输入鼠标信号类别。输入可被视作例如窗口动作612、鼠标动作614、键盘动作616或另一种动作信号618。
窗口动作612涉及浏览器界面窗口上的用户动作,诸如在屏幕上移动窗口的位置、调整屏幕上的窗口大小、将窗口最小化成系统托盘、在屏幕上将窗口区域最大化等动作。
鼠标动作614可涉及用鼠标、笔、触摸屏或类似输入设备作出的用户动作。或者,鼠标动作614可以只涉及用鼠标采取的动作,并且可使用其他类别604来处理其他输入设备或者可以忽略其他输入设备。除非另外指明,否则鼠标动作涉及用鼠标和/或用任何其他定点设备(笔、触摸屏、跟踪球、触摸垫等)来采取的动作。在一些实施方式中,可能的鼠标动作包括以下各项中的一个或多个:鼠标悬停(当鼠标最初进入元素的屏幕区域时,例如当鼠标驱动的光标404最初进入屏幕区域406时);鼠标移开(当鼠标离开元素的区域时);鼠标移动(当鼠标在元素的区域中移动时);鼠标按下(在元素区域上方按下鼠标按钮);鼠标提起(在元素区域上方释放鼠标按钮);鼠标点击(当鼠标按下+鼠标提起组合在同一位置上发生时);鼠标双击。一些实施方式只实现上述鼠标动作中的某一些,而一些实施方式实现其他鼠标/定点设备动作。
键盘动作616涉及用机械或虚拟(屏幕上的)键盘来作出的用户动作。在一些实施方式中,可能的键盘动作包括以下各项中的一个或多个:键按下、键提起、键按压(快速按下-提起组合)。
在一些实施方式中,跨浏览器结构包括一个或多个规范化记录214,这些记录各自具有相关元素208的元素ID属性值308以及与以下鼠标动作614中的至少一个相对应的动作类别604值:鼠标点击、鼠标悬停、键盘。在一些实施方式中,跨浏览器结构包括一个或多个规范化记录214,这些记录各自具有相关元素208的对象名称608、相关元素208的DOM树位置310以及与以下各项中的至少一个相对应的动作类别604值:鼠标点击、鼠标悬停、键盘动作616。当然,基于本说明书的其他变体也是可能的。
方法
图7在流程图700中示出一些过程方法实施方式。附图中示出的方法在一些实施方式中可以由在需要很少或不需要同时(实况)用户输入的情况下回放规范化记录214的序列的领导者浏览器202和交互性测试代码204自动执行。除非另外指明,否则也可以部分自动执行并且部分手动执行该方法。特定步骤可以自动完成,而不管哪些步骤被特别描述为自动。在给定实施方式中,方法的零个或更多个所示步骤可以重复,也许使用不同的参数或数据来操作。一实施方式中的各步骤还可以按与在图7中布置的自顶向下的次序所不同的次序来完成。各步骤可以串行执行、以部分覆盖的方式执行、或完全并行地执行。遍历流程图700以指示在方法期间执行各步骤的次序可以随该方法的一次执行到该方法的另一次执行而变化。该流程图遍历次序也可随一个方法实施方式到另一方法实施方式而变化。假定所执行的方法是可操作的并且符合至少一个权利要求,则各步骤还可被省略、组合、重命名、重组、或以其他方式与所示流程分开。
在此提供各示例以帮助示出本发明技术的各方面,但本文中给出的各示例不描述所有可能的实施方式。实施方式不限于在此提供的具体实现、安排、显示、特征、方法、或场景。给定实施方式可包括例如附加或不同的特征、机制和/或数据结构,并且能以其他方式与在此提供的示例分开。
在截取步骤702期间,一实施方式阻塞、重定向或以其他方式截取用户输入120。步骤702可使用例如透明窗口302、所插入的事件处理程序304和/或其他机制来完成。
在标识步骤704期间,一实施方式标识相关领导者元素208,即向其指示用户输入的元素。步骤704能以各种方式来完成。例如,鼠标动作屏幕位置可以与元素屏幕区域进行匹配以标识目标元素。作为另一示例,可将事件处理程序插入到截取事件中,实际上令原始事件处理程序确定定标哪一个元素,并且然后接进该确定以标识相关元素。作为另一示例,DOM树132可通过将方法316插入到元素上来变成增强的DOM树314,所插入的方法被配置成引发事件,发送消息,或以其他方式向交互性测试代码通知所述元素何时接收输入。
在定位步骤706期间,一实施方式定位相关随从者元素210,即对应于相关领导者元素208的元素。步骤706可使用各种确定708-714来完成。例如,在元素ID确定步骤708期间,在相关领导者元素具有将其与所述页面128的其他元素区分开来的ID属性值308的情况下可用,步骤706可通过找到(例如,通过索引访问或树遍历)随从者浏览器中的具有相同ID属性值的元素来完成。否则在树位置确定步骤710期间,相关领导者元素在DOM树中的位置310能够例如以在DOM树的指定遍历期间遇到的序数元素的形式来使用,或者用作按从根采取的指示在每一个中间元素处遵循哪一个树链接的指定路径所到达的目的地元素。在确定步骤712期间,使用属性值的标识集合312来测试随从者DOM树中的每一个可能的元素直到定位相关随从者元素(该元素具有相同的值集312)。在视图位置确定步骤714期间,在一些实施方式中还可使用基于相对于视口的位置的元素逼近610,例如通过基于鼠标坐标和屏幕区域来作出猜测,或者通过按DOM元素将页面瓦块化成各个屏幕区域。
在事件生成步骤716期间,一实施方式生成系统级事件以封装诸如窗口动作612、鼠标动作614或键盘动作616等动作。不像熟悉的系统级事件,所生成的系统级事件响应于规范化记录214或来自领导者浏览器交互性测试代码,而非来自在孤立的浏览器处指示的用户输入的其他通信而发生。然而,相同的事件数据格式在所生成716的系统级事件中可以像在熟悉的系统级事件中那样使用。
在调用步骤718期间,一实施方式调用增强的DOM树314中定义的所插入的方法316来就所调用的方法附连到的元素130的环境或内容更新交互性测试代码204。可使用熟悉的方法调用机制。注意,一些实施方式捕捉事件以及与该事件相关联的元素。为了将事件播放回随从者浏览器中的相同元素,一些实施方式在随从者浏览器中的元素的位置处模拟系统事件。增强的DOM不一定在每一实施方式中使用。一些实施方式通过浏览器(而非系统)模拟事件,因此不需要增强的DOM;替代地,该实施方式遍历树并向相关对象播放事件。
在冻结促进步骤720,也被称为冻结步骤720期间,一实施方式冻结或帮助冻结浏览器202/206中的DOM元素130的状态。例如,步骤720可包括挂起722代码、层叠样式表代码或另一脚本语言216的执行。步骤720可包括使用例如断点或HALT(停止)指令来挂起724浏览器202/206执行。步骤720可包括挂起726浏览器202/206或浏览器202/206设备和web服务器142之间的通信,例如通过停止AJAX(异步和XML)以及使用XML、HTML、HTTP、TCP/IP和/或其他熟悉的格式和协议来进行通信的其他进程。步骤720可包括挂起728用于模仿对随从者浏览器的直接用户输入的系统级事件的生成716。
在询问步骤730期间,一实施方式就元素130的位置、样式、属性在场、属性值和/或其他特性询问该元素可使用用于询问元素的熟悉机制。一些实施方式允许(且一些实施方式要求)开发者在询问该浏览器中的元素之前冻结720该浏览器。在询问后,所挂起的操作可以恢复以继续对针对领导者浏览器的附加输入进行交互性测试。
在互换步骤732期间,一些实施方式互换领导者浏览器和指定的随从者浏览器的角色,由此随从者变成新的领导者而旧领导者变成随从者。步骤732可包括例如更新用于阻塞对随从者的直接用户输入并截取新领导者的事件并将这些事件发送到交互性测试代码204以便封装在规范化记录214中的机制或使该机制就位,这些规范化记录214被发送到新随从者以便在该随从者中引起系统级事件的生成716。步骤732可以在指定的光标404离开领导者的显示区域402并进入随从者的显示区域时自动完成。还可使用菜单选项或其他熟悉的选择机制来指示应互换角色。
在记录步骤734期间,一实施方式例如通过将一个或多个规范化记录214存储在介质112中来记录用户-浏览器交互。
在显示步骤736期间,一实施方式显示一个或多个浏览器。在一些实施方式中,领导者浏览器202和随从者浏览器206被一起显示在单个屏幕上,如图4所示。在一些实施方式中,领导者浏览器被显示在一个设备上并且至少一个随从者浏览器被显示在不同设备上。例如,图5示出了其中各浏览器被显示在四个设备上的配置。步骤736可以使用熟悉的用户界面机制来完成。
在拟合(snap)步骤738期间,一实施方式将光标404拟合到对应于目标元素的屏幕位置。考虑仅记录鼠标移动和键盘输入,且不将这些用户输入相关到如此处所描述的DOM元素的软件。如果所记录的输入被重放到元素由于例如布局引擎差异而具有稍微不同的屏幕区域的不同浏览器中,则不同的元素可以在回放期间比在记录期间更好地接收输入。在此处所描述的实施方式的情况下,相反,相同的元素可接收输入事件。在回放期间,正在每一个元素的基础上进行处理输入的可视指示可以是光标在元素区域之间拟合(跳跃/间断地移动)而不是像它在视频记录中那样连续移动。在一些实施方式中,拟合步骤738在将活动回放到随从者浏览器中时是可任选步骤。
在传送步骤740期间,通过网络将记录214传送到随从者浏览器。在一些实施方式中,传送步骤740在将活动回放到远程随从者浏览器中时执行。
在应用步骤742期间,将用户输入应用于元素。例如,用户输入120可以通过允许领导者浏览器就像它在缺少交互性测试代码204的情况下通常会做的那样创建系统级事件来应用于该领导者浏览器中的元素,不同之处在于作出该输入的规范化记录214以供随从者浏览器使用。相同的用户输入120然后可通过基于规范化记录214来生成716系统级事件来应用于随从者浏览器中的元素。应用步骤742不一定要求将用户输入应用于领导者浏览器;截取该输入事件并令其漏过即可。即,不一定主动应用用户输入,而可改为被动应用该输入。
上述步骤及其相互关系在下文中结合各种实施方式来更详细地讨论。
一些实施方式提供了利用至少一个设备的多浏览器交互性测试过程,该设备具有至少一个显示器、至少一个逻辑处理器以及在操作上与逻辑处理器和显示器通信的至少一个存储器。该过程包括截取702对领导者浏览器202的用户输入120。该过程还包括标识704相关领导者元素208,即领导者浏览器中的被配置成响应所截取的用户输入的文档对象模型元素130。该过程还包括定位706相关随从者元素210,即随从者浏览器206中的对应于相关领导者元素的文档对象模型元素。该过程还包括将用户输入应用742于相关领导者元素,并将该用户输入应用742于相关随从者元素。在一些实施方式中,该过程包括在多个随从者浏览器中定位706相关随从者元素,并且在那些随从者浏览器中的至少一个中应用742用户输入。
在一些实施方式中,定位706相关随从者元素的步骤包括以下动作中的至少一个:确定708随从者元素具有还标识相关领导者元素的标识元素ID属性值;确定710随从者元素具有还标识相关领导者元素的标识DOM树位置;确定712随从者元素具有还标识相关领导者元素的元素属性值集;确定712、714随从者元素具有还标识相关领导者元素的元素属性值和相对于视口原点的位置的组合。在一些实施方式中,使用动态确定的元素属性值集;检查DOM树中的元素的属性值并且找到并使用只属于相关领导者元素的值集。在一些实施方式中,使用预定元素属性值集,这基于该集合将始终把任何领导者元素130与其他领导者元素区分开来的假设。然而,在某些情形中,元素属性值集将匹配多个元素,然后将默认或通过用户选择来选择其中一个元素。在一些实施方式中,在多个浏览器中加载相同文档,并且将这些浏览器的大小调整为相同的像素尺寸。
在一些实施方式中,将用户输入应用742于相关随从者元素的步骤包括在随从者浏览器中生成716系统级事件而不管缺少对该随从者浏览器的直接用户输入。这样生成的事件通过在元素130层面重复被直接给予领导者浏览器的用户输入来模仿(模拟)直接用户输入。
在一些实施方式中,将用户输入应用742于相关随从者元素的步骤包括在相关随从者元素上调用增强的DOM树中所定义的方法316。这些方法316也可被称为由DOM定义的方法。方法316包括但不一定限于脚本语言方法(例如,在Sun微系统代码、代码、微软VBScriptTM代码中),以及用诸如例如C#或C++等其他编程语言的方法。DOM定义DOM的元素130展示的方法,并且这些方法可以从脚本语言216和其他语言调用。
在一些实施方式中,该过程包括通过以下动作中的至少一个来促进720状态冻结:挂起722领导者浏览器中的脚本语言(例如,关闭机器);挂起722随从者浏览器中的脚本语言;挂起724浏览器的执行;挂起726领导者浏览器和web服务器之间的通信(例如,关闭AJAX);挂起726随从者浏览器和web服务器之间的通信;挂起728随从者浏览器中的模拟的系统级事件,即模拟对随从者浏览器的直接用户输入但并非由该用户输入产生的事件的生成。
在一些实施方式中,该过程包括通过读取属性值来就浏览器元素的位置和/或样式询问730浏览器。在一些实施方式中,询问730在冻结状态期间发生。否则,DOM可以在正在进行询问时改变,这可使得读取变得不可靠。可以向用户显示通过询问730获取的信息和/或记录这些信息以供可能的稍后检查是另一种可能。在一些实施方式中,询问自动发生而无需冻结状态,例如,断点可基于询问:“在元素X样式变成S1时停止”。
一些实施方式包括互换732浏览器角色以使得领导者浏览器变成随从者浏览器,而随从者浏览器变成领导者浏览器,并且然后对经互换的浏览器角色重复标识704、定位706和应用742步骤。
一些实施方式包括记录用户和领导者浏览器之间的交互。所记录的信息然后可以在一个或多个浏览器中回放;回放在其在多个浏览器中发生的情况下可以是同时的或顺序的。
一些实施方式在用数据和指令配置的计算机可读存储介质中实现,这些指令在被至少一个处理器执行时使该至少一个处理器执行一种用于帮助多浏览器交互性测试的过程。该过程包括标识704相关领导者元素,即领导者浏览器中的被配置成响应用户输入的文档对象模型元素;定位706相关随从者元素,即随从者浏览器中的对应于相关领导者元素的文档对象模型元素;将用户输入应用742于相关随从者元素;并且询问730以下各项中的至少一个:相关领导者元素、相关随从者元素,由此获取以下各项中的至少一个:位置信息、样式信息。
在一些实施方式中,该过程还包括阻塞(一种类型的截取702)随从者浏览器接收直接用户输入。
在一些实施方式中,该过程还包括在单个设备上显示736领导者浏览器和随从者浏览器,同时将用户输入应用742于相关随从者元素。图4示出了一个这样的可能实施方式。
在一些实施方式中,该过程还包括向随从者浏览器传送740用户与领导者浏览器的交互的规范化记录214。
在一些实施方式中,该过程还包括重新编写随从者浏览器中所显示的文档的HTML,该重新编写(一种形式的截取702)对应于用户与领导者浏览器的交互。
在一些实施方式中,该过程还包括在随从者浏览器中通过生成716事件,例如向元素X发送点击来模拟用户输入。一些实施方式使用重新编写以插入代码的页面来钩住事件处理程序304作为模拟器。一些实施方式避免重新编写而改为使用经由DOM展示的方法/事件。
在一些实施方式中,该过程还包括在询问步骤后将显示光标拟合738回询问前屏幕位置。直接由鼠标驱动的实际光标在领导者浏览器中;一些实施方式在随从者浏览器中模拟光标。取决于实现,随从者光标不一定跟踪领导者光标的每一次移动。例如,交互性测试代码可以忽略元素区域406中的移动并且仅仅使该光标在元素区域之间跳跃。事实上,因为相同的元素130在不同的浏览器中可以不同地布局,所以随从者光标可以在交互性测试期间在元素区域之间很好地跳跃。在一些实施方式中,领导者浏览器的光标始终跟踪鼠标。随从者浏览器的光标只可在元素之间移动,或者至少不完全跟踪元素中的所有鼠标移动。
在一些实施方式中,该过程还包括自动互换732浏览器角色以使得响应于分配给当前领导者浏览器的屏幕区域之外的用户输入,当前领导者浏览器变成随从者浏览器,而随从者浏览器变成新领导者浏览器。分配给当前领导者浏览器的屏幕区域之外的用户输入可以是例如特殊键盘命令或当前领导者浏览器的窗口之外的鼠标/笔/触摸屏敲击。
经配置的介质
一些实施方式包括经配置的计算机可读存储介质112。介质112可包括盘(磁盘、光盘或其他)、RAM、EEPROM或其他ROM、和/或其他可配置存储器,具体包括非瞬态计算机可读介质(与电线和其他传播信号介质相对)。该经配置的存储介质具体可以是可移动存储介质114,诸如CD、DVD,或闪存。可以是可移动或不可移动并且可以是易失性或非易失性的通用存储器可被配置成使用数据118和指令116形式的从可移动介质114和/或诸如网络连接等另一源读取的诸如交互性测试代码204、机制212和/或规范化记录214等项目来生成经配置的介质的实施方式。经配置的介质112能够使计算机系统执行用于通过如此处所公开的交互性测试来变换数据的方法步骤。图1到7因而帮助示出经配置的存储介质实施方式和方法实施方式,以及系统和方法实施方式。具体而言,图7中示出的,或在此以其它方式教导的任何方法步骤,可被用来帮助配置存储介质以形成经配置的介质实施方式。
附加示例
以下提供附加细节和设计考虑。与在此的其他示例一样,在给定实施方式中,所描述的特征可以单独地使用和/或组合使用,或根本不使用。
在HTML页面128上,所有单独的页面元素130都被组织在被称为文档对象模型(DOM)的树分层结构中。每一个DOM元素130都可以经由事件机制来监听用户发起的动作并对其作出反应。DOM分层结构可随浏览器变化,并且甚至随浏览器版本变化。使用此处的教导,对于给定页面,可以规范化浏览器DOM以使得可以相同地对待这些分层结构。各实施方式提供了用于跨一定范围的浏览器重新应用规范化的树元素消息(例如,记录214)的机制。各实施方式允许开发者在所创建的交互跨一定范围的其他支持的浏览器在DOM元素层面重复时在一个浏览器中查看这些交互。不像针对只聚焦页面布局的跨浏览器诊断和调试的解决方案,此处所描述的各实施方式允许交互性测试。
在某些实施方式中,用户可以操作领导者浏览器以及任意数量的随从者浏览器中的页面显示。在领导者浏览器中采取的用户发起的动作(例如,点击、鼠标悬停、拖拽事件)的结果在随从者浏览器中近乎实时地显示。一些实施方式通过截取702DOM对象上的事件并且然后在其他浏览器中的相同页面元素上重放这些事件来操作。这允许用户评估该页面的交互行为是否对于各浏览器都相同地操作。由于浏览器呈现差异,DOM元素有时在领导者和随从者浏览器上将不位于相同物理(x,y)屏幕位置中。由此,各实施方式并非简单地在窗口中的给定位置处模拟系统事件,而是改为定位706随从者浏览器DOM中的受影响的元素并将操作应用于该元素。
一些实施方式提供用于生成和记录被描述为针对标记元素的操作以及应用级消息(例如,显式鼠标坐标)的页面交互的机制。一些实施方式提供用于提升/降低去往/来自DOM树中的元素(诸如<li>标签上方的悬停)的系统消息(诸如特定屏幕坐标处的鼠标移动)的机制。
在一些实施方式中,随从者浏览器可位于与主浏览器相同的物理机器上,或位于跨本地网络或因特网通信的不同机器上。一些实施方式包括在相同机器上主存多个浏览器并允许容易地比较和一起查看这些浏览器的交互性测试代码204界面。
在一些实施方式中,交互性可以在任何时刻冻结以便跨浏览器比较布局。可以基于熟悉或发明性机制来利用用于查看正在应用什么操作以及什么操作已被应用于哪些元素的界面。一些工具提供用于跨多个浏览器标识页面布局问题的跨浏览器调试和诊断。此处所描述的各实施方式解决了附加方面。
一方面关注能够如何测试需要某些交互性来进入特定状态的网页的布局。例如,登录屏幕之后的网页128需要在能够分析感兴趣的页面布局之前填充并比较登录信息。为了比较多个浏览器中的页面,每一个浏览器(领导者和随从者)接收相同的登录信息并(几乎)同时将该信息提交给服务器。作为另一示例,在比较隐藏在所谓的“可折叠控件”之后的内容的情况下,应在比较内容布局之前触发可折叠控件。此处所描述的各实施方式允许触发可折叠控件,由此可以比较所有感兴趣浏览器中的布局。
另一方面关注如何能够跨多个浏览器测试交互性。逐渐地,网页128结合交互元素,诸如菜单、树控件、重叠控件、照片库等。因为HTML/CSS和机器实现跨不同的浏览器变化,所以开发者可以通过同时跨多个浏览器测试该交互性以确保其正确地工作来受益。
一些熟悉的方法帮助网页作者通过在呈现在多个浏览器中时取得网页的图片并且然后提供一组工具来帮助比较这些图片以及用于创建这些图片的元素来调试跨浏览器布局问题。相反,此处所描述的一些实施方式链接多个实况浏览器,由此允许跨这些浏览器全面地比较交互性。
在一些实施方式中,浏览器被主存在公共界面中,这允许用户容易地选择要比较的浏览器。在图4所示的两个浏览器的情况下,左边的浏览器是“基准”或领导者浏览器,而右边的浏览器是随从者。一些实施方式允许多个随从者浏览器。
假定网页具有在用户将光标移至导航条中的单词上方时可见的一组弹出菜单。HTML文档由填充被称为文档对象模型(DOM)的树状分层结构的一系列元素130构成。每一种类型的元素都具有它可响应的各种事件,诸如鼠标悬停、点击、双击、聚焦等。这些事件还可从子元素向上传播至其父元素。一些实施方式阻塞随从者浏览器接收关于直接窗口输入的任何系统级消息,因此随从者将不会对其各自的窗口中的任何直接点击或鼠标移动作出反应。在领导者浏览器窗口中,截取鼠标和键盘事件。对于鼠标事件,跟踪光标的位置,并且光标下面的元素130与每一个鼠标事件相关联,例如在规范化记录214中。在键盘事件的情况下,带有焦点的元素与每一个键输入相关联。在一个示例中,鼠标悬停事件在用户将其光标移至导航条中的单词“About Me(关于我)”的上方时发生。
一旦检索到或以其他方式标识到事件及相关联的元素,就将这些事件应用于随从者浏览器。与领导者窗口相关联(而非与页面元素相关联)的消息,诸如移动和调整大小等,以系统消息的形式被应用于随从者浏览器的窗口。应用于领导者浏览器中的页面元素的事件被应用于随从者浏览器中的对应的页面元素。对应的元素在随从者浏览器中的显示(屏幕和/或视口)位置可以不匹配该元素在领导者浏览器中的位置,因此找到所涉及的元素的位置。由于DOM树对于领导者和随从者浏览器而言可以是不同的,因此目标页面元素在领导者浏览器中通过算法标识并在随从者浏览器中定位。一旦找到元素,事件就通过程序应用于该元素。当事件被重放至随从者浏览器中的对应元素时,这些随从者浏览器将在页面跨不同的浏览器兼容的情况下展示与领导者相同的行为,或者在该页面不兼容的情况下展示不同的行为。
在某些情况下,用户可能想要测试/检查元素在特定交互状态时,诸如在展开菜单时的布局。在这种情况下,一些实施方式可冻结交互性。在一个示例中,敲击F11键将冻结领导者和随从者浏览器的状态。此时,用户可以向浏览器询问730关于每一个元素的位置和样式信息以确定任何差异的源可能是什么。再次敲击F11将解冻交互性,以便允许用户再一次在浏览器中触发事件。
各实施方式不限于安装在单个机器上的浏览器。此处的教导可用于控制连接网络的设备上的浏览器。这可用于测试例如和Windows机器上的浏览器之间的兼容性。在非本地浏览器的情况下,一些实施方式使用从领导者浏览器接收消息并将其应用于远程随从者的交互性测试实用程序。
显示和/或记录事件序列以及向其应用这些事件的元素也可以是有用的。这可用于帮助调试页面或在不同的时刻重放序列。
图8示出了一些实施方式的另一视图。开发者选择802领导者浏览器202并选择804一个或多个随从者浏览器206。交互性测试代码例如通过在安装机制212后阻塞或以其他方式截取702直接用户输入来在随从者浏览器上禁用806事件。事件306发生在领导者浏览器上,并且交互性测试代码204确定该事件是是窗口事件808、鼠标事件810、还是键盘事件812。捕捉814窗口事件且窗口对象被记录在例如规范化记录214中。然后将事件应用742于随从者浏览器各自的窗口。同样捕捉816鼠标事件并且标识704鼠标事件针对的对象(元素)。同样捕捉818键盘事件并且标识704键盘事件针对的对象(元素)。在标识704领导者中的对象后,在随从者中定位706对应的对象,并且将事件应用742于随从者对象。开发者可冻结720浏览器的状态。可以询问730所选对象,之后解冻820浏览器并且继续经由对领导者浏览器的直接输入来于对象交互并且在随从者浏览器中模拟匹配的交互。
结论
虽然在此将具体实施方式明确示出并描述为方法、已配置介质,或系统,但可以明白,一种类型的实施方式的讨论一般也延及其他实施方式类型。例如,结合图7和8的方法描述还帮助描述经配置的介质,并帮助描述如结合其他附图讨论的那些系统和制品等系统和制品的操作。来自一个实施方式的限制并不需要在另一实施方式中。具体而言,方法不一定需要限于在讨论诸如经配置的介质等系统或制品时呈现的数据结构和安排。
附图中示出的每一项也并不一定存在于每一实施方式中。相反,一实施方式可包含附图中未明确示出的项。虽然在文中和附图中通过具体示例示出了一些可能的实施方式,但各实施方式可以与这些示例不同。例如,一示例的具体特征可被忽略、重命名、不同地编组、重复、以硬件和/或软件来不同地初始化、或作为出现在两个或更多个示例中的特征的混合。在一些实施方式中,在一个位置处示出的功能也可以在不同的位置处提供。
如此处所使用的“被配置成响应所截取的用户输入”和类似语言不一定要求响应发生。元素可以仅仅由于是用户输入的预期目标而“被配置成响应用户输入”。由此,被配置成响应用户输入的元素不一定具有为某一用户事件注册的事件处理程序。一实施方式可截取事件,即使目标元素(被配置成响应该输入的元素)实际上不会响应于该事件而做任何事。例如,一个浏览器中的DIV上的鼠标悬停可以不做任何事,而另一浏览器中的同一DIV具有改变其背景颜色的鼠标悬停。一实施方式仍旧可以截取领导者浏览器中的事件,即使随从者浏览器将不会响应于该事件而采取动作。
在全文中通过附图标记引用了各附图。在附图中或文中的与给定附图标记相关联的措辞中的任何明显的矛盾,应被理解为简单地拓宽该附图标记所引用的事物的范围。
如本文所使用的,诸如“一”和“该”等词语包括所指示的项或步骤中的一个或多个。具体而言,在权利要求书中,对项的引用一般意味着存在至少一个这样的项,并且对步骤的引用意味着执行这一步骤的至少一个实例。
标题只是出于方便的目的;关于给定主题的信息可以在其标题指示该主题的章节之外找到。
所提交的所有权利要求和摘要是该说明书的一部分。
尽管在附图中示出并在以上描述了各示例性实施方式,但对本领域技术人员显而易见的是,可以作出不背离权利要求书中阐明的原理和概念的多种修改。尽管已经用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。给定定义或示例中标识的每一措施或方面,不一定存在或不一定用于每一实施方式。相反,所描述的具体特征和动作是作为供在实现权利要求时考虑的示例而公开的。
落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。
Claims (20)
1.一种具有各自的文档对象模型的多浏览器的交互性测试方法,所述方法包括以下步骤:
将一浏览器指定为领导者浏览器,所述领导者浏览器具有布局引擎;
将另外一个或多个浏览器指定为随从者浏览器,所述随从者浏览器自动跟随对所述领导者浏览器的用户输入,并具有包含与所述领导者浏览器的布局引擎不同的代码的布局引擎;
自动截取对所述领导者浏览器的用户输入;
在所述领导者浏览器的文档对象模型中自动标识相关领导者元素,所述领导者元素被配置成响应所截取的用户输入;
在所述随从者浏览器的文档对象模型中自动定位相关随从者元素,所述随从者元素对应于所述相关领导者元素;
自动将所截取的用户输入应用于所述相关领导者元素;
自动将所截取的用户输入应用于所述相关随从者元素;以及
将所述领导者浏览器的布局引擎的结果与所述随从者浏览器的布局引擎的结果进行比较。
2.如权利要求1所述的方法,其特征在于,所述定位相关随从者元素的步骤包括以下动作中的至少一个:
确定所述随从者元素具有还标识所述相关领导者元素的标识元素ID属性值;
确定所述随从者元素具有还标识所述相关领导者元素的标识DOM树位置;
确定所述随从者元素具有还标识所述相关领导者元素的元素属性值集;
确定所述随从者元素具有还标识所述相关领导者元素的元素属性值和相对于视口原点的位置的组合。
3.如权利要求1所述的方法,其特征在于,所述将所述用户输入应用于所述相关随从者元素的步骤包括以下动作中的至少一个:
在所述随从者浏览器中生成系统级事件而不管对所述随从者浏览器的直接用户输入的缺失;
在所述相关随从者元素上调用增强的DOM树中定义的方法。
4.如权利要求1所述的方法,其特征在于,还包括通过执行以下动作中的至少一个来促进状态冻结:
挂起所述领导者浏览器中的脚本语言;
挂起所述随从者浏览器中的脚本语言;
挂起浏览器的执行;
挂起所述领导者浏览器和web服务器之间的通信;
挂起所述随从者浏览器和web服务器之间的通信;
挂起所述随从者浏览器中的模仿的系统级事件的生成,所述系统级事件即模拟对所述随从者浏览器的直接用户输入但并非由所述直接用户输入导致的事件。
5.如权利要求1所述的方法,其特征在于,还包括就浏览器元素的位置和/或样式来询问浏览器。
6.如权利要求1所述的方法,其特征在于,还包括:
互换浏览器角色以使得所述领导者浏览器变成随从者浏览器,而所述随从者浏览器变成领导者浏览器;并且然后
对经互换的浏览器角色重复所述标识、定位和应用步骤。
7.如权利要求1所述的方法,其特征在于,还包括记录用户和所述领导者浏览器之间的交互。
8.一种具有各自的文档对象模型的多浏览器的交互性测试系统,包括:
至少一个逻辑处理器;
在操作上与逻辑处理器通信的至少一个存储器;
具有驻留在本地存储器中的领导者文档对象模型元素的领导者浏览器,所述领导者浏览器具有布局引擎;
具有驻留在本地存储器中的随从者文档对象模型元素的随从者浏览器,所述随从者浏览器具有包含与所述领导者浏览器的布局引擎不同的代码的布局引擎;以及
驻留在至少一个本地存储器中的交互性测试代码,所述交互性测试代码(i)被配置成在所述随从者文档对象模型元素中自动定位对应于相关领导者元素的相关随从者元素,所述相关领导者元素是由对所述领导者浏览器的用户输入所定标的领导者文档对象模型元素,并且(ii)被配置成将所述用户输入应用于自动定位的所述相关随从者元素。
9.如权利要求8所述的系统,其特征在于,所述领导者浏览器、所述随从者浏览器和所述交互性测试代码全都驻留在同一设备上。
10.如权利要求8所述的系统,其特征在于,所述领导者浏览器驻留在具有第一逻辑处理器和第一本地存储器的第一设备上,所述随从者浏览器驻留在具有第二逻辑处理器和第二本地存储器的第二设备上,并且所述交互性测试代码的至少一部分驻留在所述设备的每一个上。
11.如权利要求10所述的系统,其特征在于:
设备类别包括工作站设备、便携式设备、嵌入式设备和电话设备;
所述第一设备和所述第二设备具有不同的设备类别;并且
交互性测试代码不一定在每一种设备类别中实现。
12.如权利要求8所述的系统,其特征在于,还包括至少一个附加随从者浏览器中的至少一个附加相关随从者元素,并且其中所述交互性测试代码被配置成将所述用户输入应用于所述附加相关随从者元素中的至少一个。
13.如权利要求8所述的系统,其特征在于,还包括以下各项中的至少一个:
透明窗口,所述透明窗口位于浏览器窗口的前端以允许所述交互性测试代码截取在所述浏览器处指示的用户输入设备信号;
用于浏览器的窗口处理程序上的挂钩;
模拟用户输入事件的事件处理程序,所述模拟指捕捉并响应;
插入在重新编写的网页中的事件处理程序,所述事件处理程序不存在于web服务器上的网页的原始版本中,所述事件处理程序被配置成处理由用户输入设备信号导致的事件。
14.如权利要求8所述的系统,其特征在于,还包括用户与所述领导者浏览器的交互的规范化记录,所述规范化记录驻留在至少一个本地存储器中。
15.一种用于帮助具有各自的文档对象模型的多浏览器的交互性测试的方法,所述方法包括以下步骤:
自动截取对领导者浏览器的用户输入,所述领导者浏览器具有布局引擎;
在所述领导者浏览器的文档对象模型中自动标识相关领导者元素,所述领导者元素被配置成响应所截取的用户输入;
在随从者浏览器的文档对象模型中定位相关随从者元素,所述随从者浏览器具有包含与所述领导者浏览器的布局引擎不同的代码的布局引擎,所述随从者元素对应于所述相关领导者元素;
自动将所截取的用户输入应用于所述领导者元素;
自动将所截取的用户输入应用于所述相关随从者元素;
将所述领导者浏览器的布局引擎的结果与不同的所述随从者浏览器的布局引擎的结果进行比较;以及
询问以下各项中的至少一个:相关领导者元素、相关随从者元素,由此获取以下各项中的至少一个:位置信息、样式信息。
16.如权利要求15所述的方法,其特征在于,还包括阻塞所述随从者浏览器接收直接用户输入。
17.如权利要求15所述的方法,其特征在于,还包括在单个设备上显示所述领导者浏览器和所述随从者浏览器,同时将所述用户输入应用于所述相关随从者元素。
18.如权利要求15所述的方法,其特征在于,还包括以下动作中的至少一个:
向所述随从者浏览器传送用户与所述领导者浏览器的交互的规范化记录;
重新编写所述随从者浏览器中所显示的文档的HTML,所述重新编写对应于用户与所述领导者浏览器的交互;
在所述随从者浏览器中模拟用户输入事件。
19.如权利要求15所述的方法,其特征在于,还包括在所述询问步骤后将显示光标拟合回询问前屏幕位置。
20.如权利要求15所述的方法,其特征在于,还包括自动互换浏览器角色以使得响应于分配给当前领导者浏览器的屏幕区域之外的用户输入,所述当前领导者浏览器变成随从者浏览器,而所述随从者浏览器变成新领导浏览器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/686,436 | 2010-01-13 | ||
US12/686,436 US20110173589A1 (en) | 2010-01-13 | 2010-01-13 | Cross-Browser Interactivity Testing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102129405A CN102129405A (zh) | 2011-07-20 |
CN102129405B true CN102129405B (zh) | 2015-07-22 |
Family
ID=44259506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110026360.5A Active CN102129405B (zh) | 2010-01-13 | 2011-01-12 | 跨浏览器交互性测试 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110173589A1 (zh) |
CN (1) | CN102129405B (zh) |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8312413B2 (en) * | 2010-01-22 | 2012-11-13 | International Business Machines Corporation | Navigating analytical tools using layout software |
JP5682996B2 (ja) * | 2010-02-04 | 2015-03-11 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | クライアントプログラム、端末、サーバ装置、サーバプログラム、システムおよび方法 |
US9111031B2 (en) * | 2010-04-16 | 2015-08-18 | Salesforce.Com, Inc. | Method and system for simulating and analyzing code execution in an on-demand service environment |
DE102010028944A1 (de) * | 2010-05-12 | 2011-11-17 | Bayerische Motoren Werke Aktiengesellschaft | Kraftfahrzeug mit einer Internetanbindung |
US20110289489A1 (en) * | 2010-05-20 | 2011-11-24 | Verizon Patent And Licensing Inc. | Concurrent cross browser testing |
US8694967B2 (en) * | 2010-06-11 | 2014-04-08 | Microsoft Corporation | User interface inventory |
US8498473B2 (en) * | 2010-08-24 | 2013-07-30 | Compuware Corporation | System for computationally quantifying similarities between images |
US20120054667A1 (en) * | 2010-08-31 | 2012-03-01 | Blackboard Inc. | Separate and simultaneous control of windows in windowing systems |
US9015226B2 (en) | 2011-01-06 | 2015-04-21 | Oracle International Corporation | Techniques for detecting new browser windows |
US8892635B2 (en) | 2011-01-06 | 2014-11-18 | Oracle International Corporation | Techniques for detecting inactive browser windows |
US8924934B2 (en) * | 2011-02-04 | 2014-12-30 | Oracle International Corporation | Automated test tool interface |
US9002139B2 (en) | 2011-02-16 | 2015-04-07 | Adobe Systems Incorporated | Methods and systems for automated image slicing |
US9424236B2 (en) | 2011-04-26 | 2016-08-23 | Oracle International Corporation | Filtered Stylesheets |
US8760395B2 (en) | 2011-05-31 | 2014-06-24 | Microsoft Corporation | Gesture recognition techniques |
US9720811B2 (en) * | 2011-06-29 | 2017-08-01 | Red Hat, Inc. | Unified model for visual component testing |
US9250872B2 (en) | 2011-10-19 | 2016-02-02 | Oracle International Corporation | Task flow interface in a popup region |
US8949352B2 (en) | 2011-10-28 | 2015-02-03 | Microsoft Corporation | Document sharing through browser |
US8635637B2 (en) | 2011-12-02 | 2014-01-21 | Microsoft Corporation | User interface presenting an animated avatar performing a media reaction |
US9100685B2 (en) | 2011-12-09 | 2015-08-04 | Microsoft Technology Licensing, Llc | Determining audience state or interest using passive sensor data |
US20130159555A1 (en) * | 2011-12-20 | 2013-06-20 | Microsoft Corporation | Input commands |
CN103186465B (zh) * | 2011-12-31 | 2015-10-28 | 北京新媒传信科技有限公司 | 网页用户界面的浏览器兼容性测试方法和系统 |
CN104714889B (zh) * | 2012-03-29 | 2019-04-02 | 北京奇虎科技有限公司 | 一种浏览器的测试方法和系统 |
CN102682080B (zh) * | 2012-03-31 | 2015-04-29 | 北京奇虎科技有限公司 | cookie信息共享方法及系统 |
CN104715186B (zh) * | 2012-03-31 | 2019-02-26 | 北京奇虎科技有限公司 | cookie信息共享方法及系统 |
US8898687B2 (en) | 2012-04-04 | 2014-11-25 | Microsoft Corporation | Controlling a media program based on a media reaction |
CA2775700C (en) | 2012-05-04 | 2013-07-23 | Microsoft Corporation | Determining a future portion of a currently presented media program |
CN103546330A (zh) * | 2012-07-11 | 2014-01-29 | 阿里巴巴集团控股有限公司 | 一种浏览器兼容性检测方法、装置及系统 |
CN108629041A (zh) * | 2012-07-19 | 2018-10-09 | 格兰斯电讯网络有限公司 | 协同浏览与其他形式的信息共享的集成 |
US9465882B2 (en) * | 2012-07-19 | 2016-10-11 | Adobe Systems Incorporated | Systems and methods for efficient storage of content and animation |
US8938683B2 (en) * | 2012-09-11 | 2015-01-20 | Ebay Inc. | Visual state comparator |
US9411782B2 (en) * | 2012-11-09 | 2016-08-09 | Adobe Systems Incorporated | Real time web development testing and reporting system |
US9305169B2 (en) * | 2012-12-18 | 2016-04-05 | Tinfoil Security, Inc. | System and methods for scalably identifying and characterizing structural differences between document object models |
US9742791B2 (en) | 2012-12-18 | 2017-08-22 | Tinfoil Security, Inc. | Site independent methods for deriving contextually tailored security vulnerability corrections for hardening solution stacks |
CN104050410A (zh) * | 2013-03-11 | 2014-09-17 | 腾讯科技(深圳)有限公司 | 创建ActiveX控件的方法和装置 |
CN104077119B (zh) * | 2013-03-29 | 2018-09-04 | 阿里巴巴集团控股有限公司 | 页面对比方法和装置 |
US9524277B2 (en) * | 2013-06-27 | 2016-12-20 | Paypal, Inc. | Execution and display of events in a plurality of web browsers and devices systems and method |
US9393918B2 (en) * | 2013-07-26 | 2016-07-19 | GM Global Technology Operations LLC | Methods, systems and apparatus for providing application generated information for presentation at an automotive head unit |
US11256385B2 (en) * | 2013-09-19 | 2022-02-22 | Micro Focus Llc | Application menu modification recommendations |
WO2015042987A1 (en) * | 2013-09-30 | 2015-04-02 | Hewlett-Packard Development Company, L.P. | Record and replay of operations on graphical objects |
CN104572429B (zh) * | 2013-10-16 | 2018-01-19 | 阿里巴巴集团控股有限公司 | 针对集合类元素的页面测试方法和装置 |
WO2015065364A1 (en) * | 2013-10-30 | 2015-05-07 | Hewlett-Packard Development Company, L.P. | Recording an application test |
WO2015062003A1 (en) * | 2013-10-31 | 2015-05-07 | Hewlett-Packard Development Company, L.P. | User interface tester |
CN103605521A (zh) * | 2013-11-21 | 2014-02-26 | 广州爱九游信息技术有限公司 | 一种实现界面对位的方法及装置 |
CN104077123B (zh) * | 2013-12-11 | 2016-05-04 | 腾讯科技(深圳)有限公司 | 界面显示方法、装置、终端和服务器 |
CN103902295B (zh) * | 2014-04-01 | 2017-12-05 | 广东威创视讯科技股份有限公司 | 一种光标绘制方法以及相关终端设备 |
WO2015179817A1 (en) * | 2014-05-23 | 2015-11-26 | Osix Corporation | Computer-implemented methods, computer readable media, and systems for initiating co-use of applications |
US9430361B1 (en) | 2014-06-24 | 2016-08-30 | Amazon Technologies, Inc. | Transition testing model for heterogeneous client environments |
US10097565B1 (en) | 2014-06-24 | 2018-10-09 | Amazon Technologies, Inc. | Managing browser security in a testing context |
US9317398B1 (en) * | 2014-06-24 | 2016-04-19 | Amazon Technologies, Inc. | Vendor and version independent browser driver |
US9336126B1 (en) | 2014-06-24 | 2016-05-10 | Amazon Technologies, Inc. | Client-side event logging for heterogeneous client environments |
US10691299B2 (en) | 2014-09-25 | 2020-06-23 | Oracle International Corporation | Display of hierarchical datasets using high-water mark scrolling |
US9836385B2 (en) * | 2014-11-24 | 2017-12-05 | Syntel, Inc. | Cross-browser web application testing tool |
CN105808416B (zh) * | 2014-12-27 | 2018-04-13 | 南车株洲电力机车研究所有限公司 | 一种人机图形交互界面的自动化测试方法和系统 |
US10146752B2 (en) | 2014-12-31 | 2018-12-04 | Quantum Metric, LLC | Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document |
US9766769B1 (en) | 2014-12-31 | 2017-09-19 | FullStory, Inc. | Evaluation of interactions with a user interface |
US10534512B2 (en) * | 2015-03-04 | 2020-01-14 | Tata Consultancy Services Limited | System and method for identifying web elements present on a web-page |
CN106033387B (zh) * | 2015-03-11 | 2018-09-11 | 广州市动景计算机科技有限公司 | 测试flash内部控件的方法和装置 |
US10386985B2 (en) * | 2015-07-14 | 2019-08-20 | International Business Machines Corporation | User interface pattern mapping |
CN105095076B (zh) * | 2015-07-17 | 2019-04-12 | 北京金山安全软件有限公司 | 应用软件版本间兼容性测试方法及装置 |
US10049085B2 (en) | 2015-08-31 | 2018-08-14 | Qualtrics, Llc | Presenting views of an electronic document |
US10506017B2 (en) | 2016-05-20 | 2019-12-10 | Adobe Inc. | Manipulation of PDF file content through HTTP requests |
US10521503B2 (en) | 2016-09-23 | 2019-12-31 | Qualtrics, Llc | Authenticating a respondent to an electronic survey |
US10706735B2 (en) | 2016-10-31 | 2020-07-07 | Qualtrics, Llc | Guiding creation of an electronic survey |
CN106790276B (zh) * | 2017-02-20 | 2020-05-19 | 山东威尔数据股份有限公司 | 一种基于浏览器协议的跨浏览器数据交互方法和装置 |
US9934129B1 (en) * | 2017-03-17 | 2018-04-03 | Google Llc | Determining application test results using screenshot metadata |
US10845953B1 (en) * | 2017-06-28 | 2020-11-24 | Amazon Technologies, Inc. | Identifying actionable content for navigation |
CN108334015A (zh) * | 2018-03-08 | 2018-07-27 | 华自科技股份有限公司 | 计算机监控系统实时性测试方法、装置和计算机设备 |
EP3610378B1 (en) * | 2018-05-07 | 2020-11-11 | Google LLC | Immersive web-based simulator for digital assistant-based applications |
CN109344058B (zh) * | 2018-09-18 | 2021-06-15 | 北京云测信息技术有限公司 | 一种小程序自动化测试方法 |
CN109634844B (zh) * | 2018-11-06 | 2023-12-22 | 三六零科技集团有限公司 | Js代码测试方法、装置及电子设备 |
US10884907B1 (en) * | 2019-08-26 | 2021-01-05 | Capital One Services, Llc | Methods and systems for automated testing using browser extension |
US11502923B1 (en) * | 2020-07-31 | 2022-11-15 | User Testing, Inc. | Analytic interactive visualization system and method |
CN112000576A (zh) * | 2020-08-25 | 2020-11-27 | 北京三快在线科技有限公司 | 代码数据的检测方法、装置、设备及存储介质 |
US11822873B2 (en) * | 2020-12-14 | 2023-11-21 | Citrix Systems, Inc. | Document generation from applications |
US11886790B2 (en) | 2021-08-05 | 2024-01-30 | Micro Focus Llc | Method and system for automatic test website layout |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2559055Y (zh) * | 2001-03-26 | 2003-07-02 | 腾讯科技(深圳)有限公司 | 单窗口多页浏览装置 |
WO2009066233A2 (en) * | 2007-11-23 | 2009-05-28 | Koninklijke Philips Electronics N.V. | Co-browsing (java) scripted html documents |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7231606B2 (en) * | 2000-10-31 | 2007-06-12 | Software Research, Inc. | Method and system for testing websites |
WO2003021798A2 (en) * | 2001-09-04 | 2003-03-13 | Soft2B Llc | Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization |
US6918066B2 (en) * | 2001-09-26 | 2005-07-12 | International Business Machines Corporation | Method and system for evaluating applications on different user agents |
US7461346B2 (en) * | 2002-07-30 | 2008-12-02 | Sap Ag | Editing browser documents |
ATE385589T1 (de) * | 2002-08-02 | 2008-02-15 | Sap Ag | Verfahren und rechnersystem zur behandlung von inkrementalen daten in klient-server kommunikation. |
US6886169B2 (en) * | 2002-11-19 | 2005-04-26 | Nexaweb Technologies, Inc. | System and method for stateful web-based computing |
US7316003B1 (en) * | 2002-12-18 | 2008-01-01 | Oracle International Corp. | System and method for developing a dynamic web page |
US20040243921A1 (en) * | 2003-05-30 | 2004-12-02 | Carr Steven Paul | Methods and systems for synchronizing document elements |
JP4397632B2 (ja) * | 2003-06-30 | 2010-01-13 | ブラザー工業株式会社 | 原稿搬送装置 |
US10152190B2 (en) * | 2003-12-15 | 2018-12-11 | Open Invention Network, Llc | Systems and methods for improved application sharing in a multimedia collaboration session |
US7480897B2 (en) * | 2005-03-10 | 2009-01-20 | International Business Machines Corporation | Method and system for managing development objects for computer program code |
JP4140916B2 (ja) * | 2005-12-22 | 2008-08-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Webページにおける状態遷移を解析する方法 |
US9740794B2 (en) * | 2005-12-23 | 2017-08-22 | Yahoo Holdings, Inc. | Methods and systems for enhancing internet experiences |
JP2008097215A (ja) * | 2006-10-10 | 2008-04-24 | Just Syst Corp | データ処理装置 |
US20090037517A1 (en) * | 2007-08-02 | 2009-02-05 | Randall Wayne Frei | Method and system to share content between web clients |
US8140834B2 (en) * | 2008-02-26 | 2012-03-20 | International Business Machines Corporation | System, method and computer program product for providing a programmable quiesce filtering register |
US20090249216A1 (en) * | 2008-03-28 | 2009-10-01 | International Business Machines Corporation | Interacting with multiple browsers simultaneously using linked browsers controlled from a primary browser interface |
US20100211865A1 (en) * | 2009-02-19 | 2010-08-19 | Microsoft Corporation | Cross-browser page visualization generation |
US9225763B2 (en) * | 2011-06-07 | 2015-12-29 | Cisco Technology, Inc. | Distributed overlay browser for transparent streaming media support in virtualized desktop environment |
-
2010
- 2010-01-13 US US12/686,436 patent/US20110173589A1/en not_active Abandoned
-
2011
- 2011-01-12 CN CN201110026360.5A patent/CN102129405B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2559055Y (zh) * | 2001-03-26 | 2003-07-02 | 腾讯科技(深圳)有限公司 | 单窗口多页浏览装置 |
WO2009066233A2 (en) * | 2007-11-23 | 2009-05-28 | Koninklijke Philips Electronics N.V. | Co-browsing (java) scripted html documents |
Also Published As
Publication number | Publication date |
---|---|
US20110173589A1 (en) | 2011-07-14 |
CN102129405A (zh) | 2011-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102129405B (zh) | 跨浏览器交互性测试 | |
CN102142016A (zh) | 跨浏览器交互活动记录、回放以及编辑 | |
Biørn-Hansen et al. | An empirical investigation of performance overhead in cross-platform mobile development frameworks | |
CN102236549A (zh) | 跨动态边界的运行时分析的可视化 | |
US20100122196A1 (en) | Apparatus and methods for interacting with multiple information forms across multiple types of computing devices | |
Engelke et al. | MobileAR Browser–A generic architecture for rapid AR-multi-level development | |
US9053241B2 (en) | Scripting application with role identification | |
Belcastro et al. | Big data analysis on clouds | |
CN114357345A (zh) | 图片处理方法、装置、电子设备及计算机可读存储介质 | |
CN103562864B (zh) | 执行开始操作员消息命令 | |
CN103597462B (zh) | 发送操作员消息命令到耦合设施 | |
Paternò et al. | Timelines for mobile web usability evaluation | |
Han et al. | Crowdsourcing BIM-guided collection of construction material library from site photologs | |
US20170255475A1 (en) | Automatic execution of objects in a user interface | |
Helal et al. | Mobile platforms and development environments | |
Raziapov | Application of AR technologies in the building industry | |
US11157395B2 (en) | Automated test coverage of computing systems | |
Shrivastava | Learning Salesforce Einstein | |
Newnham | Microsoft HoloLens By Example | |
Panahi | Big data visualization platform for mixed reality | |
Nordan | An investigation of potential methods for topology preservation in interactive vector tile map applications | |
Zheng et al. | Virtual Laboratory Application Development for Mobile Terminal. | |
Guidazzoli et al. | A flexible and adaptable workflow to develop and visualise industrial digital twins | |
Yamashita et al. | Software implementation of UI interface for realizing communication robot in community‐centric system | |
Vitello et al. | Mobile application development exploiting science gateway technologies |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: MICROSOFT TECHNOLOGY LICENSING LLC Free format text: FORMER OWNER: MICROSOFT CORP. Effective date: 20150722 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150722 Address after: Washington State Patentee after: Micro soft technique license Co., Ltd Address before: Washington State Patentee before: Microsoft Corp. |