自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開一種自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的方法,包括:響應(yīng)于自動(dòng)化測(cè)試腳本編輯器中獲取頁面元素的信息命令,獲取自動(dòng)化測(cè)試腳本編輯器所測(cè)試的待測(cè)試頁面上的所有頁面元素;對(duì)每個(gè)所述頁面元素分別綁定用于生成阻擋層的事件處理器;響應(yīng)于對(duì)所述待測(cè)試頁面上的頁面元素的點(diǎn)擊,被點(diǎn)擊的頁面元素作為當(dāng)前頁面元素,綁定在所述當(dāng)前頁面元素上的事件處理器進(jìn)行生成罩住當(dāng)前頁面元素的阻擋層并向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的回調(diào)處理邏輯。本發(fā)明使得能夠通過自動(dòng)化測(cè)試腳本編輯器阻止頁面跳轉(zhuǎn)行為,并直接獲得需要操作的頁面元素對(duì)象。
【專利說明】自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及自動(dòng)化測(cè)試相關(guān)【技術(shù)領(lǐng)域】,特別是一種自動(dòng)化測(cè)試腳本編輯中獲取頁 面元素的方法及系統(tǒng)。
【背景技術(shù)】
[0002] 在開發(fā)瀏覽器插件時(shí),可能需要點(diǎn)擊頁面上的某些頁面元素來獲取這些頁面元素 的信息。但是,很多頁面元素會(huì)綁定事件,點(diǎn)擊頁面元素之后事件會(huì)被響應(yīng),某些事件會(huì)導(dǎo) 致頁面跳轉(zhuǎn),從而導(dǎo)致無法獲取頁面元素的信息。
[0003] 由于插件不能取消網(wǎng)頁原本的綁定的事件,現(xiàn)有技術(shù)使用阻止事件冒泡、阻止瀏 覽器默認(rèn)行為等方法都無法阻止頁面跳轉(zhuǎn)。
[0004] 因此,現(xiàn)有技術(shù)采用根據(jù)鼠標(biāo)位置獲取元素信息的方法。然而,采用根據(jù)鼠標(biāo)位置 獲取元素信息的方法,存在如下缺陷:
[0005] 1.需要編寫關(guān)于鼠標(biāo)位置的兼容性代碼。因?yàn)樵诓煌臑g覽器上,關(guān)于鼠標(biāo)位置 的瀏覽器對(duì)象具有差異。
[0006] 2.需要計(jì)算鼠標(biāo)位置和實(shí)現(xiàn)從鼠標(biāo)位置獲取頁面元素的信息的復(fù)雜邏輯。
【發(fā)明內(nèi)容】
[0007] 基于此,有必要針對(duì)現(xiàn)有技術(shù)在自動(dòng)化測(cè)試編輯過程中無法阻止頁面元素跳轉(zhuǎn)導(dǎo) 致獲取頁面元素的信息存在困難的技術(shù)問題,提供一種自動(dòng)化測(cè)試腳本編輯中獲取頁面元 素的方法及系統(tǒng)。
[0008] -種自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的方法,包括:
[0009] 響應(yīng)于自動(dòng)化測(cè)試腳本編輯器中獲取頁面元素的信息命令,獲取自動(dòng)化測(cè)試腳本 編輯器所測(cè)試的待測(cè)試頁面上的所有頁面元素;
[0010] 對(duì)每個(gè)所述頁面元素分別綁定用于生成阻擋層的事件處理器;
[0011] 響應(yīng)于對(duì)所述待測(cè)試頁面上的頁面元素的點(diǎn)擊,被點(diǎn)擊的頁面元素作為當(dāng)前頁面 元素,綁定在所述當(dāng)前頁面元素上的事件處理器進(jìn)行生成罩住當(dāng)前頁面元素的阻擋層并向 所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的回調(diào)處理邏輯。
[0012] 一種自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的系統(tǒng),包括:
[0013] 頁面元素獲取模塊,用于響應(yīng)于自動(dòng)化測(cè)試腳本編輯器中獲取頁面元素的信息命 令,獲取自動(dòng)化測(cè)試腳本編輯器所測(cè)試的待測(cè)試頁面上的所有頁面元素;
[0014] 事件處理器綁定模塊,用于對(duì)每個(gè)所述頁面元素分別綁定用于生成阻擋層的事件 處理器;
[0015] 事件處理器執(zhí)行模塊,用于響應(yīng)于對(duì)所述待測(cè)試頁面上的頁面元素的點(diǎn)擊,被點(diǎn) 擊的頁面元素作為當(dāng)前頁面元素,綁定在所述當(dāng)前頁面元素上的事件處理器進(jìn)行生成罩住 當(dāng)前頁面元素的阻擋層并向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的回調(diào) 處理邏輯。
[0016] 本發(fā)明通過對(duì)頁面元素綁定生成阻擋層的事件處理器,因此用戶在點(diǎn)擊頁面元素 時(shí),由于已經(jīng)綁定事件處理器,因此系統(tǒng)會(huì)首先執(zhí)行事件處理器的回調(diào)處理邏輯,生成一層 阻擋層,從而停止了對(duì)頁面元素跳轉(zhuǎn)邏輯的響應(yīng),以獲取對(duì)應(yīng)的頁面元素的信息。從而使得 能夠通過自動(dòng)化測(cè)試腳本編輯器從外界(如瀏覽器擴(kuò)展)阻止頁面跳轉(zhuǎn)行為,并直接獲得 需要操作的頁面元素對(duì)象。
【專利附圖】
【附圖說明】
[0017] 圖1為本發(fā)明一種自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的方法的工作流 程圖;
[0018] 圖2為本發(fā)明的一個(gè)例子的插件截圖;
[0019] 圖3為本發(fā)明一個(gè)例子的工作流程圖;
[0020] 圖4為本發(fā)明一種自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的系統(tǒng)的結(jié)構(gòu)模 塊圖。
【具體實(shí)施方式】
[0021] 下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步詳細(xì)的說明。
[0022] 如圖1所示為本發(fā)明一種自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的方法的 工作流程圖,包括:
[0023] 步驟S101,響應(yīng)于自動(dòng)化測(cè)試腳本編輯器中獲取頁面元素的信息命令,獲取自動(dòng) 化測(cè)試腳本編輯器所測(cè)試的待測(cè)試頁面上的所有頁面元素;
[0024] 步驟S102,對(duì)每個(gè)所述頁面元素分別綁定用于生成阻擋層的事件處理器;
[0025] 步驟S103,響應(yīng)于對(duì)所述待測(cè)試頁面上的頁面元素的點(diǎn)擊,被點(diǎn)擊的頁面元素作 為當(dāng)前頁面元素,綁定在所述當(dāng)前頁面元素上的事件處理器進(jìn)行生成罩住當(dāng)前頁面元素的 阻擋層并向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的回調(diào)處理邏輯。
[0026] 如圖2所示為本發(fā)明的一個(gè)例子的插件截圖,圖2中底部的界面21就是瀏覽器擴(kuò) 展即自動(dòng)化測(cè)試腳本編輯器在網(wǎng)頁上所顯示的界面。這個(gè)擴(kuò)展的主要功能就是協(xié)助用戶定 位頁面上的元素,然后保存成自動(dòng)化測(cè)試腳本,用于回歸測(cè)試,用戶在圖2上部的頁面22上 的操作就會(huì)被重新執(zhí)行。其中,頁面22即為待測(cè)試頁面。
[0027] 例如:用戶需要測(cè)試"百度一下"這個(gè)按鈕23,用戶首先在Command -欄輸入命令 clickAndWait,然后鼠標(biāo)點(diǎn)擊一下Target -欄下的輸入框,此時(shí)則會(huì)觸發(fā)步驟S101,后臺(tái) 獲取自動(dòng)化測(cè)試腳本編輯器所測(cè)試的待測(cè)試頁面上的所有頁面元素,然后執(zhí)行步驟S102, 對(duì)每個(gè)所述頁面元素分別綁定事件處理器。然后,用戶點(diǎn)擊一下"百度一下"按鈕23,此時(shí) 觸發(fā)步驟S103,因?yàn)榻壎耸录幚砥饕虼藭?huì)生成阻擋層,阻擋層罩住當(dāng)前頁面元素,因此 避免了用戶對(duì)當(dāng)前頁面元素的再次點(diǎn)擊,使得頁面不會(huì)跳轉(zhuǎn),從而能夠有足夠的時(shí)間獲取 按鈕23的定位信息,并將按鈕23的定位信息css = #su填充到Target -欄的輸入框。
[0028] 本發(fā)明通過在用戶點(diǎn)擊頁面元素時(shí),由于頁面元素已經(jīng)綁定事件處理器,因此系 統(tǒng)會(huì)首先執(zhí)行事件處理器的回調(diào)處理邏輯,生成一層阻擋層,從而停止了對(duì)頁面元素跳轉(zhuǎn) 邏輯的響應(yīng),以獲取對(duì)應(yīng)的頁面元素的信息。
[0029] 與根據(jù)鼠標(biāo)位置獲取元素信息的方法相比,本發(fā)明存在如下優(yōu)點(diǎn):
[0030] 1不用編寫關(guān)于鼠標(biāo)位置的兼容性代碼。因?yàn)樵诓煌臑g覽器上,關(guān)于鼠標(biāo)位置的 瀏覽器對(duì)象具有差異;
[0031] 2不用計(jì)算鼠標(biāo)位置和實(shí)現(xiàn)從鼠標(biāo)位置獲取頁面元素的信息的復(fù)雜邏輯,事件處 理器能直接獲得代表頁面元素對(duì)象的this指針,直接獲取該頁面元素的信息。
[0032] 在其中一個(gè)實(shí)施例中,所述回調(diào)處理邏輯包括:
[0033] 彈出阻擋層罩住當(dāng)前頁面元素;
[0034] 向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息;
[0035] 延遲預(yù)設(shè)時(shí)間后,隱藏所述阻擋層。
[0036] 本實(shí)施例在彈出阻擋層后,阻擋層罩住當(dāng)前頁面元素,因此避免了用戶對(duì)當(dāng)前頁 面元素的再次點(diǎn)擊,從而能夠有足夠的時(shí)間獲取當(dāng)前頁面元素的信息,獲取當(dāng)前頁面元素 的信息后,延遲預(yù)設(shè)時(shí)間后,隱藏阻擋層,避免阻擋層阻擋頁面元素的顯示。其中,預(yù)設(shè)時(shí) 間,優(yōu)選為1秒。
[0037] 在其中一個(gè)實(shí)施例中,所述阻擋層為蒙版層。
[0038] 阻擋層可以為現(xiàn)有網(wǎng)頁應(yīng)用技術(shù)中的各種元素,例如可以采用圖片作為阻擋層, 即可以避免了用戶對(duì)當(dāng)前頁面元素的再次點(diǎn)擊,從而避免頁面跳轉(zhuǎn)并獲得當(dāng)前頁面元素的 信息。然而,采用圖片等元素會(huì)導(dǎo)致當(dāng)前頁面元素被完全遮蓋,影響用戶體驗(yàn)。而本實(shí)施例 采用蒙版層,使得用戶既能看到當(dāng)前頁面元素,又能防止用戶對(duì)當(dāng)前頁面元素的再次點(diǎn)擊, 避免影響用戶體驗(yàn)。
[0039] 在其中一個(gè)實(shí)施例中,還包括:
[0040] 向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的頁面元素的信息后,解 除所述待測(cè)試頁面上的所有頁面元素與事件處理器的綁定。
[0041] 在向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的頁面元素的信息后, 可以解除頁面元素與事件處理器的綁定,使得發(fā)生頁面跳轉(zhuǎn)的頁面元素能夠執(zhí)行頁面跳 轉(zhuǎn)。
[0042] 在其中一個(gè)實(shí)施例中,還包括:
[0043] 解除所述待測(cè)試頁面上的所有頁面元素與事件處理器的綁定后,響應(yīng)于對(duì)所述待 測(cè)試頁面上的頁面元素的點(diǎn)擊,執(zhí)行被點(diǎn)擊的頁面元素的頁面跳轉(zhuǎn)。
[0044] 本實(shí)施例,在解除所述待測(cè)試頁面上的所有頁面元素與事件處理器的綁定后,響 應(yīng)于對(duì)所述待測(cè)試頁面上的頁面元素的點(diǎn)擊,則用戶就可以在不同的頁面進(jìn)行頁面元素定 位,獲取不同頁面的頁面元素的信息,完成自動(dòng)化測(cè)試腳本的編輯。
[0045] 例如,在圖2所示例子中,在阻擋層(蒙版層)消失后,由于與按鈕23綁定的事件 處理器被解除,因此,用戶再次點(diǎn)擊"百度一下"按鈕23,就會(huì)跳轉(zhuǎn)到新的頁面。
[0046] 如圖3所示為本發(fā)明一個(gè)例子的工作流程圖,其中,包括:
[0047] 步驟31激活:用戶激活事件處理器就相當(dāng)于用戶點(diǎn)擊圖2中的Target欄目下面 的輸入框。
[0048] 步驟32綁定事件處理器到頁面元素:綁定事件處理器到頁面元素,此時(shí),頁面元 素就被綁定了與事件處理器關(guān)聯(lián)的事件處理函數(shù)。
[0049] 步驟33點(diǎn)擊頁面元素:用點(diǎn)擊需要定位的頁面元素,觸發(fā)事件處理器。
[0050] 步驟34回調(diào)事件處理器:事件處理器響應(yīng)綁定的事件。
[0051] 步驟35回調(diào)處理邏輯:事件處理器的回調(diào)處理邏輯:執(zhí)行A彈出蒙版層障住下層 頁面、B獲取頁面元素的信息、C延遲一秒、D隱藏蒙版層(這就是點(diǎn)擊頁面元素時(shí),不會(huì)跳 轉(zhuǎn)的根本原因)。
[0052] 步驟36處理邏輯回調(diào)完畢:處理邏輯回調(diào)完畢。
[0053] 步驟37解除綁定事件處理器:此時(shí),頁面元素已經(jīng)恢復(fù)到原始狀態(tài),會(huì)響應(yīng)原始 點(diǎn)擊事件。
[0054] 步驟38點(diǎn)擊頁面元素:由于事件處理器的綁定已經(jīng)解除,點(diǎn)擊會(huì)發(fā)生跳轉(zhuǎn)。
[0055] 步驟39跳轉(zhuǎn):跳轉(zhuǎn)到新頁面后,用戶又可以按照前面的步驟操作頁面元素。如此 往復(fù),就可以獲取多個(gè)頁面上元素的信息。
[0056] 如圖4所示為本發(fā)明一種自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的系統(tǒng)的 結(jié)構(gòu)模塊圖,包括:
[0057] 頁面元素獲取模塊401,用于響應(yīng)于自動(dòng)化測(cè)試腳本編輯器中獲取頁面元素的信 息命令,獲取自動(dòng)化測(cè)試腳本編輯器所測(cè)試的待測(cè)試頁面上的所有頁面元素;
[0058] 事件處理器綁定模塊402,用于對(duì)每個(gè)所述頁面元素分別綁定用于生成阻擋層的 事件處理器;
[0059] 事件處理器執(zhí)行模塊403,用于響應(yīng)于對(duì)所述待測(cè)試頁面上的頁面元素的點(diǎn)擊,被 點(diǎn)擊的頁面元素作為當(dāng)前頁面元素,綁定在所述當(dāng)前頁面元素上的事件處理器進(jìn)行生成罩 住當(dāng)前頁面元素的阻擋層并向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的回 調(diào)處理邏輯。
[0060] 在其中一個(gè)實(shí)施例中,所述回調(diào)處理邏輯包括:
[0061] 彈出阻擋層罩住當(dāng)前頁面元素;
[0062] 向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息;
[0063] 延遲預(yù)設(shè)時(shí)間后,隱藏所述阻擋層。
[0064] 在其中一個(gè)實(shí)施例中,所述阻擋層為蒙版層。
[0065] 在其中一個(gè)實(shí)施例中,還包括:
[0066] 向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的頁面元素的信息后,解 除所述待測(cè)試頁面上的所有頁面元素與事件處理器的綁定。
[0067] 在其中一個(gè)實(shí)施例中,還包括:
[0068] 解除所述待測(cè)試頁面上的所有頁面元素與事件處理器的綁定后,響應(yīng)于對(duì)所述待 測(cè)試頁面上的頁面元素的點(diǎn)擊,執(zhí)行被點(diǎn)擊的頁面元素的頁面跳轉(zhuǎn)。
[0069] 以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并 不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員 來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保 護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1. 一種自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的方法,其特征在于,包括: 響應(yīng)于自動(dòng)化測(cè)試腳本編輯器中獲取頁面元素的信息命令,獲取自動(dòng)化測(cè)試腳本編輯 器所測(cè)試的待測(cè)試頁面上的所有頁面元素; 對(duì)每個(gè)所述頁面元素分別綁定用于生成阻擋層的事件處理器; 響應(yīng)于對(duì)所述待測(cè)試頁面上的頁面元素的點(diǎn)擊,被點(diǎn)擊的頁面元素作為當(dāng)前頁面元 素,綁定在所述當(dāng)前頁面元素上的事件處理器進(jìn)行生成罩住當(dāng)前頁面元素的阻擋層并向所 述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的回調(diào)處理邏輯。
2. 根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的方法,其特征 在于,所述回調(diào)處理邏輯包括: 彈出阻擋層罩住當(dāng)前頁面元素; 向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息; 延遲預(yù)設(shè)時(shí)間后,隱藏所述阻擋層。
3. 根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的方法,其特征 在于,所述阻擋層為蒙版層。
4. 根據(jù)權(quán)利要求1所述的自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的方法,其特征 在于,還包括: 向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的頁面元素的信息后,解除所 述待測(cè)試頁面上的所有頁面元素與事件處理器的綁定。
5. 根據(jù)權(quán)利要求4所述的自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的方法,其特征 在于,還包括: 解除所述待測(cè)試頁面上的所有頁面元素與事件處理器的綁定后,響應(yīng)于對(duì)所述待測(cè)試 頁面上的頁面元素的點(diǎn)擊,執(zhí)行被點(diǎn)擊的頁面元素的頁面跳轉(zhuǎn)。
6. -種自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的系統(tǒng),其特征在于,包括: 頁面元素獲取模塊,用于響應(yīng)于自動(dòng)化測(cè)試腳本編輯器中獲取頁面元素的信息命令, 獲取自動(dòng)化測(cè)試腳本編輯器所測(cè)試的待測(cè)試頁面上的所有頁面元素; 事件處理器綁定模塊,用于對(duì)每個(gè)所述頁面元素分別綁定用于生成阻擋層的事件處理 器; 事件處理器執(zhí)行模塊,用于響應(yīng)于對(duì)所述待測(cè)試頁面上的頁面元素的點(diǎn)擊,被點(diǎn)擊的 頁面元素作為當(dāng)前頁面元素,綁定在所述當(dāng)前頁面元素上的事件處理器進(jìn)行生成罩住當(dāng)前 頁面元素的阻擋層并向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的回調(diào)處理 邏輯。
7. 根據(jù)權(quán)利要求6所述的自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的系統(tǒng),其特征 在于,所述回調(diào)處理邏輯包括: 彈出阻擋層罩住當(dāng)前頁面元素; 向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息; 延遲預(yù)設(shè)時(shí)間后,隱藏所述阻擋層。
8. 根據(jù)權(quán)利要求6所述的自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的系統(tǒng),其特征 在于,所述阻擋層為蒙版層。
9. 根據(jù)權(quán)利要求6所述的自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的系統(tǒng),其特征 在于,還包括: 向所述自動(dòng)化測(cè)試腳本編輯器返回當(dāng)前頁面元素的信息的頁面元素的信息后,解除所 述待測(cè)試頁面上的所有頁面元素與事件處理器的綁定。
10.根據(jù)權(quán)利要求9所述的自動(dòng)化測(cè)試腳本編輯中獲取頁面元素的信息的方法,其特 征在于,還包括: 解除所述待測(cè)試頁面上的所有頁面元素與事件處理器的綁定后,響應(yīng)于對(duì)所述待測(cè)試 頁面上的頁面元素的點(diǎn)擊,執(zhí)行被點(diǎn)擊的頁面元素的頁面跳轉(zhuǎn)。
【文檔編號(hào)】G06F17/30GK104156445SQ201410400272
【公開日】2014年11月19日 申請(qǐng)日期:2014年8月14日 優(yōu)先權(quán)日:2014年8月14日
【發(fā)明者】王崟平 申請(qǐng)人:北京京東尚科信息技術(shù)有限公司