国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      跨瀏覽器交互活動(dòng)記錄、回放以及編輯的制作方法

      文檔序號(hào):6354147閱讀:192來(lái)源:國(guó)知局
      專利名稱:跨瀏覽器交互活動(dòng)記錄、回放以及編輯的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及用于測(cè)試不同的瀏覽器中的交互式屏幕布局的技術(shù),尤其涉及對(duì)跨瀏 覽器交互活動(dòng)記錄、回放以及編輯的支持。
      背景技術(shù)
      瀏覽器可能是用于在萬(wàn)維網(wǎng)中檢索、呈現(xiàn)以及導(dǎo)航網(wǎng)頁(yè)的最常見的工具。網(wǎng)頁(yè)可 包含文本、靜止圖像、視頻、音頻以及交互式內(nèi)容。瀏覽器還可用來(lái)訪問服務(wù)器或?qū)Φ润w在 專用網(wǎng)絡(luò)中或在特定計(jì)算機(jī)、智能電話或其他設(shè)備上的本地文件中提供的信息??梢哉业礁鞣N各樣的現(xiàn)用瀏覽器。例如,存在著微軟 hternet Explorer 瀏覽器的具有不同能力的不同版本anternet Explorer 是微軟公司的標(biāo)記)。雖然 hternet Explorer 瀏覽器被廣泛使用,但也可在計(jì)算機(jī)上、在電話上、在汽車中或在其他 設(shè)備中使用許多其他瀏覽器。瀏覽器在諸如它們運(yùn)行于其中的操作系統(tǒng)、它們用來(lái)將網(wǎng)頁(yè) 對(duì)象轉(zhuǎn)換成視覺顯示的布局引擎、它們用來(lái)接受用戶輸入的機(jī)制、它們?cè)鷮?shí)現(xiàn)哪些特征 (不使用插件或其他擴(kuò)展)、以及它們支持哪些web標(biāo)準(zhǔn)和協(xié)議等特性方面不同。

      發(fā)明內(nèi)容
      瀏覽器在它們?nèi)绾纬尸F(xiàn)圖像、進(jìn)行頁(yè)面布局以及為用戶生成頁(yè)面交互活動(dòng)方面不 同。為了增強(qiáng)或補(bǔ)充用于測(cè)試不同的瀏覽器中的交互式屏幕布局的技術(shù),本文描述的一些 實(shí)施方式支持跨瀏覽器交互活動(dòng)記錄、回放以及編輯。例如,與一個(gè)機(jī)器配置中的一種瀏覽 器的一系列交互可被記錄在文檔對(duì)象模型(DOM)樹元素級(jí),并且在不同的一種瀏覽器和/ 或在不同的機(jī)器配置中運(yùn)行的瀏覽器中在該級(jí)回放。用戶-瀏覽器交互記錄可被用來(lái)基于 例如JavaScript 代碼或?qū)盈B樣式表代碼、不同的硬件和不同的操作系統(tǒng)來(lái)標(biāo)識(shí)和探索行 為中的不同。(JavaScript 是Sun Microsystems有限公司的標(biāo)記)。一些實(shí)施方式使用具有顯示器、處理器和存儲(chǔ)器的計(jì)算機(jī)、智能電話或其他設(shè)備 來(lái)支持瀏覽器交互活動(dòng)記錄。用戶對(duì)記錄器瀏覽器的輸入由諸如透明窗口或事件處理程序 等機(jī)制來(lái)截取。標(biāo)識(shí)相關(guān)元素,即被配置成對(duì)所截取的用戶輸入進(jìn)行響應(yīng)的記錄器瀏覽器 中的文檔對(duì)象模型元素。創(chuàng)建并記錄指定該相關(guān)元素和用戶輸入的用戶-瀏覽器交互記 錄。該交互記錄還可與同該記錄器瀏覽器的交互的屏幕截圖或視頻剪輯相關(guān)聯(lián);視頻剪輯 可包括將它與對(duì)文檔對(duì)象模型元素的用戶輸入進(jìn)行同步的標(biāo)記幀。一些實(shí)施方式支持在DOM樹元素級(jí)進(jìn)行瀏覽器交互活動(dòng)回放。例如,交互活動(dòng)測(cè) 試代碼讀取用戶-瀏覽器交互記錄,并在播放器瀏覽器的各文檔對(duì)象模型元素中定位與該 用戶-瀏覽器交互記錄中指定的元素相對(duì)應(yīng)的元素。該交互記錄可能是使用同一瀏覽器創(chuàng) 建的,但它也可以是從可能不同的機(jī)器配置中的不同種類的瀏覽器創(chuàng)建的。即,記錄器瀏覽 器和播放器瀏覽器不必是同一瀏覽器或同一種瀏覽器,或甚至不必是同一機(jī)器配置中的瀏 覽器。它們將簡(jiǎn)單地加載相同的網(wǎng)頁(yè)DOM元素。用戶輸入被應(yīng)用于播放器瀏覽器中的所定 位的DOM元素。回放可被暫停、反轉(zhuǎn)、和/或與該記錄器瀏覽器交互的靜止或視頻剪輯進(jìn)行同步。多個(gè)播放器瀏覽器可以在同一或不同的機(jī)器上一個(gè)接一個(gè)地或同時(shí)地運(yùn)行給定的交 互記錄序列?!?shí)施方式支持瀏覽器交互活動(dòng)編輯和檢查。例如,可以在記錄/回放被凍結(jié) 時(shí)詢問并修改文檔對(duì)象模型元素。還可以在交互記錄的序列中插入腳本語(yǔ)言語(yǔ)句,并且一 些實(shí)施方式允許編輯來(lái)插入調(diào)用文檔對(duì)象模型元素所展示的方法的一系列語(yǔ)句。在一些實(shí) 施方式中,可以通過加載先前存儲(chǔ)的DOM樹狀態(tài)來(lái)將播放器瀏覽器置于指定狀態(tài),而非解 釋用戶-瀏覽器交互記錄的序列來(lái)達(dá)到該指定狀態(tài)。所給出的這些示例僅僅是說明性的。本“發(fā)明內(nèi)容”并不旨在標(biāo)識(shí)出所要求保護(hù) 的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。相反,提供本 “發(fā)明內(nèi)容”是為了以簡(jiǎn)化的形式介紹將在以下“具體實(shí)施方式
      ”中進(jìn)一步描述的某些概念。 本發(fā)明由權(quán)利要求書限定,并且在本發(fā)明內(nèi)容與權(quán)利要求書相沖突時(shí)以權(quán)利要求書為準(zhǔn)。


      將參考附圖給出更具體的描述。這些附圖只示出了各選擇性方面并且因而不完全 決定范圍。圖1是示出具有至少一個(gè)處理器、至少一個(gè)存儲(chǔ)器、至少一個(gè)瀏覽器以及可存在 于多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上的操作環(huán)境中的其他項(xiàng)的計(jì)算機(jī)或其他計(jì)算設(shè)備,并且還示出配置的存 儲(chǔ)介質(zhì)實(shí)施方式的框圖;圖2是示出用于一些實(shí)施方式的示例體系結(jié)構(gòu)中的記錄器瀏覽器、播放器瀏覽 器、交互活動(dòng)測(cè)試代碼、用戶-瀏覽器交互記錄以及其他組件的框圖;圖3是示出一些實(shí)施方式中的用于截取用戶輸入、應(yīng)用用戶輸入和/或以其他方 式管理用戶輸入的機(jī)制的框圖;圖4是表示一些實(shí)施方式中的具有在交互活動(dòng)測(cè)試期間分配給記錄器瀏覽器的 一個(gè)區(qū)域以及分配給播放器瀏覽器的另一區(qū)域的屏幕的示圖;圖5是示出記錄器瀏覽器駐留在一個(gè)設(shè)備上并且三個(gè)播放器瀏覽器分別駐留在 三個(gè)其他設(shè)備上的實(shí)施方式的框圖,其中這些設(shè)備由網(wǎng)絡(luò)連接;圖6是示出一些實(shí)施方式中的用戶-瀏覽器交互的規(guī)范化記錄的框圖;圖7是示出用于記錄交互活動(dòng)以及其他目的的方法和配置的存儲(chǔ)介質(zhì)實(shí)施方式 的一些步驟的流程圖;圖8是示出用于回放交互活動(dòng)記錄以及其他目的的方法和配置的存儲(chǔ)介質(zhì)實(shí)施 方式的一些步驟的流程圖;以及圖9是示出一些實(shí)施方式的數(shù)據(jù)流程圖。
      具體實(shí)施例方式概覽在開發(fā)網(wǎng)頁(yè)期間,可能花費(fèi)大量努力來(lái)確保網(wǎng)頁(yè)在各種各樣的瀏覽器中相似地運(yùn) 作,包括例如微軟hternetExplorer 軟件、Firefox 軟件以及Safari 軟件(分別是微軟 公司、Mozilla Rnmdation以及Apple有限公司的標(biāo)記)的多個(gè)版本。盡管存在著用于對(duì) 各元素在頁(yè)面上的布局是否在不同的瀏覽器中相配進(jìn)行靜態(tài)測(cè)試的若干解決方案,但缺少用于測(cè)試如JavaScript 代碼行為和動(dòng)畫以及層疊樣式表(CSS)代碼行為之類的跨瀏覽器 交互活動(dòng)的解決方案??鐬g覽器布局的常見解決方案可被分成兩組。一組包括諸如Adobe BrowserLab 服務(wù)和Microsoft Expression Web SuperPreview工具等布局解決方案。這些解決方案 允許用戶實(shí)質(zhì)上通過拍攝頁(yè)面的照片并允許用戶比較這些照片來(lái)驗(yàn)證頁(yè)面元素在多個(gè)瀏 覽器中的布局,并且標(biāo)識(shí)哪些元素是相同的(或不同的)以幫助診斷它們?yōu)槭裁词遣煌摹?在該組中,這些解決方案提供可能補(bǔ)充有元素信息的靜態(tài)圖片。這些解決方案即使探究了 交互式行為,也沒有充分進(jìn)行探究。第二組包括諸如IETester工具等布局解決方案。這些解決方案僅僅以并排方式 主存多個(gè)瀏覽器,允許用戶在與一個(gè)瀏覽器中測(cè)試操作序列,并隨后方便地切換到另一瀏 覽器來(lái)測(cè)試同一序列。IETester工具允許開發(fā)人員訪問hternet Explorer 軟件的多個(gè) 不兼容的版本。然而,該第二組布局軟件不提供同時(shí)測(cè)試多個(gè)瀏覽器的能力。另一已知技術(shù)是“共同瀏覽(co-browsing) ”,由此用戶在他們的機(jī)器上安裝專門 的客戶端(通常是瀏覽器插件)。在共同瀏覽期間瀏覽器被置于主-從關(guān)系中,使得從瀏覽 器將自動(dòng)地去往主瀏覽器中設(shè)置的目的地。然而,共同瀏覽僅僅同步了網(wǎng)頁(yè)目的地,而非在 目的地網(wǎng)頁(yè)內(nèi)的用戶動(dòng)作和頁(yè)面行為。瀏覽器的基于像素的記錄,諸如屏幕截圖和視頻剪 輯,也是已知的。相反,本文描述的一些實(shí)施方式例如通過跨瀏覽器頁(yè)面可視化生成和跨瀏覽器頁(yè) 面可視化呈現(xiàn)以及更多來(lái)支持跨瀏覽器交互活動(dòng)測(cè)試。一些實(shí)施方式提供用于通過在多 個(gè)web瀏覽器中回放用戶-瀏覽器交互記錄來(lái)同時(shí)測(cè)試網(wǎng)頁(yè)交互活動(dòng)(動(dòng)畫、行為、程序響 應(yīng))的機(jī)制。用戶直接與記錄器瀏覽器進(jìn)行交互,并且所記錄的與頁(yè)面元素的交互(點(diǎn)擊、 鼠標(biāo)懸停以及其他手勢(shì))被映射到一個(gè)或多個(gè)播放器瀏覽器中的對(duì)應(yīng)的頁(yè)面元素。播放器 瀏覽器可以位于同一機(jī)器上并且甚至與記錄器瀏覽器主存在同一界面內(nèi),或播放器可以位 于與記錄器不同的物理CPU上。在一些配置中,一個(gè)或多個(gè)播放器處于與記錄器相同的機(jī) 器上,而該同一記錄的其他播放器處于不同的機(jī)器上。在2010 年 1 月 13 日提交的題為“Cross-Browser Interactivity ^Testing(跨瀏 覽器交互活動(dòng)測(cè)試)”的美國(guó)專利申請(qǐng)第12686436號(hào)(與本申請(qǐng)發(fā)明人相同)中也討論了 跨瀏覽器交互活動(dòng)。12686436號(hào)申請(qǐng)通過被引用而整體結(jié)合于此并構(gòu)成本發(fā)明的一部分。 這兩申請(qǐng)之間的任何術(shù)語(yǔ)沖突或其他沖突旨在以有利于支持本申請(qǐng)及其權(quán)利要求書的方 式來(lái)解決。現(xiàn)在將參考諸如附圖中所示的那些示例性實(shí)施方式,并且將使用具體語(yǔ)言來(lái)描述 它們。但在此示出的特征的替換和進(jìn)一步修改,以及在此示出的原理的附加應(yīng)用(掌握本 發(fā)明的相關(guān)領(lǐng)域技術(shù)人員會(huì)想到)應(yīng)該被認(rèn)為處于權(quán)利要求的范圍內(nèi)。術(shù)語(yǔ)的含義在本公開內(nèi)容中進(jìn)行闡明,所以權(quán)利要求應(yīng)當(dāng)在仔細(xì)注意這些說明的 情況下來(lái)閱讀。給出了具體示例,但相關(guān)領(lǐng)域技術(shù)人員將理解其他示例也可能落入所使用 的術(shù)語(yǔ)的意義內(nèi),并落入一個(gè)或多個(gè)權(quán)利要求的范圍內(nèi)。各術(shù)語(yǔ)不一定具有與它們?cè)谝话?使用中、在特定行業(yè)使用中、或在特定字典或一組字典的使用中所具有的意義相同的意義。 附圖標(biāo)記可以與各種措辭一起使用,以幫助示出術(shù)語(yǔ)的外延。從給定文本片段中省略附圖 標(biāo)記不一定意味著文本沒有在討論附圖的內(nèi)容。發(fā)明人主張并行使他們對(duì)他們自己的詞典編纂的權(quán)利。在此,可以在“具體實(shí)施方式
      ”中和/或在本申請(qǐng)文件的其他部分,顯式或隱 式地定義術(shù)語(yǔ)。如本文所使用的,“計(jì)算機(jī)系統(tǒng)”可包括例如一個(gè)或多個(gè)服務(wù)器、主板、處理節(jié)點(diǎn)、 個(gè)人計(jì)算機(jī)(便攜式或非便攜式)、個(gè)人數(shù)字助理、蜂窩或移動(dòng)電話、和/或提供至少部分地 由指令控制的一個(gè)或多個(gè)處理器的其他設(shè)備。指令可以是以存儲(chǔ)器和/或電路中特定的軟 件的形式。具體而言,雖然可以想到許多實(shí)施方式在工作站或膝上型計(jì)算機(jī)上運(yùn)行,但其他 實(shí)施方式可以在其他計(jì)算設(shè)備上運(yùn)行,并且任何一個(gè)或多個(gè)這樣的設(shè)備可以是給定實(shí)施方 式的一部分。“多線程”計(jì)算機(jī)系統(tǒng)是支持多執(zhí)行線程的計(jì)算機(jī)系統(tǒng)。術(shù)語(yǔ)“線程”應(yīng)被理解為包 括能夠同步或服從同步的任何代碼,并且也以另一名稱為人所知,如“任務(wù)”、“進(jìn)程”或“協(xié) 同程序”。線程可以并行運(yùn)行、串行運(yùn)行、或以并行執(zhí)行(例如,多處理)和串行執(zhí)行(例如, 時(shí)間分片)的組合來(lái)運(yùn)行。在各種配置中都設(shè)計(jì)了多線程環(huán)境。執(zhí)行線程可以并行運(yùn)行, 或可以組織線程以供并行執(zhí)行但實(shí)際上串行輪流執(zhí)行。例如,可通過在多處理環(huán)境中的不 同的核上運(yùn)行不同的線程、通過在單個(gè)處理器核上對(duì)不同的線程進(jìn)行時(shí)間分片、或通過時(shí) 間分片和多處理器線程化的某些組合,來(lái)實(shí)現(xiàn)多線程。例如,可以通過內(nèi)核的線程調(diào)度器、 通過用戶空間信號(hào)、或通過用戶空間和內(nèi)核操作的組合,來(lái)啟動(dòng)線程上下文切換。例如,線 程可以輪流操作共享數(shù)據(jù),或每一線程可以操作其自己的數(shù)據(jù)。“邏輯處理器”或“處理器”是單個(gè)獨(dú)立硬件線程處理單元。例如,每個(gè)核運(yùn)行兩個(gè) 線程的超線程四核芯片具有八個(gè)邏輯處理器。處理器可以是通用的,或者它們可以針對(duì)諸 如圖形處理、信號(hào)處理、浮點(diǎn)算術(shù)處理、加密、I/O處理等特定用途來(lái)定制。“多處理器”計(jì)算機(jī)系統(tǒng)是具有多個(gè)邏輯處理器的計(jì)算機(jī)系統(tǒng)。多處理器環(huán)境以各 種配置出現(xiàn)。在一給定配置中,所有處理器可以在功能上相同,而在另一配置中,一些處理 器可能由于具有不同的硬件能力、不同的軟件分配、或這兩者而與其他處理器不同。取決于 配置,處理器可以彼此高度耦合在單個(gè)總線上,或它們可以是松散耦合的。在一些配置中, 各處理器共享中央存儲(chǔ)器,在一些配置中,它們各自具有其自己的本地存儲(chǔ)器,并且在一些 配置中,共享和本地存儲(chǔ)器兩者都存在?!皟?nèi)核”包括操作系統(tǒng)、系統(tǒng)管理程序、虛擬機(jī)、以及類似的硬件接口軟件?!按a”意味著處理器指令、數(shù)據(jù)(其包括常量、變量以及數(shù)據(jù)結(jié)構(gòu)),或指令和數(shù) 據(jù)兩者?!白詣?dòng)地”意味著使用自動(dòng)化(例如,由在此討論的特定操作的軟件配置的通用目 的計(jì)算硬件),與沒有自動(dòng)化相反。具體而言,“自動(dòng)地”執(zhí)行的步驟不是通過手在紙上或在 人的腦中執(zhí)行的,它們是用機(jī)器執(zhí)行的。貫穿全文,使用可選的復(fù)數(shù)“(諸)”意味著存在所指示的特征中的一個(gè)或多個(gè)。例 如,“(諸)瀏覽器”意味著“一個(gè)或多個(gè)瀏覽器”或等效于“至少一個(gè)瀏覽器”。無(wú)論何時(shí)引用了數(shù)據(jù)或指令,可以理解這些項(xiàng)配置計(jì)算機(jī)可讀存儲(chǔ)器,從而將其 轉(zhuǎn)換成與簡(jiǎn)單存在于紙上、人腦中相反的特定制品,或例如,作為線上的瞬時(shí)信號(hào)。操作環(huán)境參考圖1,用于一實(shí)施方式的操作環(huán)境100可包括計(jì)算機(jī)系統(tǒng)102。計(jì)算機(jī)系統(tǒng) 102可以是或不是多處理器計(jì)算機(jī)系統(tǒng)。操作環(huán)境可包括給定計(jì)算機(jī)系統(tǒng)中的一個(gè)或多個(gè)機(jī)器,它們可以群集在一起、客戶機(jī)-服務(wù)器式連網(wǎng)、和/或?qū)Φ仁竭B網(wǎng)。人類用戶104可以通過使用顯示器、鍵盤、以及其他外圍設(shè)備106來(lái)與計(jì)算機(jī)系統(tǒng) 102進(jìn)行交互,例如向web服務(wù)器142請(qǐng)求網(wǎng)頁(yè)128。系統(tǒng)管理員、開發(fā)人員、工程技術(shù)人員、 以及最終用戶各自都是特定類型的用戶104。代表一個(gè)或多個(gè)人的自動(dòng)化代理也可以是用 戶104。在一些實(shí)施方式中,存儲(chǔ)設(shè)備和/或聯(lián)網(wǎng)設(shè)備可被認(rèn)為是外圍裝備。圖1中未示出 的其他計(jì)算機(jī)系統(tǒng),可以使用例如經(jīng)由網(wǎng)絡(luò)接口設(shè)備到網(wǎng)絡(luò)108的一個(gè)或多個(gè)連接來(lái)與計(jì) 算機(jī)系統(tǒng)102或與另一系統(tǒng)實(shí)施方式進(jìn)行交互。在交互期間,用戶通過鍵盤、鼠標(biāo)、以及其 他外圍設(shè)備106和/或通過網(wǎng)絡(luò)108連接提供輸入120,并且用戶通過例如顯示器122、其 他硬件IM和/或網(wǎng)絡(luò)連接接收輸出數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)102包括至少一個(gè)邏輯處理器110。與其他合適系統(tǒng)一樣,計(jì)算機(jī)系統(tǒng) 102還包括一個(gè)或多個(gè)計(jì)算機(jī)可讀非瞬態(tài)存儲(chǔ)介質(zhì)112。介質(zhì)112可以是易失性存儲(chǔ)器、非 易失性存儲(chǔ)器、固定在適當(dāng)位置的介質(zhì)、可移動(dòng)介質(zhì)、磁性介質(zhì)、光學(xué)介質(zhì)、和/或其他類型 的非瞬態(tài)介質(zhì)(與諸如僅僅傳播信號(hào)的電線等瞬態(tài)介質(zhì)相對(duì))。介質(zhì)112可以是不同的物 理類型。具體而言,諸如CD、DVD、記憶棒、或其他可移動(dòng)非易失性存儲(chǔ)器介質(zhì)等的經(jīng)配置介 質(zhì)114,在被插入或以其他方式安裝時(shí),可以在功能上變成計(jì)算機(jī)系統(tǒng)的一部分,使得它的 內(nèi)容可被訪問以供處理器110使用??梢苿?dòng)經(jīng)配置的介質(zhì)114是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112 的示例。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112的一些其他示例包括內(nèi)置RAM、R0M、硬盤、以及不易于由 用戶104移動(dòng)的其他存儲(chǔ)設(shè)備。介質(zhì)114由可由處理器110執(zhí)行的指令116來(lái)配置;“可執(zhí)行”在此以寬泛的意義 來(lái)使用,以包括例如機(jī)器代碼、可解釋代碼、以及在虛擬機(jī)上運(yùn)行的代碼。介質(zhì)114還由數(shù) 據(jù)118來(lái)配置,數(shù)據(jù)118是通過執(zhí)行指令116來(lái)創(chuàng)建、修改、引用、和/或以其他方式使用的。 指令116和數(shù)據(jù)118配置它們位于其中的介質(zhì)114 ;當(dāng)該存儲(chǔ)器是給定計(jì)算機(jī)系統(tǒng)的功能 部分時(shí),指令116和數(shù)據(jù)118還配置該計(jì)算機(jī)系統(tǒng)。在一些實(shí)施方式中,數(shù)據(jù)118的一部分 表示真實(shí)世界項(xiàng),如產(chǎn)品特征、清單、物理測(cè)量、設(shè)置、圖像、讀數(shù)、目標(biāo)、容量等。如本文討論 的,這樣的數(shù)據(jù)也被轉(zhuǎn)換,例如通過映射、截取、執(zhí)行、掛起、詢問、修改、顯示、創(chuàng)建、加載、和 /或其他操作。具有HTML頁(yè)面1 和一個(gè)或多個(gè)文檔對(duì)象模型(DOM)樹132中的對(duì)應(yīng)的DOM元 素130的一個(gè)或多個(gè)web瀏覽器126、其他軟件134、以及附圖中示出的其他項(xiàng)可以部分或 全部駐留在一個(gè)或多個(gè)介質(zhì)112內(nèi),從而配置這些介質(zhì)。元素130(有時(shí)也被稱為對(duì)象)可 以具有相關(guān)聯(lián)的屬性值136??娠@示的元素130 —般具有相應(yīng)的位置138,如相對(duì)于某一視 口原點(diǎn)的位置。在一些情況下,一元素的位置取決于瀏覽器窗口的寬度以及瀏覽器呈現(xiàn)引 擎。除了處理器110、可任選的外圍設(shè)備106、介質(zhì)112和可任選的顯示器122之外,操作環(huán) 境還可包括其他硬件124,諸如總線、電源和加速器等。給定操作環(huán)境100可包括向開發(fā)人員提供一組協(xié)同的軟件開發(fā)工具的集成開發(fā) 環(huán)境(IDE) 140。具體而言,對(duì)于一些實(shí)施方式,合適的操作環(huán)境中的一些包括或幫助創(chuàng)建被 配置成支持程序開發(fā)的Microsoft Visual Studio 開發(fā)環(huán)境(微軟公司的標(biāo)記)。一些 合適的操作環(huán)境包括Java 環(huán)境(Sun Microsystems有限公司的標(biāo)記),并且一些操作環(huán)境 包括利用諸如C++或C#(“C-a!arp”)等語(yǔ)言的環(huán)境,但本文的教導(dǎo)適用于各種各樣的程序 設(shè)計(jì)語(yǔ)言、程序設(shè)計(jì)模型、以及程序,以及本質(zhì)上適用于軟件開發(fā)領(lǐng)域之外的使用瀏覽器的努力?!╉?xiàng)在圖1中以輪廓形式示出以強(qiáng)調(diào)它們不是所示操作環(huán)境的必需部分,但可 以與在此討論的操作環(huán)境中的項(xiàng)進(jìn)行互操作。在任何附圖或任何實(shí)施方式中,并不能得出 不是輪廓形式的項(xiàng)就一定需要的結(jié)論。系統(tǒng)圖2示出適用于一些實(shí)施方式的體系結(jié)構(gòu)。記錄器瀏覽器202接收輸入,該輸入 在元素級(jí)130由交互活動(dòng)測(cè)試代碼204映射以提供與一個(gè)或多個(gè)播放器瀏覽器206的對(duì)應(yīng) 交互。具體而言,相關(guān)記錄器元素208(其是記錄器瀏覽器中的元素130,指定用戶輸入120 針對(duì)記錄器瀏覽器)被映射到對(duì)應(yīng)的相關(guān)播放器元素210,并且該用戶輸入被應(yīng)用于該相 關(guān)播放器元素以在模擬針對(duì)該記錄器瀏覽器的輸入的指導(dǎo)下測(cè)試它們的交互行為。在本文 討論的各實(shí)施方式中提供了用于截取、阻塞、應(yīng)用、模擬以及以其他方式管理用戶輸入的機(jī) 制 212。一些實(shí)施方式創(chuàng)建用戶與記錄器瀏覽器的交互的規(guī)范化記錄214,并且一些實(shí)施 方式通過讀取用戶-瀏覽器交互的這些規(guī)范化記錄214并按照這些規(guī)范化記錄進(jìn)行動(dòng)作 來(lái)控制播放器瀏覽器行為。規(guī)范化記錄214也被稱為用戶-瀏覽器交互記錄214。諸如列 表、表、數(shù)組、樹、編碼和/或文件等跨瀏覽器結(jié)構(gòu)220可以保持一系列一個(gè)或多個(gè)交互記錄 214。在一些實(shí)施方式中,可以測(cè)試腳本語(yǔ)言216代碼(例如,JavaScript 代碼)在網(wǎng) 頁(yè)中的交互行為。用戶將用戶輸入120序列針對(duì)記錄器瀏覽器,測(cè)試代碼204通過相關(guān)記錄 器元素自動(dòng)地將這些輸入映射到相關(guān)播放器元素,并且將這些輸入和元素記錄在記錄214 中。測(cè)試代碼還自動(dòng)地讀取這些記錄214并將這些輸入應(yīng)用于相關(guān)播放器元素,使得可以 在一個(gè)或多個(gè)機(jī)器上的多個(gè)播放器瀏覽器中測(cè)試播放器腳本語(yǔ)言行為和其他行為,而無(wú)需 用戶手動(dòng)地將該輸入重復(fù)到每一瀏覽器中或?qū)γ恳粶y(cè)試序列和每一瀏覽器使用測(cè)試場(chǎng)景 專用腳本。在一些實(shí)施方式中,交互活動(dòng)測(cè)試代碼204向用戶提供允許輸入實(shí)況或腳本化命 令224的命令窗口 222。例如,腳本語(yǔ)言語(yǔ)句2 和/或調(diào)用DOM樹元素上的方法的語(yǔ)句 2 可作為命令輸入。命令2 還可被用來(lái)從記錄加載DOM樹狀態(tài),在用戶-瀏覽器交互記 錄214中步進(jìn)并將輸入應(yīng)用于各元素,反轉(zhuǎn)解釋記錄214的次序,暫停記錄214的解釋,等 等。命令2M還可被用來(lái)保存或檢索可通過將記錄214與視頻或靜止圖像進(jìn)行關(guān)聯(lián)的標(biāo)記 幀來(lái)與特定記錄214的解釋相同步的實(shí)況視圖、屏幕截圖、或視頻剪輯。一些實(shí)施方式可檢 查和/或改變DOM元素或JavaScript 變量的狀態(tài)(例如,改變DOM元素上的樣式屬性), 并可以跨播放器瀏覽器和閱讀器瀏覽器實(shí)例來(lái)傳播這些改變。給定的實(shí)施方式可包括一個(gè)或多個(gè)類型的一個(gè)或多個(gè)系統(tǒng)102(也稱為設(shè)備、機(jī) 器)。例如,系統(tǒng)102可被看作屬于以下設(shè)備類別218中的一個(gè)或多個(gè)工作站設(shè)備(例 如,臺(tái)式計(jì)算機(jī)、服務(wù)器計(jì)算機(jī))、便攜式設(shè)備(例如,膝上型計(jì)算機(jī))、嵌入式設(shè)備(例如, 嵌入在汽車、飛機(jī)、船舶以及其他交通工具中的系統(tǒng))以及電話設(shè)備(例如,蜂窩電話、智能 電話)。交互活動(dòng)測(cè)試代碼不一定在每一可用設(shè)備類別中實(shí)現(xiàn),所使用的類別可以隨實(shí)施方 式而變化。DOM元素與特定網(wǎng)頁(yè)相關(guān)聯(lián)。即,某一網(wǎng)頁(yè)將被加載到記錄器瀏覽器202,記錄214將引用該網(wǎng)頁(yè)的元素130。同一網(wǎng)頁(yè)(在加載到不同瀏覽器的網(wǎng)頁(yè)是相同的程度上)將被 加載到播放器瀏覽器206,使得記錄214的回放可以將輸入應(yīng)用于相同的DOM元素。例如, 一些實(shí)施方式捕捉造成到新頁(yè)面的導(dǎo)航的操作的目的地URL。在DOM元素調(diào)和在不同情況 下失敗時(shí),該數(shù)據(jù)可被用于強(qiáng)制瀏覽器之間的重新同步。因而,如果用戶點(diǎn)擊記錄器瀏覽器 中的元素并且這造成到另一頁(yè)面的導(dǎo)航,一實(shí)施方式可以在它未能定位要在播放器瀏覽器 中點(diǎn)擊的對(duì)應(yīng)元素的情況下后退以導(dǎo)航到該目的地。將所有瀏覽器迫使到共同的URL是可 以被顯式地執(zhí)行的用戶操作。當(dāng)在播放器瀏覽器中定位并應(yīng)用以下討論的步驟失敗的情況 下,一些實(shí)施方式支持這樣的導(dǎo)航或與交互記錄相關(guān)聯(lián)的另一指定的后退結(jié)果或操作。參考圖1和圖2,如本文所討論的,一些實(shí)施方式提供一種包括具有邏輯處理器 110和存儲(chǔ)器介質(zhì)112的計(jì)算機(jī)系統(tǒng)102或其他設(shè)備的跨瀏覽器交互活動(dòng)測(cè)試系統(tǒng),存儲(chǔ)器 介質(zhì)112由電路、固件和/或軟件配置以將用戶在記錄器瀏覽器處指示的輸入轉(zhuǎn)換成一個(gè) 或多個(gè)播放器瀏覽器中的元素級(jí)對(duì)應(yīng)的模擬輸入的記錄214。具有網(wǎng)頁(yè)128的文檔對(duì)象模 型元素130的記錄器瀏覽器202駐留在本地存儲(chǔ)器(RAM和/或另一存儲(chǔ)器介質(zhì))中。跨 瀏覽器結(jié)構(gòu)220駐留在至少一個(gè)本地存儲(chǔ)器中??鐬g覽器結(jié)構(gòu)包括至少一個(gè)記錄214,并且 因而指定文檔對(duì)象模型元素130和用戶輸入120。交互活動(dòng)測(cè)試代碼204駐留在至少一個(gè) 本地存儲(chǔ)器中。該交互活動(dòng)測(cè)試代碼被配置成在各瀏覽器文檔對(duì)象模型元素之間定位與該 跨瀏覽器結(jié)構(gòu)中指定的元素相對(duì)應(yīng)的元素,并且還被配置成將該用戶輸入應(yīng)用于所定位的 元素。該代碼還存儲(chǔ)指定該元素和該用戶輸入的記錄214,使得同一交互可被應(yīng)用在播放 器瀏覽器中。該跨瀏覽器結(jié)構(gòu)可以駐留在盤上,并且被以逐步的方式(例如一次一個(gè)記錄 214) “拉”到存儲(chǔ)器中。在一些實(shí)施方式中,跨瀏覽器結(jié)構(gòu)220指定具有對(duì)應(yīng)的用戶輸入120的多個(gè)文檔 對(duì)象模型元素130。在一些實(shí)施方式中,對(duì)于文檔對(duì)象模型元素中的至少一個(gè)元素,該跨瀏 覽器結(jié)構(gòu)在記錄214中包括以下項(xiàng)目該元素的對(duì)象名(在此又稱為“標(biāo)簽名”)、元素ID 屬性值(或另一元素ID,即在單個(gè)瀏覽器中唯一地標(biāo)識(shí)該元素的一種方式)、該元素的DOM 樹位置。在一些實(shí)施方式中,對(duì)于用戶輸入中的至少一個(gè),跨瀏覽器結(jié)構(gòu)記錄214包括以下 項(xiàng)目該用戶輸入的動(dòng)作類別、該用戶輸入的坐標(biāo)位置。坐標(biāo)位置可以相對(duì)于該頁(yè)面(視口 原點(diǎn))或相對(duì)于該輸入所針對(duì)的對(duì)象/DOM元素。在一些實(shí)施方式中,該系統(tǒng)包括駐留在本地存儲(chǔ)器中的腳本語(yǔ)言語(yǔ)句2 序列。 該序列包含以諸如JavaScript (Sun Microsystems的標(biāo)記)、VBkript (微軟公司的標(biāo)記) 或ActionScript (Adobe Systems有限公司的標(biāo)記)等腳本語(yǔ)言216編寫的指定文檔對(duì)象 模型元素和對(duì)應(yīng)的用戶輸入的語(yǔ)句。在一些實(shí)施方式中,該系統(tǒng)包括以腳本語(yǔ)言或諸如C# 或C++等較低級(jí)語(yǔ)言編寫的調(diào)用文檔對(duì)象模型元素所展示的的方法的語(yǔ)句226的序列。在一些實(shí)施方式中,交互活動(dòng)測(cè)試代碼204包括命令窗口 222,并且該交互活動(dòng)測(cè) 試代碼被配置成執(zhí)行以下命令窗口操作中的至少一個(gè)。記錄(Log)命令214通過記錄當(dāng)前用戶輸入和該用戶輸入將其作為目標(biāo)的瀏覽器 文檔對(duì)象模型元素來(lái)將實(shí)況交互記錄到跨瀏覽器結(jié)構(gòu)220。編輯(Edit)命令2 基于腳本語(yǔ)言和/或其他語(yǔ)句2 在瀏覽器文檔對(duì)象模型 元素和/或標(biāo)記語(yǔ)言中進(jìn)行實(shí)況編輯。模擬(Mimic)命令2 模擬用戶輸入手勢(shì),例如“點(diǎn)擊按鈕foo”。
      獲取狀態(tài)(Get-Mate)命令2M檢索網(wǎng)頁(yè)狀態(tài)信息,如DOM樹元素和/或與該網(wǎng) 頁(yè)相關(guān)聯(lián)的其他數(shù)據(jù),例如‘元素X的位置是什么’、‘捕捉屏幕并寫入到臨時(shí)目錄’。選擇播放器(klect-Players)命令2 將命令的執(zhí)行限于正在回放跨瀏覽器結(jié) 構(gòu)的用戶-瀏覽器交互記錄序列的一組一個(gè)或多個(gè)播放器瀏覽器206的指定的適當(dāng)子集。 例如,可以執(zhí)行一命令或更改僅特定于單個(gè)瀏覽器的狀態(tài)以使它與其他瀏覽器一致。諸如暫停、反轉(zhuǎn)、停止、快進(jìn)以及播放等各個(gè)記錄回放命令2M執(zhí)行記錄回放操作 來(lái)控制交互記錄214的播放器瀏覽器中的互操作。例如,可以命令一系統(tǒng)‘暫停10秒’、‘關(guān) 閉所有播放器窗口’,等等。在一些實(shí)施方式中,交互活動(dòng)測(cè)試代碼204被配置成在多個(gè)用戶輸入被應(yīng)用于跨 瀏覽器結(jié)構(gòu)中指定的多個(gè)瀏覽器文檔對(duì)象模型元素時(shí)拍攝瀏覽器的屏幕截圖和/或記錄 該瀏覽器的視頻。一些實(shí)施方式將標(biāo)記幀插入該瀏覽器的視頻,從而將視頻剪輯與諸如將 用戶輸入應(yīng)用于文檔對(duì)象模型元素等本地事件進(jìn)行同步。除屏幕截圖或簡(jiǎn)單地記錄交互之 外,一些實(shí)施方式允許捕捉該時(shí)間點(diǎn)處的頁(yè)面源或DOM的某種其他表示,和/或?qū)懭肴我馊?志細(xì)節(jié)。在一些實(shí)施方式中,存在著諸如人類用戶I/O設(shè)備(屏幕、鍵盤、鼠標(biāo)、平板、話筒、 揚(yáng)聲器、運(yùn)動(dòng)傳感器等)等外圍設(shè)備106以與一個(gè)或多個(gè)處理器110和存儲(chǔ)器進(jìn)行有效通 信。具體而言,可存在光標(biāo)定位設(shè)備,如鼠標(biāo)、筆、軌跡球、指示筆、指尖敏感觸摸屏等。然而, 一實(shí)施方式還可被配置成使得沒有人類用戶104與該實(shí)施方式直接交互;軟件進(jìn)程可以是 用戶104。在一些實(shí)施方式中,該系統(tǒng)包括由網(wǎng)絡(luò)連接的多個(gè)計(jì)算機(jī)。連網(wǎng)接口裝備可以使 用諸如分組交換網(wǎng)絡(luò)接口卡、無(wú)線收發(fā)機(jī)或電話網(wǎng)絡(luò)接口等將存在于計(jì)算機(jī)系統(tǒng)中的組件 來(lái)提供對(duì)網(wǎng)絡(luò)108的接入。然而,一實(shí)施方式還可以通過直接存儲(chǔ)器存取、可移動(dòng)非易失性 介質(zhì)或其他信息存儲(chǔ)-檢索和/或傳輸方法進(jìn)行通信,或者計(jì)算機(jī)系統(tǒng)中的一實(shí)施方式可 以在不與其他計(jì)算機(jī)系統(tǒng)進(jìn)行通信的情況下操作。在一些實(shí)施方式中,多瀏覽器交互活動(dòng)測(cè)試系統(tǒng)包括至少一個(gè)邏輯處理器110以 及與邏輯處理器進(jìn)行有效通信的至少一個(gè)本地存儲(chǔ)器。具有記錄器文檔對(duì)象模型元素130 的記錄器瀏覽器202駐留在本地存儲(chǔ)器中。具有播放器文檔對(duì)象模型元素130的播放器 瀏覽器206駐留在本地存儲(chǔ)器中。交互活動(dòng)測(cè)試代碼204駐留在至少一個(gè)本地存儲(chǔ)器中。 即,記錄器瀏覽器202、播放器瀏覽器206以及交互活動(dòng)測(cè)試代碼204可駐留在與一個(gè)或多 個(gè)邏輯處理器進(jìn)行有效通信的一個(gè)或多個(gè)存儲(chǔ)器中;在該上下文中,與處于某一其他設(shè)備 中相對(duì),“本地”暗示與邏輯處理器處于同一設(shè)備中。除非另外指明,在一權(quán)利要求中對(duì)邏輯 處理器的引用意味著存在一個(gè)或多個(gè)邏輯處理器。交互活動(dòng)測(cè)試代碼204被配置成在播放器文檔對(duì)象模型元素之間定位與相關(guān)記 錄器元素相對(duì)應(yīng)的相關(guān)播放器元素。該相關(guān)記錄器元素是作為對(duì)記錄器瀏覽器的用戶輸入 的目標(biāo)的記錄器文檔對(duì)象模型元素。交互活動(dòng)測(cè)試代碼204還被配置成將該用戶輸入應(yīng)用 于該相關(guān)播放器元素。在一些實(shí)施方式中,例如,交互活動(dòng)測(cè)試代碼204的一部分與記錄器瀏覽器一起 駐留在第一機(jī)器上,交互活動(dòng)測(cè)試代碼204的另一部分與播放器瀏覽器一起駐留在第二機(jī) 器上,并且交互活動(dòng)測(cè)試代碼204的一類似部分與另一播放器瀏覽器一起駐留在第三機(jī)器上。與其他系統(tǒng)102 —樣,特定機(jī)器可以是單處理器設(shè)備或多處理器設(shè)備。更一般地,一特定實(shí)施方式中可存在一個(gè)或多個(gè)播放器瀏覽器。在一些實(shí)施方式 中,記錄器瀏覽器、播放器瀏覽器以及交互活動(dòng)測(cè)試代碼全駐留在同一設(shè)備上。在其他實(shí)施 方式中,記錄器瀏覽器駐留在具有第一邏輯處理器和第一本地存儲(chǔ)器的第一設(shè)備上,播放 器瀏覽器駐留在具有第二邏輯處理器和第二本地存儲(chǔ)器的第二設(shè)備上,并且交互活動(dòng)測(cè)試 代碼的至少一部分駐留在這些設(shè)備中的每一個(gè)設(shè)備上。例如,一些實(shí)施方式使用Apple Macintosh或其他OS X操作系統(tǒng)機(jī)器上的瀏覽器和微軟Windows XP 或其他微軟Windows 操作系統(tǒng)機(jī)器上的瀏覽器,使得記錄器瀏覽器和至少一個(gè)播放器瀏覽器正在運(yùn)行并測(cè)試于 不同的操作系統(tǒng)下。在一些實(shí)施方式中,允許一個(gè)或多個(gè)播放器瀏覽器。但是,在一些情況下,該實(shí)施 方式包括至少一個(gè)附加播放器瀏覽器中的至少一個(gè)附加相關(guān)播放器元素,并且交互活動(dòng)測(cè) 試代碼被配置成將用戶輸入應(yīng)用于這些附加相關(guān)播放器元素中的至少一個(gè)。在這樣的實(shí)施 方式中,存在兩個(gè)或更多個(gè)播放器瀏覽器。例如,圖5示出具有通過網(wǎng)絡(luò)與記錄器瀏覽器進(jìn) 行通信的三個(gè)播放器瀏覽器的實(shí)施方式。對(duì)于用于管理用戶輸入的機(jī)制212,現(xiàn)在參考圖3和4以及圖1和2,一些實(shí)施方 式包括位于瀏覽器窗口或其他顯示區(qū)域402前面的透明窗口 302。使用該透明窗口,交互 活動(dòng)測(cè)試代碼204截取來(lái)自用戶輸入設(shè)備(外圍設(shè)備106)的針對(duì)該瀏覽器的信號(hào),諸如來(lái) 自鼠標(biāo)、筆和/或觸摸屏的信號(hào)。播放器瀏覽器前面的透明窗口所截取的信號(hào)可在交互活 動(dòng)分析之后被丟棄或被傳遞到相關(guān)元素。在一些情況下,跟隨者瀏覽器不是由實(shí)況直接輸 入(用戶_>跟隨者瀏覽器)控制的,而是經(jīng)由領(lǐng)導(dǎo)者接收其輸入(用戶_>領(lǐng)導(dǎo)者瀏覽 器- >系統(tǒng)信號(hào)- >跟隨者瀏覽器)。直接控制跟隨者瀏覽器的嘗試,并非經(jīng)由領(lǐng)導(dǎo)者瀏覽 器控制該跟隨者瀏覽器,可以通過丟棄對(duì)該跟隨者瀏覽器的直接輸入而阻塞。在一些情況 下,跟隨者瀏覽器既直接又間接地接受輸入。在一些情況下,可以分析記錄器瀏覽器前面的 透明窗口(例如,不可見或隱藏的窗口)所截取的信號(hào)來(lái)標(biāo)識(shí)該信號(hào)所針對(duì)的相關(guān)記錄器 元素208。在操作中,一些實(shí)施方式通過查看相關(guān)聯(lián)的播放器DOM來(lái)將相關(guān)記錄器元素和相 關(guān)播放器元素進(jìn)行關(guān)聯(lián),其中不保證這些元素是相同的。所以,一些實(shí)施方式的一個(gè)方面是 將記錄器DOM元素與相同的播放器元素進(jìn)行關(guān)聯(lián)。另一方法是將瀏覽器的窗口句柄“鉤住 (hook)”,這將不需要透明窗口。因而可以在Windows API級(jí)截取到現(xiàn)有窗口的所有消息。 更一般地,一些實(shí)施方式在來(lái)自操作系統(tǒng)的用戶輸入事件到達(dá)瀏覽器本身之前截取這些事 件。在一些實(shí)施方式中,使用元素ID屬性值308來(lái)指定諸如相關(guān)記錄器元素208和/ 或相關(guān)播放器元素210等元素130。元素ID屬性值不必一定存在于不擔(dān)當(dāng)相關(guān)元素的元素 上。在每一頁(yè)面128中,并非所有相關(guān)元素都一定具有ID屬性,所以在一些情況下也可以 由其他機(jī)制來(lái)指定相關(guān)元素。在一些實(shí)施方式中,例如,該元素可以由它在DOM樹中的位置310來(lái)指定。位置可 以通過列出從根到該元素的路徑來(lái)指定。例如,“ 113”可意味著“在根處開始,沿最左側(cè)鏈 路,沿最左側(cè)鏈路,沿自左側(cè)起第三條鏈路,到達(dá)該元素”。作為另一示例,位置可以通過對(duì) “在根處開始,遍歷第一 <div>元素,遍歷該元素內(nèi)的第二 <div>元素,并選擇第一 <a>鏈路” 的指令來(lái)指定。位置還可以通過列出該元素在特定遍歷中的序數(shù)來(lái)指定。例如,“17”可意味著“該元素是在根處開始的預(yù)先次序的遍歷的第十七個(gè)元素”。在一些實(shí)施方式中,該元素可以通過樣式屬性和/或?qū)傩灾?36的某種集合312 來(lái)指定。還可以考慮元素類型,例如rel [“contents”以及實(shí)線Ipx邊界樣式的<ul>。例 如,相關(guān)元素可以是樹132中的既具有屬性值Valuel (值1)又具有屬性值Value2 (值2) 的唯一元素。在一些實(shí)施方式中,事件處理程序304通過生成系統(tǒng)級(jí)事件306來(lái)模擬用戶輸入 事件。例如,播放器瀏覽器機(jī)器上的交互活動(dòng)測(cè)試代碼204可以接收描述用戶與記錄器瀏 覽器的交互的記錄214,并隨后生成用于造成與相關(guān)播放器元素的對(duì)應(yīng)交互的系統(tǒng)級(jí)事件。在一些實(shí)施方式中,使用常見的DOM掛鉤(hook)將事件處理程序304插入瀏覽 器中的頁(yè)面128中。在一些實(shí)施方式中,事件處理程序304被插入重寫的網(wǎng)頁(yè)128中,即, HTML由測(cè)試代碼204修改來(lái)插入該事件處理程序。在任一情況下,所插入的事件處理程序 一般不存在于web服務(wù)器142上的網(wǎng)頁(yè)128的原始版本中,并且該事件處理程序被配置成 處理用戶輸入設(shè)備信號(hào)所造成的事件。換言之,所插入的事件處理程序截取否則將去往不同的事件處理程序或?qū)⒛囊膊?去(某些事件沒有收聽者)的事件。在記錄器瀏覽器中,該頁(yè)面可被重寫,使得具有事件處 理程序Z的任何元素也將所插入的處理程序304預(yù)先掛到(pr印end)該事件處理程序Z。 所插入的處理程序304將關(guān)于該事件被觸發(fā)的消息發(fā)送到交互活動(dòng)測(cè)試代碼204,并隨后 將該事件傳遞到原始事件處理程序Z。交互活動(dòng)測(cè)試代碼204在播放器瀏覽器中模擬該同 一事件。事件處理程序插入可以在無(wú)需重寫網(wǎng)頁(yè)的情況下完成HTMLD0M提供用于在無(wú)需實(shí) 際重寫源HTML的情況下鉤起事件處理程序的常見機(jī)制。具體參考圖3和6,在一些實(shí)施方式中,使用用戶與記錄器瀏覽器202的交互的規(guī) 范化記錄214。該規(guī)范化記錄還被稱為用戶-瀏覽器交互記錄214。記錄214駐留在至少一 個(gè)本地存儲(chǔ)器中;記錄214可被用來(lái)指導(dǎo)與記錄器瀏覽器處于同一機(jī)器上的播放器瀏覽器 和/或可通過網(wǎng)絡(luò)傳送到遠(yuǎn)程機(jī)器上的播放器瀏覽器。該規(guī)范化記錄包括元素指定器602、 動(dòng)作類別604,以及可任選地包括其他數(shù)據(jù)606,如時(shí)間戳、記錄器瀏覽器系統(tǒng)的其他標(biāo)識(shí) 符的地址、被加載到記錄器瀏覽器的網(wǎng)頁(yè)文檔的URI或其他地址、校驗(yàn)和、和/或數(shù)字簽名寸。元素指定器602指定相關(guān)元素。例如,相關(guān)元素可以通過元素ID屬性值308、通過 對(duì)象名608、通過DOM樹位置310或通過屬性值集合312來(lái)指定。在一些情況下,相關(guān)元素 可以不像上面那樣盡可能精確且簡(jiǎn)明地指定,而是可以至少近似地指定。元素近似610可 以按照例如基于鼠標(biāo)坐標(biāo)和到寬度和高度已知的顯示區(qū)域的中心點(diǎn)的距離的評(píng)估來(lái)形成。 類似地,所呈現(xiàn)的頁(yè)面可根據(jù)DOM元素顯示區(qū)域來(lái)分成各個(gè)平鋪塊(tile),并且鼠標(biāo)坐標(biāo) 可被用來(lái)近似地標(biāo)識(shí)相關(guān)元素。動(dòng)作類別604指定用戶輸入設(shè)備信號(hào)類別。輸入可被當(dāng)作例如窗口動(dòng)作612、鼠標(biāo) 動(dòng)作614、鍵盤動(dòng)作616或其他種類的動(dòng)作信號(hào)618。窗口動(dòng)作612屬于瀏覽器界面窗口上的用戶動(dòng)作,如在屏幕上移動(dòng)該窗口的位 置、在屏幕上調(diào)整該窗口的大小、將該窗口最小化到系統(tǒng)托盤、在屏幕上最大化該窗口的區(qū) 域等動(dòng)作。鼠標(biāo)動(dòng)作614可屬于使用鼠標(biāo)、筆、觸摸屏或類似輸入設(shè)備進(jìn)行的用戶動(dòng)作?;蛘?,鼠標(biāo)動(dòng)作614可只屬于使用鼠標(biāo)采取的動(dòng)作,并且其他輸入設(shè)備可以使用其他類別604 來(lái)處理或可被忽略。除非另外指明,鼠標(biāo)動(dòng)作屬于用鼠標(biāo)和/或用任何其他光標(biāo)定位/定 點(diǎn)設(shè)備(筆、觸摸屏、軌跡球、觸摸墊等)采取的動(dòng)作。在一些實(shí)施方式中,可能的鼠標(biāo)動(dòng)作 包括以下動(dòng)作中的一個(gè)或多個(gè)鼠標(biāo)懸停(在鼠標(biāo)最初進(jìn)入元素的屏幕領(lǐng)域時(shí),例如在鼠 標(biāo)驅(qū)動(dòng)的光標(biāo)404最初進(jìn)入屏幕區(qū)域406時(shí));鼠標(biāo)移出(在鼠標(biāo)離開元素的領(lǐng)域時(shí));鼠 標(biāo)移動(dòng)(在鼠標(biāo)在元素的領(lǐng)域內(nèi)移動(dòng)時(shí));鼠標(biāo)按下(當(dāng)鼠標(biāo)按鈕在元素的領(lǐng)域上方按下 時(shí));鼠標(biāo)釋放(鼠標(biāo)按鈕在元素的領(lǐng)域上釋放);鼠標(biāo)點(diǎn)擊(在鼠標(biāo)按下+鼠標(biāo)釋放組合 發(fā)生在同一位置上方時(shí));鼠標(biāo)雙擊。一些實(shí)施方式只實(shí)現(xiàn)上述鼠標(biāo)動(dòng)作中的一些,而一些 實(shí)施方式實(shí)現(xiàn)其他鼠標(biāo)/定點(diǎn)設(shè)備動(dòng)作。鍵盤動(dòng)作616屬于使用機(jī)械或虛擬(屏上)鍵盤進(jìn)行的用戶動(dòng)作。在一些實(shí)施方 式中,可能的鍵盤動(dòng)作包括以下動(dòng)作中的一個(gè)或多個(gè)鍵按下、鍵釋放、鍵入(快速按下-釋 放組合)。在一些實(shí)施方式中,距離214(例如,元素指定器602和動(dòng)作類別604)與諸如瀏覽 器顯示的屏幕截圖622和/或視頻剪輯6M等像素?cái)?shù)據(jù)之間存在關(guān)聯(lián)620。例如,文件名、 統(tǒng)一資源標(biāo)識(shí)符(URI)和/或其他像素?cái)?shù)據(jù)標(biāo)識(shí)符可被存儲(chǔ)在記錄214中。在一些實(shí)施方 式中,標(biāo)記幀6 例如通過在視頻剪輯幀序列元數(shù)據(jù)中嵌入U(xiǎn)RI、文件名和偏移量、或其他 記錄214標(biāo)識(shí)符來(lái)插入到視頻剪輯6 中。標(biāo)記幀可被用來(lái)將記錄214與視頻幀進(jìn)行同步, 使得特定幀與特定交互記錄214的解釋一起顯示在播放器瀏覽器中。在一些實(shí)施方式中,跨瀏覽器結(jié)構(gòu)包括一個(gè)或多個(gè)規(guī)范化記錄214,每一記錄具有 相關(guān)元素208的元素ID屬性值308和與以下鼠標(biāo)動(dòng)作614中的至少一個(gè)相對(duì)應(yīng)的動(dòng)作類 別604值鼠標(biāo)點(diǎn)擊、鼠標(biāo)懸停、鍵盤。在一些實(shí)施方式中,跨瀏覽器結(jié)構(gòu)包括一個(gè)或多個(gè)規(guī) 范化記錄214,每一記錄214具有相關(guān)元素208的對(duì)象名608 (又稱為對(duì)象ID、對(duì)象類型名, 例如<div>元素、
      元素等)、相關(guān)元素208的DOM樹位置310、與以下動(dòng)作中的至少一個(gè) 相對(duì)應(yīng)的動(dòng)作類別604值鼠標(biāo)點(diǎn)擊、鼠標(biāo)懸停、鍵盤動(dòng)作616。當(dāng)然,基于本文的描述的其 他變型也是可能的。方法圖7和圖8在流程圖700和800中示出了一些方法實(shí)施方式。在一些實(shí)施方式 中,附圖中示出的方法可以自動(dòng)執(zhí)行,例如由播放器瀏覽器206和交互活動(dòng)測(cè)試代碼204在 只需要很少或不需要同時(shí)(實(shí)況)用戶輸入的情況下回放規(guī)范化記錄214的序列。除非另 外指明,各方法還可以部分地自動(dòng)執(zhí)行并部分地手動(dòng)執(zhí)行。某些步驟可以自動(dòng)地完成,而不 管哪些步驟被具體描述為是自動(dòng)的。在一給定實(shí)施方式中,一方法的零個(gè)或更多個(gè)所示步 驟可以重復(fù),但可能操作不同的參數(shù)或數(shù)據(jù)。各流程圖不是相互排斥的,一給定方法可包括 例如圖7中示出的步驟、圖8中示出的步驟、或來(lái)自每一附圖的步驟等。也可包括任一附圖 中都未示出的步驟。一實(shí)施方式中的步驟可以按與在流程圖中所展示的自頂向下次序不同 的次序來(lái)完成,如由該語(yǔ)句并由流程圖循環(huán)設(shè)施所指示的。各步驟可以串行執(zhí)行、以部分重 疊的方式執(zhí)行、或完全并行執(zhí)行。遍歷流程圖以指示在方法期間執(zhí)行各步驟的次序可以隨 該方法的一次執(zhí)行到該方法的另一次執(zhí)行而變化。該流程圖遍歷次序也可隨一個(gè)方法實(shí)施 方式到另一方法實(shí)施方式而變化。假定所執(zhí)行的方法是可操作的并且符合至少一個(gè)權(quán)利要 求,則各步驟還可被省略、組合、重命名、重組、或以其他方式與所示流程分開。
      在此提供各示例以幫助示出本發(fā)明技術(shù)的各方面,但本文中給出的各示例不描述 所有可能的實(shí)施方式。實(shí)施方式不限于在此提供的具體實(shí)現(xiàn)、安排、顯示、特征、方法、或場(chǎng) 景。給定實(shí)施方式可包括例如附加或不同的特征、機(jī)制和/或數(shù)據(jù)結(jié)構(gòu),并且能以其他方式 與在此提供的示例分開。在截取步驟702期間,一實(shí)施方式阻塞、重定向或以其他方式截取用戶輸入120。 步驟702可以例如通過將透明窗口 302定位在瀏覽器前面、通過插入706事件處理程序304 和/或通過其他機(jī)制來(lái)實(shí)現(xiàn)。在標(biāo)識(shí)步驟708期間,一實(shí)施方式標(biāo)識(shí)相關(guān)元素208/210,即用戶輸入所針對(duì)的元 素。步驟708能以各種方式來(lái)實(shí)現(xiàn)。例如,可以將鼠標(biāo)動(dòng)作屏幕位置與元素屏幕區(qū)域相匹 配以標(biāo)識(shí)目標(biāo)元素。作為另一示例,可以插入706事件處理程序以截取事件,實(shí)際上讓原始 事件處理程序確定哪一元素是目標(biāo)并隨后接入該確定過程以標(biāo)識(shí)相關(guān)元素。作為又一示 例,可以通過將方法306插入到元素上使得DOM樹132成為增強(qiáng)DOM樹314,所插入的方法 被配置成引起一事件,發(fā)送消息或以其他方式通知交互活動(dòng)測(cè)試代碼204所述元素何時(shí)接 收到輸入。在記錄創(chuàng)建步驟710期間,一實(shí)施方式創(chuàng)建交互記錄214,例如通過將圖6中示出 的某些項(xiàng)的值寫入介質(zhì)112中。在一些實(shí)施方式中,創(chuàng)建710記錄214包括在像素?cái)?shù)據(jù)與 諸如元素指定器602和/或動(dòng)作類別604等其他項(xiàng)之間進(jìn)行712關(guān)聯(lián)。在一些實(shí)施方式中, 創(chuàng)建710記錄214包括將交互記錄值記錄714在諸如非易失性介質(zhì)等介質(zhì)112中。在輸入丟棄步驟716期間,一些實(shí)施方式丟棄輸入,例如它們?cè)诮邮盏教囟ㄝ斎?之后丟棄對(duì)瀏覽器的輸入。例如,在不改變具有用戶輸入焦點(diǎn)的DOM元素的情況下,在將該 元素130設(shè)為焦點(diǎn)元素的輸入之后,僅僅輕微移動(dòng)光標(biāo)的輸入可被丟棄。一些實(shí)施方式丟 棄關(guān)于在元素的邊界內(nèi)的鼠標(biāo)移動(dòng)的輸入。這可頻繁發(fā)生,因?yàn)榫W(wǎng)頁(yè)很少具有將在這些情 況下改變頁(yè)面的事件處理程序。因此,作為優(yōu)化,一實(shí)施方式可以丟棄這種移動(dòng);還可以提 供一模式以禁用這種丟棄行為。在一些配置中,哪一元素具有用戶焦點(diǎn)是不重要的,例如當(dāng) 在搜索文本框中進(jìn)行點(diǎn)擊的情況下,它具有輸入焦點(diǎn)但鼠標(biāo)仍然可以在頁(yè)面的其余部分四 處移動(dòng)。在這樣的配置中,更相關(guān)的事情不是具有輸入焦點(diǎn)的元素不改變,而是沒有元素改 變。在屏幕截圖拍攝步驟718期間,一些實(shí)施方式將像素?cái)?shù)據(jù)存儲(chǔ)在介質(zhì)中,包括持 有記錄器瀏覽器所配置的顯示畫面的一部分或全部的屏幕截圖的文件或其他數(shù)據(jù)結(jié)構(gòu)。諸 如時(shí)間、瀏覽器ID以及用戶名等元數(shù)據(jù)可以與該屏幕截圖相關(guān)聯(lián)。在視頻剪輯記錄步驟720期間,一些實(shí)施方式將像素?cái)?shù)據(jù)幀存儲(chǔ)在介質(zhì)中,包括 持有記錄器瀏覽器所配置的顯示畫面的一部分或全部的視頻剪輯的文件或其他數(shù)據(jù)結(jié)構(gòu)。 諸如屏幕截圖的元數(shù)據(jù)等元數(shù)據(jù)可以與該視頻剪輯相關(guān)聯(lián)。在一些實(shí)施方式中,一個(gè)或多 個(gè)標(biāo)記幀擬6被插入722到視頻剪輯中,使用視頻剪輯幀序列中的特定點(diǎn)來(lái)標(biāo)識(shí)特定交互 記錄214。在一些實(shí)施方式中,記錄視頻(屏幕捕捉)或所選擇的屏幕截圖便于與其中播 放器瀏覽器之一是基于云的系統(tǒng)一起工作。開發(fā)人員可以用本地瀏覽器并排查看該基于云 的瀏覽器的交互活動(dòng)。一種技術(shù)是將本地交互活動(dòng)與云交互活動(dòng)的視頻或屏幕截圖表示并 置。在詢問步驟7M期間,一實(shí)施方式詢問元素130的位置、樣式、所存在的屬性、屬性
      17值和/或其他特性??梢允褂糜糜谠儐栐氐某R姍C(jī)制。一些實(shí)施方式允許(并且一些實(shí) 施方式需要)開發(fā)人員在詢問瀏覽器中的元素之前凍結(jié)該瀏覽器。在詢問之后,可以恢復(fù) 掛起的操作以使用對(duì)該瀏覽器的附加輸入繼續(xù)交互活動(dòng)測(cè)試。在一些實(shí)施方式中,詢問之 后是狀態(tài)保存步驟726,其中通過詢問獲取的瀏覽器元素狀態(tài)被保存在介質(zhì)112中,從而例 如允許從結(jié)構(gòu)220中對(duì)它們進(jìn)行后續(xù)檢索。在日志記錄步驟7 期間,用戶與瀏覽器之間的實(shí)況交互被記錄在跨瀏覽器結(jié)構(gòu) 220中,例如作為交互記錄214的序列。在顯示步驟730期間,一實(shí)施方式顯示一個(gè)或多個(gè)瀏覽器。在一些實(shí)施方式中,記 錄器瀏覽器202與播放器瀏覽器206被一起顯示在單個(gè)屏幕上,如圖4所示。在一些實(shí)施 方式中,記錄器瀏覽器被顯示在一個(gè)設(shè)備上而至少一個(gè)播放器瀏覽器被顯示在不同的設(shè)備 上。例如,圖5示出了瀏覽器被顯示在四個(gè)設(shè)備上的配置。步驟730可以使用常見的用戶 界面機(jī)制來(lái)完成。在命令輸入步驟732期間,用戶使用命令窗口 222來(lái)將一個(gè)或多個(gè)命令2M輸入 到交互活動(dòng)測(cè)試代碼204的用戶界面。在傳送步驟734期間,規(guī)范化記錄214被通過網(wǎng)絡(luò)或其他通信鏈路傳送到播放器 瀏覽器。在一些實(shí)施方式中,在將活動(dòng)回放到遠(yuǎn)程播放器瀏覽器中時(shí)執(zhí)行傳送步驟734。在應(yīng)用步驟736期間,用戶輸入被應(yīng)用于元素。例如,可通過允許播放器在不存在 交互活動(dòng)測(cè)試代碼204的情況下通常將做的那樣創(chuàng)建系統(tǒng)級(jí)事件來(lái)將用戶輸入120應(yīng)用于 記錄器瀏覽器中的元素,除非輸入的規(guī)范化記錄204是供播放器瀏覽器使用的。隨后可以 通過基于規(guī)范化記錄214生成系統(tǒng)級(jí)事件來(lái)將同一用戶輸入120應(yīng)用于播放器瀏覽器中的 元素。應(yīng)用步驟742不一定需要將用戶輸入應(yīng)用于領(lǐng)導(dǎo)者播放器;可以僅僅是截取該輸入 事件并讓其通過。即,不一定主動(dòng)地應(yīng)用用戶輸入,而可以改為被動(dòng)地應(yīng)用該輸入。在記錄接收步驟802期間,一實(shí)施方式從網(wǎng)絡(luò)連接、共享介質(zhì)112或其他傳輸機(jī)制 接收交互記錄214。例如,一實(shí)施方式可以接收802從遠(yuǎn)程網(wǎng)絡(luò)節(jié)點(diǎn)傳送734的記錄214, 可以接收802記錄714在硬盤驅(qū)動(dòng)器上的記錄,或可以接收802由仍然在運(yùn)行的記錄器瀏 覽器置于存儲(chǔ)器流中的記錄。在讀取步驟804期間,一實(shí)施方式讀取一個(gè)或多個(gè)交互記錄并解析它們以找出諸 如元素指定器602和動(dòng)作類別604等值。在定位步驟806期間,一實(shí)施方式定位相關(guān)元素,如與相關(guān)記錄器元素208相對(duì)應(yīng) 的相關(guān)播放器元素210。步驟806可以使用各種確定808-814來(lái)實(shí)現(xiàn)。例如,在元素ID確 定步驟808期間,在相關(guān)記錄器元素具有將它與頁(yè)面128的其他元素相區(qū)別的ID屬性值 308的情況下是有用的,步驟806可以通過找出(例如,通過索引訪問或樹遍歷)播放器瀏 覽器中的具有同一 ID屬性值的元素來(lái)完成。另外,在樹位置確定步驟810期間,可以使用 相關(guān)記錄器元素在DOM樹中的位置310,例如以對(duì)DOM樹的指定的遍歷期間遇到的序數(shù)元 素的形式或作為從根開始的指示在每一居間元素處沿著哪一條樹鏈路的指定路徑所到達(dá) 的目的地元素。在確定步驟812期間,使用屬性值的標(biāo)識(shí)集合312來(lái)測(cè)試播放器DOM樹中 的每一可能的元素,直至定位了相關(guān)播放器元素(具有值的相同集合312值的元素)。在 視圖位置確定步驟814期間,在一些實(shí)施方式中,也可以使用基于相對(duì)于視口的位置的元 素近似610,例如通過基于鼠標(biāo)坐標(biāo)和屏幕區(qū)域或通過由DOM元素將頁(yè)面平鋪到(titling)屏幕區(qū)域中來(lái)進(jìn)行評(píng)估。在語(yǔ)句接受步驟816期間,一實(shí)施方式接受并操作語(yǔ)句226,如腳本語(yǔ)言216語(yǔ)句 2沈或0#語(yǔ)句226。語(yǔ)句2 可以例如通過命令窗口 222或在交互記錄214的序列內(nèi)來(lái)被 接受。一些實(shí)施方式對(duì)元素的記錄以及被應(yīng)用于這些元素的動(dòng)作起作用。這些實(shí)施方式找 出每一元素并將動(dòng)作應(yīng)用于該元素。元素標(biāo)識(shí)和應(yīng)用該動(dòng)作的指令兩者都可以是腳本的一 部分。例如,腳本語(yǔ)句可以是“將點(diǎn)擊事件應(yīng)用于具有id = “99”的元素”。在DOM修改步驟818期間,一實(shí)施方式修改DOM樹中的元素130和/或修改諸如 元素的數(shù)量和位置等DOM樹特性??梢允褂糜糜谛薷腄OM元素和DOM樹的常見機(jī)制。在凍結(jié)-促進(jìn)步驟820 (又稱為凍結(jié)步驟820)期間,一實(shí)施方式凍結(jié)或幫助凍結(jié) 瀏覽器202/206中的DOM元素130的狀態(tài)。例如,步驟820可包括將JavaScript 代碼、層 疊樣式表代碼或另一腳本語(yǔ)言216的執(zhí)行掛起822。步驟820可包括使用例如斷點(diǎn)或HALT 指令來(lái)將瀏覽器202/206執(zhí)行掛起。步驟820可包括將瀏覽器202/206或?yàn)g覽器202/206 設(shè)備與web服務(wù)器142之間的通信掛起826,例如通過停止AJAX (異步JavaScript 和XML) 和使用XML、HTML、HTTP、TCP/IP和/或其他常見格式和協(xié)議進(jìn)行通信的其他過程。步驟820 可包括將系統(tǒng)級(jí)事件的生成掛起828以模擬對(duì)播放器瀏覽器的直接用戶輸入。一些實(shí)施方 式支持在滿足一個(gè)或多個(gè)指定交互活動(dòng)條件時(shí)進(jìn)行自動(dòng)凍結(jié),例如“在將鼠標(biāo)懸停在具有 ID = “menu (菜單),,的元素上方時(shí)凍結(jié)”或“在具有ID = menu的元素的CSS背景色變?yōu)?RED (紅)時(shí)凍結(jié)”。具體而言,一些實(shí)施方式支持在DOM以某種指定方式改變時(shí)設(shè)置的“改 變”或“數(shù)據(jù)”斷點(diǎn)。在記錄解釋步驟830期間,一實(shí)施方式解釋播放器瀏覽器206中的交互記錄214。 從一實(shí)施方式的觀點(diǎn)看,步驟830包括讀取用戶-瀏覽器交互記錄214,定位806播放器瀏 覽器中的相關(guān)元素,并將用戶輸入應(yīng)用736到該相關(guān)元素。在一些實(shí)施方式中,步驟830還 包括在應(yīng)用了用戶輸入之后顯示730播放器瀏覽器。從用戶的觀點(diǎn)看,步驟830可以是諸如 播放832交互序列、暫停834播放、一次一個(gè)(記錄214)地在交互中步進(jìn)836、和/或反轉(zhuǎn) 838回放以便以與交互的原始記錄序列相反的次序來(lái)示出交互等步驟的一部分或?yàn)檫@些步 驟提供上下文。在狀態(tài)檢索步驟840期間,一實(shí)施方式從介質(zhì)112中檢索網(wǎng)頁(yè)狀態(tài)信息,如先前在 用戶-瀏覽器交互的記錄期間保存726的DOM元素值。在置位步驟842期間,一實(shí)施方式使用檢索到的840狀態(tài)消息來(lái)將瀏覽器置于特 定狀態(tài)。該狀態(tài)通常將是通過重復(fù)用戶-瀏覽器交互序列而可能將瀏覽器帶入的狀態(tài),但 一些狀態(tài)還可包括通過直接修改818D0M元素或DOM樹而產(chǎn)生的值。在一些實(shí)施方式中,可 通過執(zhí)行步驟序列或通過簡(jiǎn)單地將所有DOM元素和Javascript執(zhí)行置于記錄器播放器所 指示的點(diǎn)處來(lái)將瀏覽器置于該狀態(tài)。在顯示步驟844期間,一實(shí)施方式在顯示器122上示出DOM元素和/或其他DOM 樹數(shù)據(jù)??梢允褂贸R姷挠脩艚缑婀ぞ邅?lái)示出844數(shù)據(jù)。在子集解釋步驟846期間,指定語(yǔ)句2 和/或指定交互記錄214被用于先前選 擇的播放器瀏覽器的一適當(dāng)子集。例如,若干播放器瀏覽器中的每一個(gè)中的值可以被單獨(dú) 地修改818以在回放期間同時(shí)測(cè)試若干情況。在屏幕截圖顯示步驟848期間,先前拍攝718并存儲(chǔ)的屏幕截圖像素?cái)?shù)據(jù)被顯示在播放器瀏覽器的窗口中或附近。在視頻剪輯顯示步驟850,先前記錄720的視頻像素?cái)?shù)據(jù)被顯示在播放器瀏覽器 的窗口中或附近。通過使用例如關(guān)聯(lián)620和/或標(biāo)記幀626,步驟848和850可以與交互記 錄214的解釋830同步。在光標(biāo)動(dòng)畫步驟852期間,一實(shí)施方式在播放器瀏覽器窗口中模擬某種用戶控制 的光標(biāo)移動(dòng)。例如,如果記錄214引用元素A并且結(jié)構(gòu)220中的下一記錄214引用元素B, 則該實(shí)施方式可以生成從元素A的屏幕區(qū)域406的中心到元素B的屏幕區(qū)域的中心的模擬 光標(biāo)移動(dòng)。在一些實(shí)施方式中,事件處理程序通過捕捉“事件”并對(duì)事件進(jìn)行響應(yīng)來(lái)“模擬” 事件。在播放步驟邪4期間,一實(shí)施方式使用交互記錄214的解釋830、實(shí)況用戶輸入 120的執(zhí)行和/或命令2 和/或語(yǔ)句2 的執(zhí)行來(lái)播放播放器瀏覽器。即,步驟邪4可包 括播放器瀏覽器的混合模式操作,其中所記錄的輸入和實(shí)況輸入被混合地提交給播放器。在步驟邪4期間,一些實(shí)施方式調(diào)用增強(qiáng)DOM樹314中定義的插入的方法316,以 就所調(diào)用的方法所依附的元素130的情況或內(nèi)容來(lái)更新交互活動(dòng)測(cè)試代碼204。可以使用 常見的方法調(diào)用機(jī)制。注意,一些實(shí)施方式捕捉事件和與事件相關(guān)聯(lián)的元素。為了在播放 器瀏覽器中將事件播放回同一元素,一些實(shí)施方式在播放器瀏覽器中的該元素的位置處模 擬系統(tǒng)事件。增強(qiáng)DOM不一定被用于每一實(shí)施方式中。一些實(shí)施方式通過瀏覽器(而非系 統(tǒng))來(lái)模擬事件,所以不需要增強(qiáng)DOM樹,相反該實(shí)施方式遍歷該樹并將該事件播放到相關(guān) 對(duì)象。在步驟邪4期間,一些實(shí)施方式將光標(biāo)404(例如,虛擬光標(biāo))咬合到與目標(biāo)元素 相對(duì)應(yīng)的屏幕位置??紤]僅僅記錄鼠標(biāo)移動(dòng)和鍵盤輸入而不如本文所述將這些用戶輸入與 DOM元素進(jìn)行相關(guān)的軟件。如果所記錄的輸入被重放到元素因例如布局引擎中的差異而具 有有點(diǎn)不同的屏幕區(qū)域的不同瀏覽器中,則不同的元素可以在回放期間而非在記錄期間很 好地接收該輸入。使用本文描述的實(shí)施方式,作為對(duì)比,相同的元素可以接收輸入事件。在 回放期間,在按元素的基礎(chǔ)上處理輸入的視覺指示可以是光標(biāo)逐元素區(qū)域地咬合(不連續(xù) 地跳躍/移動(dòng))而非如它在視頻記錄中那樣連續(xù)地移動(dòng)。在一些實(shí)施方式中,咬合步驟是 在將活動(dòng)回放到播放器瀏覽器中時(shí)的任選步驟。在一些配置中,光標(biāo)還可被動(dòng)畫化852。圖9示出一些實(shí)施方式的另一視圖。開發(fā)人員選擇記錄器瀏覽器202并選擇一個(gè) 或多個(gè)播放器瀏覽器206。交互活動(dòng)測(cè)試代碼例如通過在安裝機(jī)制212之后阻塞或以其他 式截取702直接用戶輸入來(lái)禁用播放器瀏覽器上的事件。事件306發(fā)生在記錄器瀏覽器上, 并且交互活動(dòng)測(cè)試代碼204確定該事件是窗口事件902、鼠標(biāo)事件904還是鍵盤事件906。捕捉908窗口事件,并且例如將窗口對(duì)象記錄在代碼所創(chuàng)建710的規(guī)范化記錄214 中。在僅限記錄的配置中,控制循環(huán)回去以等待下一記錄器瀏覽器事件306。在記錄并播放 配置中,讀取804記錄214并且將窗口事件應(yīng)用736于播放器瀏覽器相應(yīng)窗口。同樣地捕捉910鼠標(biāo)事件并且標(biāo)識(shí)708作為該鼠標(biāo)事件的目標(biāo)的對(duì)象(元素)。 在僅限記錄的配置中,控制循環(huán)回去以等待下一記錄器瀏覽器事件306。在記錄并播放配置 中,讀取804記錄214并且當(dāng)在播放器瀏覽器中定位806 了相關(guān)對(duì)象之后將鼠標(biāo)事件應(yīng)用 736于這些相關(guān)對(duì)象。同樣地捕捉912鍵盤事件并且標(biāo)識(shí)708作為該鍵盤事件的目標(biāo)的對(duì)象(元素)。在僅限記錄的配置中,控制循環(huán)回去以等待下一記錄器瀏覽器事件306。在記錄并播放配置 中,讀取804記錄214并且當(dāng)在播放器瀏覽器中定位806 了相關(guān)對(duì)象之后將鍵盤事件應(yīng)用 736于這些相關(guān)對(duì)象。在一些實(shí)施方式中,開發(fā)人員可以凍結(jié)820記錄器瀏覽器和/或播放器瀏覽器的 狀態(tài)。可以在解除瀏覽器的凍結(jié)并繼續(xù)與所選對(duì)象進(jìn)行交互之前詢問7M這些對(duì)象。交互 可包括對(duì)記錄器瀏覽器的直接輸入和/或播放器瀏覽器中的模擬匹配交互。在應(yīng)用步驟736期間,一些實(shí)施方式生成系統(tǒng)級(jí)事件,從而封裝諸如窗口動(dòng)作 612、鼠標(biāo)動(dòng)作614或鍵盤動(dòng)作616等動(dòng)作。與常見的系統(tǒng)級(jí)事件不同,響應(yīng)于規(guī)范化記錄 214或來(lái)自記錄器瀏覽器交互活動(dòng)測(cè)試代碼的其他通信而非針對(duì)隔離的瀏覽器的用戶輸 入,所生成的系統(tǒng)級(jí)事件發(fā)生。然而,可以在所生成的系統(tǒng)級(jí)事件中使用與常見系統(tǒng)級(jí)事件 相同的事件數(shù)據(jù)格式。至少為方便起見,可以通過關(guān)于兩個(gè)基本回放場(chǎng)景的主功能來(lái)表征一些實(shí)施方 式。在一個(gè)場(chǎng)景中,一實(shí)施方式針對(duì)一實(shí)際瀏覽器實(shí)例工作并與它進(jìn)行交互。在第二個(gè)場(chǎng) 景中,一實(shí)施方式使用其他數(shù)據(jù)對(duì)回放體驗(yàn)進(jìn)行仿真;不執(zhí)行瀏覽器代碼。對(duì)于后一場(chǎng)景, 情況可能是用戶僅僅觀看一視頻,該視頻中瀏覽器正在執(zhí)行,但該瀏覽器當(dāng)前并未執(zhí)行。在 另一示例中,一實(shí)施方式顯示所捕捉的屏幕截圖并還可以將假的鼠標(biāo)光標(biāo)動(dòng)畫化以模擬用 戶交互。在第一場(chǎng)景中,使用實(shí)況瀏覽器,可能難以容易地在時(shí)間上向后移動(dòng)來(lái)進(jìn)行回放。 為此,在實(shí)況回放期間,諸如當(dāng)前DOM/標(biāo)記源等細(xì)節(jié)將必須記錄在持久介質(zhì)中(例如,在存 儲(chǔ)器中或在盤上)。在給定配置中,存儲(chǔ)和數(shù)據(jù)傳輸限制可使這樣的記錄不合需要或不實(shí) 際。在第二場(chǎng)景中,關(guān)于‘解釋每一用戶-瀏覽器動(dòng)作’的概念不一定是相關(guān)的。相 反,有在回放序列中的位置的概念,以及有允許一實(shí)施方式咬合適當(dāng)?shù)娘@示/回放狀態(tài)的 數(shù)據(jù),可能帶有某種光標(biāo)動(dòng)畫。一給定實(shí)施方式可以聚焦于第一場(chǎng)景(實(shí)況瀏覽器),或第二場(chǎng)景,或可以支持這 些場(chǎng)景中的每一個(gè)。一些實(shí)施方式支持基于持久存儲(chǔ)的DOM/其他狀態(tài)來(lái)咬合實(shí)況播放器 回放。一些實(shí)施方式支持按以下方式之一解釋所記錄的用戶-瀏覽器交互序列中的每一用 戶-瀏覽器交互通過讀取與該交互相關(guān)聯(lián)的所捕捉的數(shù)據(jù),執(zhí)行光標(biāo)的任何動(dòng)畫,并顯示 示出在記錄時(shí)所呈現(xiàn)的頁(yè)面的圖形;通過回放來(lái)自示出在記錄時(shí)發(fā)生的用戶-瀏覽器交互 的所記錄的視頻的序列。在回放時(shí)前進(jìn)涉及執(zhí)行實(shí)況用戶輸入手勢(shì)或解釋所記錄的交互活 動(dòng)手勢(shì)。一些實(shí)施方式只處理暫停、停止以及反轉(zhuǎn)模式,并且不支持恢復(fù)瀏覽器狀態(tài)。一些 實(shí)施方式采取所記錄的序列,而非實(shí)況頁(yè)面。暫??梢岳缤ㄟ^斷點(diǎn)或通過暫停按鈕來(lái)完 成。其他實(shí)施方式支持恢復(fù)狀態(tài)。一些實(shí)施方式支持在序列結(jié)構(gòu)220中設(shè)置斷點(diǎn)以指定暫停不是由用戶手勢(shì)而是 通過在回放腳本中指定暫停點(diǎn)來(lái)發(fā)起的。一些實(shí)施方式支持回放‘繼續(xù)’或繼續(xù)進(jìn)行手勢(shì), 例如通過命令窗口 222。其他命令2 可以將腳本(例如,結(jié)構(gòu)220)持久存儲(chǔ)在存儲(chǔ)(介 質(zhì)112)中并重載它們來(lái)進(jìn)行解釋。一些實(shí)施方式支持使用腳本結(jié)構(gòu)220中的斷點(diǎn)來(lái)將瀏 覽器帶到指定狀態(tài)。腳本可被暫停,并且實(shí)況命令窗口 222可用于暫停狀態(tài)中,例如以將瀏 覽器帶到指定狀態(tài)并編輯實(shí)況DOM樹。除編輯實(shí)況DOM樹之外,用戶可以執(zhí)行任何其他命令224,并且可以在另一工具中開始JavaScript 調(diào)試體驗(yàn),和/或可以與該頁(yè)面進(jìn)行交互 以更改它而不記錄這些交互。上述步驟及其相互關(guān)系在下文中結(jié)合各種實(shí)施方式來(lái)更詳細(xì)地討論。在一些實(shí)施方式中,利用至少一個(gè)系統(tǒng)102或設(shè)備提供了瀏覽器交互活動(dòng)記錄過 程,該系統(tǒng)或設(shè)備具有至少一個(gè)顯示器122、至少一個(gè)邏輯處理器110以及在操作上與邏輯 處理器和顯示器進(jìn)行有效通信的至少一個(gè)存儲(chǔ)器介質(zhì)112。一些過程包括自動(dòng)地截取702到瀏覽器的用戶輸入。在一些實(shí)施方式中,截取步 驟包括將透明窗口定位704在瀏覽器窗口之前以接收針對(duì)該瀏覽器的用戶輸入設(shè)備信號(hào)。 在一些實(shí)施方式中,截取步驟包括插入706被配置成截取由用戶輸入設(shè)備信號(hào)所產(chǎn)生的事 件的事件處理程序304,該事件處理程序在web服務(wù)器上的網(wǎng)頁(yè)的原始版本中不存在。一些 實(shí)施方式重寫頁(yè)面128以實(shí)現(xiàn)截取702 ;在其他實(shí)施方式中,重寫頁(yè)面是可任選的。在一些 實(shí)施方式中,事件處理程序304可以經(jīng)由DOM掛鉤來(lái)添加,而無(wú)需重寫頁(yè)面。一些過程包括標(biāo)識(shí)708相關(guān)元素,即瀏覽器中被配置成對(duì)所截取702的用戶輸入 進(jìn)行響應(yīng)的文檔對(duì)象模型元素。一些過程包括創(chuàng)建710指定所標(biāo)識(shí)的相關(guān)元素和用戶輸入的跨瀏覽器結(jié)構(gòu) 220 (或單獨(dú)的用戶-瀏覽器交互記錄214)。一些過程包括將跨瀏覽器結(jié)構(gòu)記錄714在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,并且具體而 言,將記錄214記錄在諸如硬盤等非易失性介質(zhì)中。在一些實(shí)施方式中,該設(shè)備具有光標(biāo)定點(diǎn)設(shè)備。在標(biāo)識(shí)了相關(guān)元素并截取了針對(duì) 該元素的用戶輸入之后,一些過程丟棄716后續(xù)光標(biāo)定點(diǎn)設(shè)備用戶輸入,直至光標(biāo)移動(dòng)到 被分配給相關(guān)元素130的屏幕領(lǐng)域(區(qū)域406)的外面。在一些實(shí)施方式中,在播放器瀏覽器中生成系統(tǒng)級(jí)事件。一些實(shí)施方式調(diào)用增強(qiáng) DOM樹314中定義的方法316。其他實(shí)施方式不一定具有增強(qiáng)DOM樹,但改為直接調(diào)用非修 改DOM樹上的onClick處理程序304。一些實(shí)施方式在瀏覽器插件/附加件模型中執(zhí)行。在一些實(shí)施方式中,創(chuàng)建步驟710創(chuàng)建具有相關(guān)元素的元素ID和動(dòng)作類別的跨瀏 覽器結(jié)構(gòu)220 (或單獨(dú)的記錄214)。一些實(shí)施方式在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中作出關(guān)聯(lián)620,關(guān)聯(lián)620將跨瀏覽器結(jié)構(gòu) 220(或單獨(dú)的記錄214)與以下各項(xiàng)中的至少一個(gè)進(jìn)行關(guān)聯(lián)瀏覽器的屏幕截圖622 ;在多 個(gè)用戶輸入被應(yīng)用于多個(gè)瀏覽器文檔對(duì)象模型元素時(shí)瀏覽器的視頻剪輯624 ;網(wǎng)頁(yè)的源代 碼的至少一部分的數(shù)據(jù)606表示;網(wǎng)頁(yè)的文檔對(duì)象模型樹的至少一部分的數(shù)據(jù)606表示。一些實(shí)施方式提供用數(shù)據(jù)和指令配置的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),這些指令在被至少 一個(gè)處理器110執(zhí)行時(shí)使該至少一個(gè)處理器執(zhí)行一種用于跨瀏覽器交互活動(dòng)測(cè)試的過程。在一些實(shí)施方式中,該過程包括從跨瀏覽器結(jié)構(gòu)220自動(dòng)地讀取804用戶-瀏覽 器交互記錄214。用戶-瀏覽器交互記錄指定文檔對(duì)象模型元素和用戶輸入。該過程定位 806播放器瀏覽器中的相關(guān)元素,即播放器瀏覽器中的與用戶-瀏覽器交互記錄中指定的 元素相對(duì)應(yīng)的文檔對(duì)象模型元素。該過程將用戶輸入應(yīng)用736于該相關(guān)元素,并在應(yīng)用該 用戶輸入之后顯示730播放器瀏覽器。在一些實(shí)施方式中,對(duì)至少兩個(gè)播放器瀏覽器206執(zhí)行定位806和應(yīng)用736步驟, 并且在應(yīng)用步驟之后同時(shí)顯示730這些播放器瀏覽器??梢允褂脝蝹€(gè)用戶-瀏覽器交互記錄214來(lái)控制不同瀏覽器中對(duì)應(yīng)文檔元素的行為。在一些配置中,回放發(fā)生在全部都是同 一類瀏覽器的瀏覽器中,例如在教室或研討會(huì)設(shè)置中。在一些實(shí)施方式中,對(duì)至少兩種不同 種類的至少兩個(gè)播放器瀏覽器執(zhí)行定位806和應(yīng)用736步驟,從而使用單個(gè)用戶-瀏覽器 交互記錄214來(lái)控制不同種類的瀏覽器中的對(duì)應(yīng)文檔元素的行為。在一些實(shí)施方式中,對(duì) 至少兩個(gè)機(jī)器上的至少兩個(gè)播放器瀏覽器執(zhí)行定位806和應(yīng)用736步驟,從而使用單個(gè)用 戶-瀏覽器交互記錄214來(lái)控制多個(gè)機(jī)器上的瀏覽器中的對(duì)應(yīng)文檔元素的行為。一些實(shí)施 方式使用跨機(jī)器場(chǎng)景,例如跨教室設(shè)置中的多個(gè)機(jī)器的同步回放。一些實(shí)施方式使用各種 瀏覽器,例如作為一個(gè)示例,微軟hternet Explorer 瀏覽器和Apple Safari 瀏覽器,或 作為另一示例,微軟hternet Explorer 版本6和版本7瀏覽器。
      在一些實(shí)施方式中,用戶-瀏覽器交互記錄讀取步驟804是通過自動(dòng)地截取702 對(duì)作為與播放器瀏覽器不同種類的瀏覽器的記錄器瀏覽器的用戶輸入;通過標(biāo)識(shí)708被配 置成對(duì)所截取的用戶輸入進(jìn)行響應(yīng)的記錄器瀏覽器中的目標(biāo)文檔對(duì)象模型元素;以及通過 從目標(biāo)元素和所截取的用戶輸入來(lái)創(chuàng)建710用戶-瀏覽器交互記錄來(lái)進(jìn)行的。可以在一類 播放器中記錄并在另一類播放器中回放。在一些實(shí)施方式中,定位806播放器瀏覽器中的相關(guān)元素的步驟包括以下各項(xiàng)中 的一個(gè)或多個(gè)自動(dòng)地確定808播放器瀏覽器元素具有也標(biāo)識(shí)該用戶-瀏覽器交互記錄元 素的標(biāo)識(shí)元素ID屬性值;自動(dòng)地確定810播放器瀏覽器元素具有也標(biāo)識(shí)該用戶-瀏覽器交 互記錄元素的標(biāo)識(shí)DOM樹位置;自動(dòng)地確定812播放器瀏覽器元素具有也標(biāo)識(shí)該用戶-瀏 覽器交互記錄元素的一組元素樣式特性和/或?qū)傩灾?;?或自動(dòng)地確定814播放器瀏覽 器元素具有也標(biāo)識(shí)該用戶-瀏覽器交互記錄元素的元素屬性值與相對(duì)于視口原點(diǎn)的位置 的組合。在一些實(shí)施方式中,該過程包括詢問7 播放器瀏覽器文檔對(duì)象模型元素。在一 些實(shí)施方式中,該過程包括接受816腳本語(yǔ)言語(yǔ)句并且響應(yīng)于所接受的語(yǔ)句修改818播放 器瀏覽器文檔對(duì)象模型元素。在一些實(shí)施方式中,該過程包括將播放器瀏覽器文檔對(duì)象模 型元素的當(dāng)前狀態(tài)存儲(chǔ)(保存726)到非易失性計(jì)算機(jī)可讀介質(zhì)112中。在一些配置中,腳 本語(yǔ)言語(yǔ)句修改818D0M元素,使得它可以指示觸發(fā)了什么事件。DOM元素和事件都被存儲(chǔ) 以供稍后回放。在一些配置中,腳本可被用來(lái)修改818元素,無(wú)論是否還詢問7M該元素以 及無(wú)論是否還將元素改變保存7 到盤。在可聚焦于實(shí)況瀏覽器中的回放的一些實(shí)施方式中,該過程包括通過讀取用 戶-瀏覽器交互記錄214、定位806播放器瀏覽器中的相關(guān)元素,將用戶輸入應(yīng)用736于該 相關(guān)元素、以及在應(yīng)用該用戶輸入之后顯示730播放器瀏覽器來(lái)在實(shí)況瀏覽器中解釋830 所記錄的用戶-瀏覽器交互序列中的每一用戶-瀏覽器交互。在一些情況下,暫停834回 放,即,暫停解釋用戶-瀏覽器交互記錄的序列的步驟,直至接收到繼續(xù)回放的命令224。在 一些情況下,回放以步進(jìn)836模式發(fā)生,即解釋連續(xù)的用戶-瀏覽器交互記錄的序列中的每 一個(gè)的步驟由相應(yīng)用戶命令2M來(lái)觸發(fā)。在一些實(shí)施方式中,該過程包括顯示848從瀏覽器記錄的屏幕截圖622,示出了至 少一個(gè)用戶-瀏覽器交互在該瀏覽器中的應(yīng)用736。在一些實(shí)施方式中,該過程包括顯示 850從瀏覽器記錄的視頻剪輯624,示出了多個(gè)用戶-瀏覽器交互在該瀏覽器中的應(yīng)用736。 在一些實(shí)施方式中,該過程包括在從瀏覽器記錄的至少一個(gè)圖像(屏幕截圖、視頻剪輯)的顯示730期間將光標(biāo)動(dòng)畫化852,示出了多個(gè)用戶-瀏覽器交互在該瀏覽器中的應(yīng)用736。 在一些實(shí)施方式中,該過程包括示出844與從瀏覽器記錄的至少一個(gè)圖像(通過關(guān)聯(lián)620、 標(biāo)記幀擬6或以其他方式)相同步的DOM樹數(shù)據(jù),示出了至少一個(gè)用戶-瀏覽器交互在該 瀏覽器中的應(yīng)用736。在一些實(shí)施方式中,該過程包括在單個(gè)屏幕中顯示730至少兩個(gè)瀏覽器202、206 中的每一個(gè)的瀏覽器窗口,從而通過將注意力集中于瀏覽器的當(dāng)前活動(dòng)的部分來(lái)高效地使 用有限的屏幕空間。這可以例如通過顯示兩個(gè)瀏覽器窗口作為應(yīng)用程序子窗口來(lái)完成。這 些窗口可以是平鋪的或重疊的。在一些實(shí)施方式中,該過程包括在播放器瀏覽器處接收802跨網(wǎng)絡(luò)108傳送734 的多個(gè)用戶-瀏覽器交互記錄214,使用接收到的瀏覽器交互記錄來(lái)定位806播放器瀏覽器 中的相關(guān)元素,使用接收到的用戶-瀏覽器交互記錄來(lái)將用戶輸入應(yīng)用736于相關(guān)元素,以 及在應(yīng)用了用戶輸入中的至少一個(gè)之后顯示730播放器瀏覽器。在一些實(shí)施方式中,該過程包括通過加載先前存儲(chǔ)的DOM樹狀態(tài)來(lái)將播放器瀏覽 器置于842指定狀態(tài)。這一狀態(tài)加載可以是解釋用戶-瀏覽器交互以達(dá)到該指定狀態(tài)的替 換方案。在一些情況下,不僅僅使用DOM樹狀態(tài),例如如果執(zhí)行JavaScript 代碼,則該實(shí)施 方式還將再現(xiàn)該腳本的執(zhí)行狀態(tài),如當(dāng)前語(yǔ)句和變量值。在一些實(shí)施方式中,該過程包括以與執(zhí)行播放器交互的次序相反的次序來(lái)解釋 830播放器交互記錄的序列中的每一瀏覽器交互記錄。即,回放是以反轉(zhuǎn)838模式執(zhí)行的。 在一些實(shí)施方式中,回放允許但不需要實(shí)況瀏覽器。在一些實(shí)施方式中,定位806相關(guān)元素的步驟包括以下動(dòng)作中的至少一個(gè)確定 808該元素具有也標(biāo)識(shí)另一瀏覽器中的相關(guān)元素的標(biāo)識(shí)元素ID屬性值;確定810該元素具 有也標(biāo)識(shí)另一瀏覽器中的相關(guān)元素的標(biāo)識(shí)DOM樹位置;確定812該元素具有也標(biāo)識(shí)另一瀏 覽器中的相關(guān)元素的一組元素樣式特性和/或?qū)傩灾?;確定812、814該播放器元素具有也 標(biāo)識(shí)另一瀏覽器中的相關(guān)元素的元素屬性值與相對(duì)于視口原點(diǎn)的位置的組合。在一些實(shí)施 方式中,使用動(dòng)態(tài)確定的一組元素樣式特性和/或?qū)傩灾?;檢查DOM樹中的元素的這些值 并且找到并使用只屬于相關(guān)元素的一組值。在一些實(shí)施方式中,使用預(yù)定的一組元素樣式 特性和/或?qū)傩灾?,這基于該組將始終把任何元素130與頁(yè)面的其他元素區(qū)分開來(lái)的假設(shè)。 然而,在某些情形中,一組元素屬性值將匹配多個(gè)元素,然后將默認(rèn)或通過用戶選擇來(lái)選擇 其中一個(gè)元素。在一些實(shí)施方式中,在多個(gè)瀏覽器中加載同一文檔,并且將這些瀏覽器的大 小調(diào)整為相同的像素尺寸。在一些實(shí)施方式中,將用戶輸入應(yīng)用736于相關(guān)播放器元素的步驟包括在播放器 瀏覽器中生成系統(tǒng)級(jí)事件而不管缺少對(duì)該播放器瀏覽器的直接用戶輸入。這樣生成的事件 通過在元素130層面重復(fù)被直接給予記錄器瀏覽器的用戶輸入來(lái)模擬(仿真)直接用戶輸 入。在一些實(shí)施方式中,將用戶輸入應(yīng)用736于相關(guān)播放器元素的步驟包括在相關(guān)播 放器元素上調(diào)用增強(qiáng)DOM樹中所定義的方法316。這些方法316也可被稱為由DOM定義的方 法。方法316包括但不一定限于腳本語(yǔ)言方法(例如,采用Sun Microsystems JavaScript 代碼、Adobe ActionScript 代碼、微軟VBkriptTM代碼),以及用諸如C#或C++等其他編 程語(yǔ)言的方法。DOM定義DOM的元素130所展示的方法,并且這些方法可以從腳本語(yǔ)言216以及其他語(yǔ)言的語(yǔ)句2 調(diào)用。在一些實(shí)施方式中,該過程包括通過執(zhí)行以下動(dòng)作中的至少一個(gè)來(lái)促進(jìn)820狀態(tài) 凍結(jié)掛起822記錄器瀏覽器中的腳本語(yǔ)言(例如,關(guān)閉JavaScript 機(jī)器);掛起822播放 器瀏覽器中的腳本語(yǔ)言;掛起擬4瀏覽器的執(zhí)行;掛起擬6記錄器瀏覽器與web服務(wù)器之間 的通信(例如,關(guān)閉AJAX);掛起擬6播放器瀏覽器與web服務(wù)器之間的通信;掛起擬8播 放器瀏覽器中的模擬的系統(tǒng)級(jí)事件的生成,即模擬對(duì)播放器瀏覽器的直接用戶輸入但并非 由該直接用戶輸入產(chǎn)生的事件。在一些實(shí)施方式中,該過程包括通過讀取屬性值來(lái)就瀏覽器元素的位置和/或樣 式詢問7 瀏覽器。在一些實(shí)施方式中,詢問7 在凍結(jié)狀態(tài)期間發(fā)生。否則,DOM可以在 正在發(fā)生詢問時(shí)改變,這可使得讀取變得不可靠??梢韵蛴脩麸@示通過詢問7M獲取的信 息和/或記錄這些信息以供可能的稍后檢查。在一些實(shí)施方式中,詢問自動(dòng)發(fā)生而無(wú)需凍 結(jié)狀態(tài),例如,斷點(diǎn)可基于詢問“在元素X樣式變成Sl時(shí)停止”。在一些實(shí)施方式中,該過程還包括重寫播放器瀏覽器中所顯示的文檔的HTML,該 重寫(某種形式的截取702)對(duì)應(yīng)于用戶與記錄器瀏覽器的交互。在一些實(shí)施方式中,該過程還包括在播放器瀏覽器中通過生成事件,例如向元素X 發(fā)送點(diǎn)擊來(lái)模擬用戶輸入。一些實(shí)施方式使用被重寫以插入JavaScript 代碼以便鉤住事 件處理程序304作為模擬器的頁(yè)面。一些實(shí)施方式避免重寫而改為使用經(jīng)由DOM展示的方
      法/事件。在一些實(shí)施方式中,該過程還包括在詢問步驟后將顯示光標(biāo)咬合回到詢問前屏幕 位置。直接由鼠標(biāo)驅(qū)動(dòng)的實(shí)際光標(biāo)處于記錄器瀏覽器中;一些實(shí)施方式在播放器瀏覽器中 模擬光標(biāo)。取決于實(shí)現(xiàn),播放器光標(biāo)不一定跟蹤記錄器光標(biāo)的每一次移動(dòng)。例如,交互活動(dòng) 測(cè)試代碼可以忽略元素的區(qū)域406內(nèi)的移動(dòng)并且僅僅使該光標(biāo)在元素區(qū)域之間跳躍。事實(shí) 上,因?yàn)橄嗤脑?30在不同的瀏覽器中可不同地布局,所以播放器光標(biāo)可以在交互活 動(dòng)測(cè)試期間在元素區(qū)域之間很好地跳躍。在一些實(shí)施方式中,記錄器瀏覽器的光標(biāo)始終跟 蹤鼠標(biāo)。播放器瀏覽器的光標(biāo)只可在元素之間移動(dòng),或者至少不完全跟蹤元素內(nèi)的所有鼠 標(biāo)移動(dòng)。經(jīng)配置的介質(zhì)一些實(shí)施方式包括經(jīng)配置的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)112。介質(zhì)112可包括盤(磁盤、 光盤或其他)、RAM、EEPROM或其他ROM、和/或其他可配置存儲(chǔ)器,具體包括非瞬態(tài)計(jì)算機(jī) 可讀介質(zhì)(與電線和其他傳播信號(hào)介質(zhì)相對(duì))。該經(jīng)配置的存儲(chǔ)介質(zhì)具體可以是可移動(dòng)存 儲(chǔ)介質(zhì)114,諸如CD、DVD,或閃存??梢允强梢苿?dòng)或不可移動(dòng)并且可以是易失性或非易失性 的通用存儲(chǔ)器可被配置成使用數(shù)據(jù)118和指令116形式的從可移動(dòng)介質(zhì)114和/或諸如網(wǎng) 絡(luò)連接等另一源讀取的諸如交互活動(dòng)測(cè)試代碼204、機(jī)制212和/或規(guī)范化記錄214等項(xiàng)目 來(lái)生成經(jīng)配置的介質(zhì)的實(shí)施方式。經(jīng)配置的介質(zhì)112能夠使計(jì)算機(jī)系統(tǒng)執(zhí)行用于通過如此 處所公開的交互活動(dòng)測(cè)試來(lái)變換數(shù)據(jù)的方法步驟。圖1到9因而幫助示出經(jīng)配置的存儲(chǔ)介 質(zhì)實(shí)施方式和方法實(shí)施方式,以及系統(tǒng)和方法實(shí)施方式。具體而言,圖7-9中示出的或在此 以其他方式教導(dǎo)的任何方法步驟,可被用來(lái)幫助配置存儲(chǔ)介質(zhì)以形成經(jīng)配置的介質(zhì)實(shí)施方 式。附加示例
      以下提供附加細(xì)節(jié)和設(shè)計(jì)考慮。與本文其他示例一樣,在給定實(shí)施方式中,所描述 的特征可以單獨(dú)地使用和/或組合使用,或根本不使用。在HTML頁(yè)面1 上,所有單獨(dú)的頁(yè)面元素130都被組織在被稱為文檔對(duì)象模型 (DOM)的樹分層結(jié)構(gòu)中。每一個(gè)DOM元素130都可以經(jīng)由事件機(jī)制來(lái)監(jiān)聽用戶發(fā)起的動(dòng)作 并對(duì)其作出反應(yīng)。DOM分層結(jié)構(gòu)可隨瀏覽器變化,并且甚至隨瀏覽器版本變化。使用此處 的教導(dǎo),對(duì)于給定頁(yè)面,可以將瀏覽器DOM規(guī)范化以使得可以相同地對(duì)待這些分層結(jié)構(gòu)。在 一些實(shí)施方式中,瀏覽器DOM是在該實(shí)施方式與跨不同DOM樹的對(duì)應(yīng)元素相匹配的意義上 規(guī)范化的。將所記錄的一組動(dòng)作規(guī)范化,從而允許跨瀏覽器回放到所匹配的元素。各實(shí)施 方式提供了用于跨一定范圍的瀏覽器重新應(yīng)用規(guī)范化的樹元素消息(例如,記錄214)的機(jī) 制。各實(shí)施方式允許開發(fā)人員在復(fù)制在一個(gè)瀏覽器中創(chuàng)建的交互的同時(shí)或在所需時(shí)間(數(shù) 小時(shí)、數(shù)天、數(shù)星期、數(shù)月或甚至數(shù)年)之后在DOM元素級(jí)跨一定范圍的其他所支持的瀏覽 器來(lái)查看該交互。與對(duì)僅集中于頁(yè)面布局的跨瀏覽器診斷和調(diào)試的解決方案不同,本文描 述的各實(shí)施方式允許交互活動(dòng)測(cè)試并創(chuàng)建交互的永久記錄以供稍后使用、評(píng)估以及修改。在一些實(shí)施方式中,用戶可以操作記錄器瀏覽器以及任意數(shù)量的播放器瀏覽器中 的頁(yè)面顯示。在記錄器瀏覽器中采取的用戶發(fā)起的動(dòng)作(例如,點(diǎn)擊、鼠標(biāo)懸停、拖拽事件) 的結(jié)果在播放器瀏覽器中近乎實(shí)時(shí)地顯示。一些實(shí)施方式通過截取702D0M對(duì)象上的事件、 記錄用戶輸入和目標(biāo)元素身份并隨后在其他瀏覽器中的相同頁(yè)面元素上重放這些事件來(lái) 操作。這允許用戶評(píng)估該頁(yè)面的交互式行為是否在瀏覽器之間同等地操作,并允許用戶對(duì) 交互的記錄進(jìn)行編輯或注釋。由于瀏覽器呈現(xiàn)差異,DOM元素有時(shí)在記錄器瀏覽器和播放 器瀏覽器上將不位于相同物理(X,y)屏幕位置中。由此,各實(shí)施方式并非簡(jiǎn)單地在窗口中 的給定位置處模擬系統(tǒng)事件,而是定位806播放器瀏覽器DOM中的受影響的元素并將操作 應(yīng)用于該元素。一些實(shí)施方式提供用于生成和記錄被描述為針對(duì)標(biāo)記元素的操作以及應(yīng)用級(jí)消 息(例如,顯式鼠標(biāo)坐標(biāo))的頁(yè)面交互的機(jī)制。一些實(shí)施方式提供用于提升/降低去往/ 來(lái)自DOM樹中的元素(諸如<li>標(biāo)簽上方的懸停)的系統(tǒng)消息(諸如特定屏幕坐標(biāo)處的 鼠標(biāo)移動(dòng))的機(jī)制。在一些實(shí)施方式中,播放器瀏覽器可位于與主瀏覽器相同的物理機(jī)器上,或位于 跨本地網(wǎng)絡(luò)或因特網(wǎng)通信的不同機(jī)器上。一些實(shí)施方式包括在同一機(jī)器上主存多個(gè)瀏覽器 并允許容易地比較和一起查看這些瀏覽器的交互活動(dòng)測(cè)試代碼204接口。在一些實(shí)施方式中,交互活動(dòng)可以在任何時(shí)刻被凍結(jié)以便跨瀏覽器比較布局。可 以基于常見的或創(chuàng)新的機(jī)制來(lái)利用用于查看正在應(yīng)用什么操作以及什么操作已被應(yīng)用于 哪些元素的界面。一些工具提供用于跨多個(gè)瀏覽器標(biāo)識(shí)頁(yè)面布局問題的跨瀏覽器調(diào)試和診 斷。此處所描述的各實(shí)施方式解決了另外的方面。一個(gè)方面關(guān)注能夠如何測(cè)試需要某些交互活動(dòng)來(lái)進(jìn)入特定狀態(tài)的網(wǎng)頁(yè)的布局。例 如,位于登錄屏幕之后的網(wǎng)頁(yè)128需要在能夠分析感興趣的頁(yè)面布局之前登錄信息被填充 并提交。為了比較多個(gè)瀏覽器中的頁(yè)面,每一個(gè)瀏覽器(記錄器和播放器)接收相同的登 錄信息并(幾乎)同時(shí)將該信息提交給服務(wù)器。作為另一示例,在比較隱藏在所謂的“可折 疊控件”之后的內(nèi)容的情況下,應(yīng)在比較內(nèi)容布局之前觸發(fā)該可折疊控件。此處所描述的各 實(shí)施方式允許觸發(fā)可折疊控件,由此可以比較所有感興趣瀏覽器中的布局。
      另一方面關(guān)注如何能夠跨多個(gè)瀏覽器測(cè)試交互活動(dòng)。網(wǎng)頁(yè)1 越來(lái)越結(jié)合交互元 素,諸如菜單、樹控件、重疊控件、照片庫(kù)等。因?yàn)镠TML/CSS和JavaScript 機(jī)器實(shí)現(xiàn)跨不同 的瀏覽器變化,所以開發(fā)者可以通過同時(shí)跨多個(gè)瀏覽器測(cè)試該交互活動(dòng)以確保其正確地工 作來(lái)受益。一些常見的方法幫助網(wǎng)頁(yè)作者通過在呈現(xiàn)在多個(gè)瀏覽器中時(shí)取得網(wǎng)頁(yè)的圖片并 且然后提供一組工具來(lái)幫助比較這些圖片以及用于創(chuàng)建這些圖片的元素來(lái)調(diào)試跨瀏覽器 布局問題。相反,此處所描述的一些實(shí)施方式鏈接多個(gè)實(shí)況瀏覽器,由此允許跨這些瀏覽器 全面地比較交互活動(dòng)。在一些實(shí)施方式中,瀏覽器被主存在公共界面中,這允許用戶容易地選擇要比較 的瀏覽器。在圖4所示的兩個(gè)瀏覽器的情況下,左邊的瀏覽器是“基準(zhǔn)”或記錄器瀏覽器, 而右邊的瀏覽器是播放器。一些實(shí)施方式允許多個(gè)播放器瀏覽器。假定網(wǎng)頁(yè)具有在用戶將光標(biāo)移至導(dǎo)航條中的單詞上方時(shí)變?yōu)榭梢姷囊唤M彈出菜 單。HTML文檔由填充了被稱為文檔對(duì)象模型(DOM)的樹狀分層結(jié)構(gòu)的一系列元素130構(gòu) 成。每一種類型的元素都具有它可響應(yīng)的各種事件,諸如鼠標(biāo)懸停、點(diǎn)擊、雙擊、聚焦等。這 些事件還可從子元素向上傳播至其父元素。一些實(shí)施方式阻止播放器瀏覽器接收關(guān)于直接 窗口輸入的任何系統(tǒng)級(jí)消息,因此播放器將不會(huì)對(duì)其各自的窗口中的任何直接點(diǎn)擊或鼠標(biāo) 移動(dòng)作出反應(yīng)。在記錄器瀏覽器窗口中,截取鼠標(biāo)和鍵盤事件。對(duì)于鼠標(biāo)事件,跟蹤光標(biāo)的 位置,并且光標(biāo)下面的元素130與每一個(gè)鼠標(biāo)事件相關(guān)聯(lián),例如在規(guī)范化記錄214中。在鍵 盤事件的情況下,帶有焦點(diǎn)的元素與每一個(gè)鍵輸入相關(guān)聯(lián)。在一個(gè)示例中,鼠標(biāo)懸停事件在 用戶將光標(biāo)移至導(dǎo)航條中的單詞“About Me (關(guān)于我)的上方時(shí)發(fā)生?!币坏┳x取804 了或以其他方式標(biāo)識(shí)了事件及相關(guān)聯(lián)的元素,就將它們應(yīng)用于播放 器瀏覽器。與記錄器窗口相關(guān)聯(lián)(而非與頁(yè)面元素相關(guān)聯(lián))的消息,諸如移動(dòng)和調(diào)整大小 等,以系統(tǒng)消息的形式被應(yīng)用于播放器瀏覽器的窗口。應(yīng)用于記錄器瀏覽器中的頁(yè)面元素 的事件被應(yīng)用于播放器瀏覽器中的對(duì)應(yīng)的頁(yè)面元素。對(duì)應(yīng)元素在播放器瀏覽器中的顯示 (屏幕和/或視口)位置可以不匹配該元素在記錄器瀏覽器中的位置,因此找到所涉及的元 素的位置。由于DOM樹在記錄器和播放器瀏覽器之間可能是不同的,因此目標(biāo)頁(yè)面元素在 記錄器瀏覽器中通過算法來(lái)被標(biāo)識(shí)并在播放器瀏覽器中被定位。一旦找到元素,事件就程 序性地應(yīng)用于該元素。當(dāng)事件被重放至播放器瀏覽器中的對(duì)應(yīng)元素時(shí),這些播放器瀏覽器 將在頁(yè)面跨不同的瀏覽器兼容的情況下展示與記錄器相同的行為,或者在該頁(yè)面不兼容的 情況下展示不同的行為。在一些情況下,用戶可能想要測(cè)試/檢查元素在特定交互狀態(tài)時(shí)(諸如在展開菜 單時(shí))的布局。在這種情況下,一些實(shí)施方式可凍結(jié)交互活動(dòng)。在一個(gè)示例中,敲擊Fll鍵 將凍結(jié)記錄器和播放器瀏覽器的狀態(tài)。此時(shí),用戶可以向?yàn)g覽器詢問7 關(guān)于每一個(gè)元素 的位置和樣式信息以確定任何差異的源可能是什么。再次敲擊Fll將解除交互活動(dòng)的凍 結(jié),以便允許用戶再一次在瀏覽器中觸發(fā)事件。各實(shí)施方式不限于安裝在單個(gè)機(jī)器上的瀏覽器。本文的教導(dǎo)可用于控制連接網(wǎng)絡(luò) 的設(shè)備上的瀏覽器。這可用于測(cè)試?yán)鏏pple Macintosh 和Microsoft Windows機(jī) 器上的瀏覽器之間的兼容性。在非本地瀏覽器的情況下,一些實(shí)施方式使用從記錄器瀏覽 器接收消息并將其應(yīng)用于遠(yuǎn)程播放器的交互活動(dòng)測(cè)試實(shí)用程序。
      顯示730和/或記錄714事件的序列以及這些事件被應(yīng)用到的元素也可能是有 用的。這可用于幫助調(diào)試頁(yè)面或在不同的時(shí)刻重放序列。在一些情況下,能夠記錄并回放 交互活動(dòng)以用于稍后詢問,或保存腳本來(lái)在播放器上重放以確保版本之間的兼容性是有用 的。這一屏幕捕捉的一個(gè)好處是能夠在與實(shí)況瀏覽器相同的界面內(nèi)顯示云瀏覽器的結(jié)果。 假定主存若干實(shí)況播放器瀏覽器并且具有來(lái)自云瀏覽器的流視頻(或屏幕截圖序列)的實(shí) 施方式。在該界面內(nèi),可以測(cè)試?yán)鏟C和Mac瀏覽器。一些實(shí)施方式將遠(yuǎn)程瀏覽器看作本 地實(shí)況瀏覽器??赡艽嬖谀撤N等待時(shí)間,但不對(duì)所有遠(yuǎn)程瀏覽器進(jìn)行屏幕截圖,而是可以跨 線路來(lái)傳送消息并發(fā)送回變化的屏幕截圖,而仍然與實(shí)況瀏覽器交互。結(jié)論雖然在此將具體實(shí)施方式
      明確示出并描述為方法、經(jīng)配置介質(zhì)或系統(tǒng),但可以明 白,一種類型的實(shí)施方式的討論一般也延及其他實(shí)施方式類型。例如,結(jié)合圖7到9的方法 描述還幫助描述經(jīng)配置的介質(zhì),并幫助描述如結(jié)合其他附圖討論的那些系統(tǒng)和制品等系統(tǒng) 和制品的操作。來(lái)自一個(gè)實(shí)施方式的限制并不需要在另一實(shí)施方式中。具體而言,方法不 一定需要限于在討論諸如經(jīng)配置的介質(zhì)等系統(tǒng)或制品時(shí)呈現(xiàn)的數(shù)據(jù)結(jié)構(gòu)和安排。附圖中示出的每一項(xiàng)也并不一定存在于每一實(shí)施方式中。相反,一實(shí)施方式可包 含附圖中未明確示出的項(xiàng)。雖然在文中和附圖中通過具體示例示出了一些可能的實(shí)施方 式,但各實(shí)施方式可以與這些示例不同。例如,一示例的具體特征可被忽略、重命名、不同地 編組、重復(fù)、以硬件和/或軟件來(lái)不同地初始化、或作為出現(xiàn)在兩個(gè)或更多個(gè)示例中的特征 的混合。在一些實(shí)施方式中,在一個(gè)位置處示出的功能也可以在不同的位置處提供。如此處所使用的“被配置成響應(yīng)所截取的用戶輸入”和類似語(yǔ)言不一定要求響應(yīng) 發(fā)生。元素可以僅僅由于是用戶輸入的預(yù)期目標(biāo)而被“配置成響應(yīng)用戶輸入”。由此,被配置 成響應(yīng)用戶輸入的元素不一定具有為某一用戶事件注冊(cè)的事件處理程序。一實(shí)施方式可截 取事件,即使目標(biāo)元素(被配置成響應(yīng)該輸入的元素)實(shí)際上不會(huì)響應(yīng)于該事件而做任何 事。例如,一個(gè)瀏覽器中的DIV上的鼠標(biāo)懸??梢圆蛔鋈魏问拢硪粸g覽器中的同一 DIV 具有改變其背景顏色的鼠標(biāo)懸停。一實(shí)施方式仍舊可以截取領(lǐng)導(dǎo)者瀏覽器中的事件,即使 跟隨者瀏覽器將不會(huì)響應(yīng)于該事件而采取動(dòng)作。在全文中通過附圖標(biāo)記引用了各附圖。在附圖中或文中的與給定附圖標(biāo)記相關(guān)聯(lián) 的措辭中的任何明顯的矛盾,應(yīng)被理解為簡(jiǎn)單地拓寬該附圖標(biāo)記所引用的事物的范圍。如本文所使用的,諸如“一”和“該”等詞語(yǔ)包括所指示的項(xiàng)或步驟中的一個(gè)或多 個(gè)。具體而言,在權(quán)利要求書中,對(duì)項(xiàng)的引用一般意味著存在至少一個(gè)這樣的項(xiàng),并且對(duì)步 驟的引用意味著執(zhí)行這一步驟的至少一個(gè)實(shí)例。標(biāo)題只是出于方便的目的;關(guān)于給定主題的信息可以在其標(biāo)題指示該主題的章節(jié) 之外找到。所提交的所有權(quán)利要求和摘要是該說明書的一部分。盡管在附圖中示出并在以上描述了各示例性實(shí)施方式,但對(duì)本領(lǐng)域技術(shù)人員顯而 易見的是,可以作出不背離權(quán)利要求書中闡明的原理和概念的多種修改。盡管已經(jīng)用結(jié)構(gòu) 特征和/或方法動(dòng)作專用的語(yǔ)言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主 題不必限于上述具體特征或動(dòng)作。給定定義或示例中標(biāo)識(shí)的每一措施或方面,不一定存在 或不一定用于每一實(shí)施方式。相反,所描述的具體特征和動(dòng)作是作為供在實(shí)現(xiàn)權(quán)利要求時(shí)考慮的示例而公開的。 落入權(quán)利要求書的等效方案的含義和范圍內(nèi)的所有改變應(yīng)被權(quán)利要求書的范圍 所涵蓋。
      權(quán)利要求
      1.一種利用至少一個(gè)設(shè)備的瀏覽器交互活動(dòng)記錄方法,所述設(shè)備具有至少一個(gè)邏輯處 理器以及與邏輯處理器進(jìn)行有效通信的至少一個(gè)存儲(chǔ)器,所述方法包括自動(dòng)地進(jìn)行的以下 步驟截取對(duì)瀏覽器的用戶輸入;標(biāo)識(shí)相關(guān)元素,即所述瀏覽器中的被配置成對(duì)所截取的用戶輸入進(jìn)行響應(yīng)的文檔對(duì)象 模型元素;創(chuàng)建指定所標(biāo)識(shí)的相關(guān)元素和所述用戶輸入的用戶-瀏覽器交互記錄;以及 將所述用戶_瀏覽器交互記錄記錄在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。
      2.如權(quán)利要求1所述的方法,其特征在于,所述截取步驟還包括以下步驟中的至少一個(gè)將透明窗口定位在瀏覽器窗口之前以接收針對(duì)該瀏覽器的用戶輸入設(shè)備信號(hào); 鉤住所述瀏覽器的窗口句柄;插入被配置成截取由用戶輸入設(shè)備信號(hào)所產(chǎn)生的事件的事件處理程序,所述事件處理 程序在web服務(wù)器上的網(wǎng)頁(yè)的原始版本中不存在。
      3.如權(quán)利要求1所述的方法,其特征在于,所述設(shè)備具有光標(biāo)定位設(shè)備,并且所述方法 還包括在標(biāo)識(shí)了所述相關(guān)元素并截取了針對(duì)該元素的用戶輸入之后,丟棄后續(xù)光標(biāo)定位設(shè) 備用戶輸入,直至光標(biāo)移動(dòng)到被分配給該相關(guān)元素的屏幕領(lǐng)域的外面。
      4.如權(quán)利要求1所述的方法,其特征在于,所述創(chuàng)建步驟創(chuàng)建具有所述相關(guān)元素的元 素ID和動(dòng)作類別的用戶_瀏覽器交互記錄。
      5.如權(quán)利要求1所述的方法,其特征在于,還包括在所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中作出 關(guān)聯(lián),所述關(guān)聯(lián)將用戶-瀏覽器交互記錄與以下各項(xiàng)中的至少一個(gè)進(jìn)行關(guān)聯(lián)所述瀏覽器的屏幕截圖; 所述瀏覽器的實(shí)況視圖;在多個(gè)用戶輸入被應(yīng)用于多個(gè)瀏覽器文檔對(duì)象模型元素時(shí)所述瀏覽器的視頻; 網(wǎng)頁(yè)的源代碼的至少一部分的表示; 所述網(wǎng)頁(yè)的文檔對(duì)象模型樹的至少一部分的表示。
      6.一種跨瀏覽器交互活動(dòng)測(cè)試系統(tǒng),包括 至少一個(gè)邏輯處理器;與邏輯處理器進(jìn)行有效通信的至少一個(gè)本地存儲(chǔ)器;具有網(wǎng)頁(yè)的文檔對(duì)象模型元素的瀏覽器,所述文檔對(duì)象模型元素駐留在本地存儲(chǔ)器中;駐留在至少一個(gè)本地存儲(chǔ)器中的跨瀏覽器結(jié)構(gòu),所述跨瀏覽器結(jié)構(gòu)指定文檔對(duì)象模型 元素以及用戶輸入;以及駐留在至少一個(gè)本地存儲(chǔ)器中的交互活動(dòng)測(cè)試代碼,所述交互活動(dòng)測(cè)試代碼(i)被配 置成在各瀏覽器文檔對(duì)象模型元素之間定位與所述跨瀏覽器結(jié)構(gòu)中指定的元素相對(duì)應(yīng)的 元素,并且(ii)被配置成將所述用戶輸入應(yīng)用于所定位的元素。
      7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述跨瀏覽器結(jié)構(gòu)指定具有對(duì)應(yīng)的用戶輸 入的多個(gè)文檔對(duì)象模型元素,并且其中對(duì)于所述文檔對(duì)象模型元素中的至少一個(gè),所述跨 瀏覽器結(jié)構(gòu)包括一組屬性、元素的標(biāo)簽名、元素ID屬性值、元素的DOM樹位置。
      8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述跨瀏覽器結(jié)構(gòu)指定具有對(duì)應(yīng)的用戶輸 入的多個(gè)文檔對(duì)象模型元素,并且其中對(duì)于所述用戶輸入中的至少一個(gè),所述跨瀏覽器結(jié) 構(gòu)包括用戶輸入的動(dòng)作類別、用戶輸入的坐標(biāo)位置。
      9.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)包括以下至少一個(gè)駐留在本地存儲(chǔ)器中的腳本語(yǔ)言語(yǔ)句序列,該序列包含指定文檔對(duì)象模型元素和對(duì)應(yīng) 的用戶輸入的語(yǔ)句;調(diào)用所述文檔對(duì)象模型元素所展示的方法的語(yǔ)句序列。
      10.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述交互活動(dòng)測(cè)試代碼包括命令窗口,并 且所述交互活動(dòng)測(cè)試代碼被配置成執(zhí)行以下命令窗口操作中的至少一個(gè)將實(shí)況交互記錄在所述跨瀏覽器結(jié)構(gòu)中,即記錄當(dāng)前用戶輸入和該用戶輸入所針對(duì)的 瀏覽器文檔對(duì)象模型元素;基于腳本語(yǔ)言語(yǔ)句來(lái)在所述瀏覽器文檔對(duì)象模型元素中進(jìn)行實(shí)況編輯; 模擬用戶輸入手勢(shì); 檢索網(wǎng)頁(yè)狀態(tài)信息;在回放跨瀏覽器結(jié)構(gòu)的用戶_瀏覽器交互記錄的序列的一組瀏覽器的指定的適當(dāng)子 集中執(zhí)行命令;執(zhí)行記錄_回放命令;跨多個(gè)瀏覽器實(shí)例來(lái)傳播DOM元素的改變;跨多個(gè)瀏覽器實(shí)例來(lái)傳播腳本命令語(yǔ)言變量的改變;迫使多個(gè)瀏覽器導(dǎo)航到特定網(wǎng)頁(yè),從而重新同步瀏覽器交互活動(dòng)。
      11.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述交互活動(dòng)測(cè)試代碼被配置成執(zhí)行以下 操作中的至少一個(gè)拍攝瀏覽器的屏幕截圖;在多個(gè)用戶輸入被應(yīng)用于所述跨瀏覽器結(jié)構(gòu)中指定的多個(gè)瀏覽器文檔對(duì)象模型元素 時(shí)記錄瀏覽器的視頻;將標(biāo)記幀插入瀏覽器的視頻,從而將視頻剪輯與用戶輸入對(duì)于文檔對(duì)象模型元素的應(yīng) 用進(jìn)行同步;在滿足指定的交互活動(dòng)條件時(shí)自動(dòng)地凍結(jié)瀏覽器狀態(tài)。
      12.一種用數(shù)據(jù)和指令配置的計(jì)算機(jī)可讀非瞬態(tài)存儲(chǔ)介質(zhì),所述指令在被至少一個(gè)處 理器執(zhí)行時(shí)使所述至少一個(gè)處理器執(zhí)行一種用于跨瀏覽器交互活動(dòng)測(cè)試的方法,所述方法 包括自動(dòng)地進(jìn)行的以下步驟從跨瀏覽器結(jié)構(gòu)讀取用戶_瀏覽器交互記錄,所述用戶_瀏覽器交互記錄指定文檔對(duì) 象模型元素和用戶輸入;定位播放器瀏覽器中的相關(guān)元素,即所述播放器瀏覽器中的與所述用戶_瀏覽器交互 記錄中指定的元素相對(duì)應(yīng)的文檔對(duì)象模型元素; 將所述用戶輸入應(yīng)用于所述相關(guān)元素;以及 在應(yīng)用了所述用戶輸入之后顯示所述播放器瀏覽器。
      13.如權(quán)利要求12所述的經(jīng)配置的介質(zhì),其特征在于,所述定位和應(yīng)用步驟是對(duì)至少 兩個(gè)播放器瀏覽器執(zhí)行的,并且播放器瀏覽器是在所述應(yīng)用步驟之后同時(shí)顯示的,從而使用單個(gè)用戶_瀏覽器交互記錄來(lái)控制不同瀏覽器中的對(duì)應(yīng)文檔元素的行為。
      14.如權(quán)利要求13所述的經(jīng)配置的介質(zhì),其特征在于,以下條件中的至少一個(gè)發(fā)生 對(duì)至少兩種不同種類的至少兩個(gè)播放器瀏覽器執(zhí)行所述定位和應(yīng)用步驟,從而使用單個(gè)用戶-瀏覽器交互記錄來(lái)控制不同種類的瀏覽器中的對(duì)應(yīng)文檔元素的行為;對(duì)至少兩個(gè)機(jī)器上的至少兩個(gè)播放器瀏覽器執(zhí)行所述定位和應(yīng)用步驟,從而使用單個(gè) 用戶_瀏覽器交互記錄來(lái)控制多個(gè)機(jī)器上的瀏覽器中的對(duì)應(yīng)文檔元素的行為。
      15.如權(quán)利要求12所述的經(jīng)配置的介質(zhì),其特征在于,所述用戶-瀏覽器交互記錄讀取 步驟是通過自動(dòng)地進(jìn)行以下操作來(lái)進(jìn)行的截取對(duì)作為與所述播放器瀏覽器不同種類的瀏覽器的記錄器瀏覽器的用戶輸入; 標(biāo)識(shí)目標(biāo)元素,即所述記錄器瀏覽器中的被配置成對(duì)所截取的用戶輸入進(jìn)行響應(yīng)的文 檔對(duì)象模型元素;以及從所述目標(biāo)元素和所截取的用戶輸入創(chuàng)建所述用戶-瀏覽器交互記錄。
      16.如權(quán)利要求12所述的經(jīng)配置的介質(zhì),其特征在于,所述定位播放器瀏覽器中的相 關(guān)元素的步驟包括以下自動(dòng)地執(zhí)行的步驟中的至少一個(gè)確定播放器瀏覽器元素具有也標(biāo)識(shí)用戶_瀏覽器交互記錄元素的標(biāo)識(shí)元素ID屬性值;如果所述用戶-瀏覽器交互記錄元素不具有這樣的元素ID屬性值,則確定所述播放器 瀏覽器元素具有也標(biāo)識(shí)所述用戶-瀏覽器交互記錄元素的標(biāo)識(shí)DOM樹位置;如果所述用戶_瀏覽器交互記錄元素不具有這樣的元素ID屬性值,則確定所述播放 器瀏覽器元素具有也標(biāo)識(shí)所述用戶_瀏覽器交互記錄元素的一組元素樣式特性和/或?qū)傩?值;如果所述用戶_瀏覽器交互記錄元素不具有這樣的元素ID屬性值,則確定所述播放器 瀏覽器元素具有也標(biāo)識(shí)所述用戶_瀏覽器交互記錄元素的元素屬性值與相對(duì)于視口原點(diǎn) 的位置的組合;
      17.如權(quán)利要求12所述的經(jīng)配置的介質(zhì),其特征在于,所述方法還包括以下步驟中的 至少一個(gè)向播放器瀏覽器詢問文檔對(duì)象模型元素;接受腳本語(yǔ)言語(yǔ)句并且作為響應(yīng)修改播放器瀏覽器文檔對(duì)象模型元素;將播放器瀏覽器文檔對(duì)象模型元素的當(dāng)前狀態(tài)存儲(chǔ)在非易失性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。
      18.如權(quán)利要求12所述的經(jīng)配置的介質(zhì),其特征在于所述過程還包括通過讀取所述用戶_瀏覽器交互記錄、定位播放器瀏覽器中的相關(guān)元 素、將所述用戶輸入應(yīng)用于所述相關(guān)元素并在應(yīng)用了所述用戶輸入之后顯示所述播放器瀏 覽器來(lái)在實(shí)況瀏覽器中解釋所記錄的用戶-瀏覽器交互序列中的每一用戶-瀏覽器交互記 錄;以及其中以下條件中的至少一個(gè)成立暫停回放,即,暫停解釋所述用戶-瀏覽器交互記錄的序列的步驟,直至接收到繼續(xù)回 放的命令;回放發(fā)生在步進(jìn)模式,即解釋連續(xù)的用戶_瀏覽器交互記錄的序列中的每一個(gè)的步驟由相應(yīng)用戶命令來(lái)觸發(fā)。
      19.如權(quán)利要求12所述的經(jīng)配置的介質(zhì),其特征在于,所述方法還包括以下步驟中的 至少一個(gè)顯示從瀏覽器記錄的示出了至少一個(gè)用戶-瀏覽器交互在所述瀏覽器中的應(yīng)用的屏 幕截圖;顯示從瀏覽器記錄的示出了多個(gè)用戶-瀏覽器交互在所述瀏覽器中的應(yīng)用的視頻剪輯;在從瀏覽器記錄的示出多個(gè)用戶-瀏覽器交互在所述瀏覽器中的應(yīng)用的至少一個(gè)圖 像的顯示期間將光標(biāo)動(dòng)畫化;顯示與從瀏覽器記錄的示出至少一個(gè)用戶-瀏覽器交互在所述瀏覽器中的應(yīng)用的至 少一個(gè)圖像同步的DOM樹數(shù)據(jù)。
      20.如權(quán)利要求12所述的經(jīng)配置的介質(zhì),其特征在于,所述方法還包括以下步驟中的 至少一個(gè)在單個(gè)屏幕中顯示至少兩個(gè)瀏覽器中的每一個(gè)的瀏覽器窗口,從而通過將注意力集中 于瀏覽器的當(dāng)前活動(dòng)的部分來(lái)高效地使用有限的屏幕空間;在播放器瀏覽器處接收跨網(wǎng)絡(luò)傳送的多個(gè)用戶_瀏覽器交互記錄,使用接收到的瀏覽 器交互記錄來(lái)定位播放器瀏覽器中的相關(guān)元素,使用接收到的用戶_瀏覽器交互記錄來(lái)將 用戶輸入應(yīng)用于所述相關(guān)元素,以及在應(yīng)用了所述用戶輸入中的至少一個(gè)之后顯示播放器 瀏覽器;通過加載先前存儲(chǔ)的DOM樹狀態(tài)來(lái)將播放器瀏覽器置于指定狀態(tài)而非解釋用戶-瀏覽 器交互記錄的序列以達(dá)到所述指定狀態(tài);通過讀取瀏覽器交互記錄、定位播放器瀏覽器中的相關(guān)元素、將所述用戶輸入應(yīng)用于 所述相關(guān)元素并在應(yīng)用了所述用戶輸入之后顯示播放器瀏覽器來(lái)解釋瀏覽器交互記錄的 序列中的每一瀏覽器交互記錄,所述瀏覽器交互記錄是按與執(zhí)行瀏覽器交互的次序相反的 次序來(lái)被解釋的,從而允許反轉(zhuǎn)回放模式。
      全文摘要
      本發(fā)明涉及跨瀏覽器交互活動(dòng)記錄、回放以及編輯。多瀏覽器交互活動(dòng)測(cè)試記錄用戶與記錄器瀏覽器的交互以供后續(xù)在一個(gè)或多個(gè)播放器瀏覽器中回放。截取對(duì)記錄器瀏覽器的針對(duì)文檔對(duì)象模型元素的用戶輸入,并且該輸入和元素被記錄在交互記錄中。當(dāng)在播放器瀏覽器中讀取了交互記錄之后,使用屬性值或其他機(jī)制來(lái)定位對(duì)應(yīng)元素。通過模擬的系統(tǒng)級(jí)事件將該用戶輸入應(yīng)用于所定位的播放器元素并顯示結(jié)果??蓪⒉シ牌鳛g覽器回放與記錄器瀏覽器的屏幕截圖或視頻剪輯進(jìn)行同步。還可編輯該交互記錄。取決于諸如登錄或可折疊控件等交互行為以及交互活動(dòng)的其他方面的布局能夠在不對(duì)每一個(gè)瀏覽器手動(dòng)地重復(fù)輸入并且不管布局引擎的差異的情況下被測(cè)試。
      文檔編號(hào)G06F17/30GK102142016SQ201110033228
      公開日2011年8月3日 申請(qǐng)日期2011年1月24日 優(yōu)先權(quán)日2010年1月29日
      發(fā)明者M·范寧, M·霍爾, S·古特曼 申請(qǐng)人:微軟公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1