專利名稱:Gui元素識(shí)別方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及計(jì)算機(jī)應(yīng)用領(lǐng)域,更為具體地,涉及一種能夠更為準(zhǔn)確地對(duì)圖形用戶界面(GUI)上的目標(biāo)GUI元素進(jìn)行識(shí)別的GUI元素識(shí)別方法、裝置及系統(tǒng)。
背景技術(shù):
當(dāng)前,在計(jì)算機(jī)應(yīng)用中存在大量的圖形用戶界面(GUI)?;谶@樣和那樣的目的, GUI元素識(shí)別成為一個(gè)重要的研究課題。但由于應(yīng)用本身的復(fù)雜性和技術(shù)手段的落后,導(dǎo)致某些GUI元素很難被正確的識(shí)別,從而為社會(huì)生產(chǎn)實(shí)踐帶來了大量的問題。例如,在現(xiàn)實(shí)應(yīng)用中經(jīng)常需要將一個(gè)非TOB應(yīng)用即本地應(yīng)用通過遷移技術(shù)遷移成基于TOB的應(yīng)用,這其中就大量涉及對(duì)本地應(yīng)用GUI元素的識(shí)別。因?yàn)楸仨氁WC遷移前和遷移后兩種應(yīng)用在GUI元素上的一致性,否則無法完成遷移前后兩個(gè)應(yīng)用在視圖和功能方面的一致性,如果不一致則有可能導(dǎo)致遷移失敗,最終導(dǎo)致災(zāi)難性后果。目前,通常利用⑶I元素的屬性信息來對(duì)⑶I元素進(jìn)行識(shí)別。這種屬性信息例如 ⑶I元素的XML描述,即⑶I元素的XPath信息。對(duì)比文件1 (CN101369M9A)中公開了一種利用XPath方法來識(shí)別GUI元素的方法。以下,將參照附圖1和2來描述這種XPath識(shí)別方法。圖1示出了一個(gè)示例本地應(yīng)用的⑶I 1000。參照?qǐng)D1,該⑶I 1000包括⑶I元素 1001。當(dāng)用戶點(diǎn)擊該⑶I元素1001中的“0K”鍵時(shí),將彈出⑶I元素1002。例如,為了在實(shí)際操作中對(duì)GUI元素1002進(jìn)行XPath識(shí)別,首先需要能夠獲知GUI元素1002的XPath信
肩、ο為此,首先進(jìn)行訓(xùn)練。在訓(xùn)練過程中,例如通過用戶界面(UI)抓取單元,來獲得本地應(yīng)用當(dāng)前GUI上的所有UI信息。在圖1所示的例子中,獲取有關(guān)GUI 1000的所有UI信息,并將其以XML格式存儲(chǔ)。圖2中示出了所存儲(chǔ)的XML格式的有關(guān)GUI 1000的信息。然后,對(duì)這些信息進(jìn)行分析,得到GUI元素1002的XPath信息,如圖2中方框內(nèi)的內(nèi)容所示。 之后,將關(guān)于⑶I元素1002的XPath信息記錄為"/element [itext = iForml ‘ ] /children/element [itext = iFo^']/children/ element [itext = ‘Return,],,。于是,在運(yùn)行階段,首先由UI抓取單元來獲取當(dāng)前⑶I的所有UI信息。這里,假設(shè)在運(yùn)行時(shí)出現(xiàn)的⑶I仍然為圖1所示的⑶I 1000。由于這里是以同一個(gè)⑶I 1000來舉例說明的,因此獲得的UI信息同樣如圖2所示。然后,針對(duì)該UI信息中與某一 GUI元素對(duì)應(yīng)的信息項(xiàng),例如圖2所示的方框內(nèi)的信息項(xiàng),在所記錄的XPath信息中搜索與之相匹配的項(xiàng)。在此,可以搜索到以上記錄的⑶I元素1002的XPath信息與方框內(nèi)的信息相匹配,從而可以確定該方框內(nèi)的信息所對(duì)應(yīng)的GUI元素即為GUI元素1002。當(dāng)然,在訓(xùn)練階段,可以針對(duì)多個(gè)目標(biāo)元素來記錄它們相應(yīng)的XPath信息;然后在運(yùn)行階段對(duì)于當(dāng)前⑶I中的各⑶I元素,根據(jù)所記錄的XPath信息,來分別進(jìn)行識(shí)別。然而,利用XPath常常不能唯一識(shí)別某個(gè)GUI元素,特別是當(dāng)針對(duì)多個(gè)GUI元素所
4記錄的XPath信息存在相同項(xiàng)時(shí)。圖3示出了另一示例應(yīng)用。參照?qǐng)D3,在該應(yīng)用中,當(dāng)在 GUI元素3001中未選中復(fù)選框而點(diǎn)擊“0K”鍵(圖中箭頭“1”所示)時(shí),將彈出GUI元素 3002 ;點(diǎn)擊該GUI元素3002中的“Return”鍵(圖中箭頭“2”所示),將返回復(fù)選框未選中狀態(tài)的⑶I元素3001。另一方面,當(dāng)在⑶I元素2001中選中復(fù)選框而點(diǎn)擊“0K”鍵(圖中箭頭“3”所示)時(shí),將彈出⑶I元素3003 ;點(diǎn)擊該⑶I元素3003中的“Return”鍵(圖中箭頭“4”所示),將返回復(fù)選框選中狀態(tài)的GUI元素3001 ‘??梢钥闯觯荌元素3002與3003兩者并不相同。但是如果根據(jù)XPath方法,則兩者均被描述為"/element [itext = iForml ‘ ] /children/element [itext = iFo^']/children/ element [itext = ‘Return,],,。這樣,根據(jù)XPath,就無法正確區(qū)分⑶I元素3002與3003。因此,需要一種改進(jìn)的元素識(shí)別方法、裝置和系統(tǒng),來正確識(shí)別⑶I元素。
發(fā)明內(nèi)容
鑒于上述問題,本發(fā)明的目的之一在于提供一種增強(qiáng)的圖形用戶界面(⑶I)元素識(shí)別方法、裝置和系統(tǒng),通過該識(shí)別方法、裝置和系統(tǒng),能夠大大改進(jìn)GUI元素識(shí)別的準(zhǔn)確性,以便正確識(shí)別⑶I元素。根據(jù)本發(fā)明的一個(gè)方面,提供了一種生成⑶I元素識(shí)別信息的方法,包括顯示 GUI,該GUI包括目標(biāo)GUI元素;對(duì)所顯示的GUI進(jìn)行分析,以獲得目標(biāo)GUI元素的屬性信息;獲得與目標(biāo)GUI元素相關(guān)的、屬性信息之外的額外信息;對(duì)所獲得的屬性信息和額外信息進(jìn)行處理,生成該目標(biāo)GUI元素的識(shí)別信息。優(yōu)選地,屬性信息可以包括XPath信息,以及獲得屬性信息可以包括獲取GUI中的所有元素信息,所述信息形成為XML格式;對(duì)XML格式的元素信息進(jìn)行分析,以獲得目標(biāo) ⑶I元素的XPath信息。優(yōu)選地,額外信息可以包括導(dǎo)致該目標(biāo)GUI元素出現(xiàn)的歷史事件信息,以及獲得額外信息包括記錄導(dǎo)致該目標(biāo)GUI元素出現(xiàn)的歷史事件;以及對(duì)所述歷史事件進(jìn)行分析, 以轉(zhuǎn)換成目標(biāo)GUI元素的出現(xiàn)條件,其中所述出現(xiàn)條件成為該目標(biāo)GUI元素的歷史事件信肩、ο優(yōu)選地,額外信息可以包括系統(tǒng)狀態(tài)信息。根據(jù)本發(fā)明的另一方面,提供了一種根據(jù)GUI元素識(shí)別信息來識(shí)別待識(shí)別GUI元素的方法,所述GUI元素識(shí)別信息包括針對(duì)相應(yīng)GUI元素的屬性信息和屬性信息之外的額外信息,該方法包括顯示GUI,該GUI包括待識(shí)別GUI元素;對(duì)所顯示的GUI進(jìn)行分析,以獲得待識(shí)別GUI元素的屬性信息;獲得與待識(shí)別GUI元素相關(guān)的、屬性信息之外的額外信息; 以及在GUI元素識(shí)別信息中搜索如下信息項(xiàng),該信息項(xiàng)包括的屬性信息與所獲取的待識(shí)別 GUI元素的屬性信息匹配,且該信息項(xiàng)包括的額外信息與待識(shí)別GUI元素相關(guān)的額外信息相匹配。優(yōu)選地,額外信息可以包括歷史事件信息和/或系統(tǒng)狀態(tài)信息。根據(jù)本發(fā)明的另一方面,提供了一種⑶I元素識(shí)別信息生成裝置,包括顯示裝置,用于顯示GUI,該GUI包括目標(biāo)GUI元素;屬性信息獲取單元,用于對(duì)所顯示的GUI進(jìn)行分析,以獲得目標(biāo)GUI元素的屬性信息;額外信息獲取單元,用于獲得與目標(biāo)GUI元素相關(guān)的、屬性信息之外的額外信息;以及識(shí)別信息生成單元,用于對(duì)所獲得的屬性信息和額外信息進(jìn)行處理,生成該目標(biāo)GUI元素的識(shí)別信息。優(yōu)選地,屬性信息可以包括XPath信息,以及屬性信息獲取單元可以包括UI抓取單元,用于獲取GUI中的所有元素信息,所述信息形成為XML格式;以及XPath信息生成單元,用于對(duì)UI抓取單元所獲得的XML格式的元素信息進(jìn)行分析,以獲得目標(biāo)GUI元素的 XPath信息。優(yōu)選地,額外信息可以包括導(dǎo)致該目標(biāo)GUI元素出現(xiàn)的歷史事件信息,以及額外信息獲取單元可以包括事件記錄單元,用于記錄導(dǎo)致目標(biāo)GUI元素出現(xiàn)的歷史事件;目標(biāo) ⑶I元素判斷單元,用于判斷⑶I上是否出現(xiàn)目標(biāo)⑶I元素,并向事件記錄單元發(fā)送判斷結(jié)果;以及額外信息生成單元,用于根據(jù)事件記錄單元針對(duì)目標(biāo)GUI元素所記錄的歷史事件, 來生成包括歷史事件信息的額外信息。根據(jù)本發(fā)明的又一方面,提供了一種⑶I元素識(shí)別裝置,包括存儲(chǔ)裝置,用于存儲(chǔ)GUI元素識(shí)別信息,所述GUI元素識(shí)別信息包括針對(duì)相應(yīng)GUI元素的屬性信息和屬性信息之外的額外信息;顯示裝置,顯示GUI,該GUI包括待識(shí)別GUI元素;屬性信息獲取單元, 用于對(duì)所顯示的GUI進(jìn)行分析,以獲得待識(shí)別GUI元素的屬性信息;額外信息獲取單元,用于獲得與待識(shí)別GUI元素相關(guān)的、屬性信息之外的額外信息;以及識(shí)別單元,根據(jù)屬性信息獲取單元獲取的屬性信息以及額外信息獲取單元獲取的額外信息,并根據(jù)存儲(chǔ)裝置中存儲(chǔ)的GUI元素識(shí)別信息,來識(shí)別待識(shí)別GUI元素信息。根據(jù)本發(fā)明的再一方面,提供了一種GUI元素識(shí)別系統(tǒng),包括根據(jù)本發(fā)明的GUI元素識(shí)別信息生成裝置以及根據(jù)本發(fā)明的GUI元素識(shí)別裝置,其中存儲(chǔ)裝置存儲(chǔ)由GUI元素識(shí)別信息生成裝置所生成的⑶I元素識(shí)別信息。優(yōu)選地,GUI元素識(shí)別信息生成裝置中的屬性信息獲取單元與GUI元素識(shí)別裝置中的屬性信息獲取單元可以由同一單元構(gòu)成,以及GUI元素識(shí)別信息生成裝置中的額外信息獲取單元與GUI元素識(shí)別裝置中的額外信息獲取單元可以由同一單元構(gòu)成。根據(jù)本發(fā)明,在元素識(shí)別的時(shí)候由于額外信息的引入,克服了一些情況下單純屬性信息無法對(duì)某些GUI元素進(jìn)行區(qū)別的缺陷,從而可以大大增強(qiáng)GUI元素識(shí)別的準(zhǔn)確性。
通過以下參照附圖對(duì)本發(fā)明實(shí)施例的描述,本發(fā)明的上述以及其他目的、特征和有點(diǎn)將更為清楚,在附圖中圖1示出了根據(jù)現(xiàn)有技術(shù)的示例本地應(yīng)用的⑶I ;圖2示出了圖1所示的⑶I中⑶I元素的UI信息;圖3示出了根據(jù)現(xiàn)有技術(shù)的另一示例本地應(yīng)用中GUI的轉(zhuǎn)換示意圖;圖4示出了根據(jù)本發(fā)明實(shí)施例的生成GUI元素識(shí)別信息的方法;圖5示出了根據(jù)本發(fā)明實(shí)施例的示例本地應(yīng)用中GUI的轉(zhuǎn)換示意圖;圖6示出了根據(jù)本發(fā)明實(shí)施例的示例識(shí)別信息的示意圖;圖7示出了根據(jù)本發(fā)明實(shí)施例的識(shí)別GUI元素的方法;圖8示出了根據(jù)本發(fā)明實(shí)施例的GUI元素識(shí)別信息生成裝置的示意圖9示出了根據(jù)本發(fā)明實(shí)施例的XPath信息獲取單元的結(jié)構(gòu)示意圖;圖10示出了根據(jù)本發(fā)明實(shí)施例的額外信息獲取單元的結(jié)構(gòu)示意圖;以及圖11示出了根據(jù)本發(fā)明實(shí)施例的⑶I元素識(shí)別裝置。
具體實(shí)施例方式以下,通過附圖中示出的具體實(shí)施例來描述本發(fā)明。但是應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對(duì)公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。在附圖中示出了作為示例的一些圖形用戶界面(⑶I)形式。但是需要注意,這些 GUI僅僅是示意性繪制的,實(shí)際中可能存在各種各樣形式的GUI。另外,在附圖中還示出了一些方法步驟和處理模塊。但是,這些方法步驟/處理模塊中的一些可以結(jié)合為單個(gè)步驟 /模塊,或者其中某一個(gè)步驟/模塊能夠拆分為若干子步驟/子模塊。需要指出的是,可以通過硬件、軟件、固件或其組合來實(shí)施這些方法步驟/處理模塊。根據(jù)本發(fā)明,利用相比于現(xiàn)有技術(shù)中的屬性信息改進(jìn)的增強(qiáng)識(shí)別信息,來對(duì)GUI 元素進(jìn)行識(shí)別。為此,本發(fā)明涉及如下兩個(gè)方面增強(qiáng)識(shí)別信息的生成(即,訓(xùn)練階段),以及根據(jù)增強(qiáng)識(shí)別信息來對(duì)⑶I元素進(jìn)行識(shí)別(即,運(yùn)行階段)。以下,將參照附圖來對(duì)這兩方面分別予以描述。這里需要指出的是,在以下的描述中,以“XPath信息”作為“屬性信息”的例子,來進(jìn)行描述。但是“屬性信息”并不僅限于“XPath信息”,例如還可以包括⑶I元素的XML之外的其他語言描述。例如像C、BaSiC、Pyth0n等任何編程語言或Text等格式的非編程方法描述的信息都可以作為屬性信息。圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的生成GUI元素識(shí)別信息的方法。如圖4所示,該方法在步驟S401中開始。接著,在步驟S402中,例如通過顯示器等顯示裝置,來顯示 ⑶I,該⑶I中包括目標(biāo)⑶I元素。以下,要針對(duì)該目標(biāo)⑶I元素來生成識(shí)別信息。于是,分別在步驟S403中收集目標(biāo)GUI元素的屬性信息(例如,XPath信息),以及在步驟S404中收集與目標(biāo)GUI元素相關(guān)的、屬性信息之外的額外信息。在此,步驟S403 和S404可以并行進(jìn)行,也可以順序進(jìn)行。然后,在步驟S405中,對(duì)所收集到的針對(duì)目標(biāo)GUI 元素的屬性信息和額外信息進(jìn)行處理,并由此生成該目標(biāo)GUI元素的增強(qiáng)識(shí)別信息。在此, 例如可以將屬性信息和額外信息進(jìn)行組合,以形成增強(qiáng)識(shí)別信息。最后,該方法在S406結(jié)束ο以下將參照?qǐng)D5所示的示例,來詳細(xì)說明步驟S403和S404。圖5所示的示例對(duì)應(yīng)于圖3所示的示例。具體地,在GUI元素5001中復(fù)選框未選中的情況下點(diǎn)擊“0K”鍵時(shí), 將彈出⑶I元素5002(目標(biāo)⑶I元素1);而在⑶I元素5001中復(fù)選框選中的情況下點(diǎn)擊 “0K”鍵時(shí),將彈出⑶I元素5003(目標(biāo)⑶I元素幻。參見以上針對(duì)圖3的描述,可知這兩個(gè)⑶I元素5002和5003彼此并不相同。在現(xiàn)有技術(shù)中,存在眾多方法來獲取GUI元素的如XPath信息之類的屬性信息。例如,在步驟S403,獲取⑶I (包括目標(biāo)⑶I元素1或2)上的所有UI元素信息,該信息以XML 格式形成。最終,形成如圖2所示的XML格式的UI元素信息。然后,對(duì)所獲得的XML格式的UI元素信息進(jìn)行分析,以獲得目標(biāo)GUI元素的XPath信息。在此,如以上參照?qǐng)D3的說明中所述,GUI元素5002和5003彼此的⑶I信息相同, 均為"/element [itext = iForml ‘ ] /children/element [itext = iFo^']/children/ element [itext = ‘Return,],,。本發(fā)明的主要特征在于還在步驟S404中獲取與目標(biāo)GUI元素有關(guān)的額外信息。 所述“額外信息”例如可以包括導(dǎo)致該目標(biāo)GUI元素出現(xiàn)的歷史事件信息,例如用戶通過鍵盤、鼠標(biāo)等輸入裝置進(jìn)行的操作事件;和/或與該目標(biāo)GUI元素相關(guān)的系統(tǒng)狀態(tài)信息,例如所占用的硬件(內(nèi)存、CPU等)資源或者軟件資源(GDI對(duì)象數(shù)等)等等,以及其他類似
IH
息。在以下的描述中,以歷史事件信息為例來進(jìn)行描述。但是需要指出的是,本發(fā)明中的 “額外信息”并不僅限于這種歷史事件信息。在步驟S404中,為了獲取歷史事件信息,首先要記錄導(dǎo)致目標(biāo)GUI元素出現(xiàn)的歷史事件。例如,對(duì)于目標(biāo)GUI元素1 (圖5中的5002),導(dǎo)致其出現(xiàn)的事件是點(diǎn)擊GUI元素 5001中的“0K”鍵;以及未選中復(fù)選框(或者將復(fù)選框點(diǎn)擊了偶數(shù)次)。而對(duì)于目標(biāo)GUI元素(圖5中的5003),導(dǎo)致其出現(xiàn)的事件是點(diǎn)擊⑶I元素5001中的“0K”鍵;以及選中復(fù)選框(或者將復(fù)選框點(diǎn)擊了奇數(shù)次)。在針對(duì)目標(biāo)GUI元素記錄了導(dǎo)致其出現(xiàn)的歷史事件之后,可以對(duì)這些歷史事件進(jìn)行分析,以得到其出現(xiàn)的條件。這種分析可以在訓(xùn)練階段由人工完成,或者由自動(dòng)訓(xùn)練程序來完成。在此,為了說明的方便,以如下邏輯表達(dá)式來描述各GUI元素的出現(xiàn)條件。目標(biāo)⑶I元素1條件1 (表示根本未點(diǎn)擊復(fù)選框)( ‘‘ /element[itext = 'FormΓ ]/children/element[itext = iCheckBox'] ButtonClick" ) = = FalseOR條件2 (表示將復(fù)選框點(diǎn)擊了偶數(shù)次)( ‘‘ /element[itext = 'FormΓ ]/children/element[itext = iCheckBox'] ButtonClick" ) % 2 == O目標(biāo)⑶I元素2條件1 (表示點(diǎn)擊了復(fù)選框)( ‘‘ /element[itext = 'FormΓ ]/children/element[itext = iCheckBox'] ButtonClick" ) == TrueAND條件2 (表示將復(fù)選框點(diǎn)擊了奇數(shù)次)( ‘‘ /element[itext = 'FormΓ ]/children/element[itext = iCheckBox'] ButtonClick" ) % 2 == 1注意,以上這些邏輯表達(dá)式只是為了說明方便而寫出的。在實(shí)際應(yīng)用中,可以存在各種方式(例如,表格形式)來描述目標(biāo)GUI元素的出現(xiàn)條件。這些出現(xiàn)條件代表了導(dǎo)致該目標(biāo)GUI元素出現(xiàn)的歷史事件信息。在如上所述得到目標(biāo)⑶I元素的屬性信息(在此,為XPath信息)和額外信息之后,在步驟S405中對(duì)它們進(jìn)行處理(例如,組合)以得到目標(biāo)GUI元素的識(shí)別信息。例如, 在圖5所示的示例中,目標(biāo)GUI元素1(5002)和目標(biāo)GUI元素2 (5003)的識(shí)別信息可以分別如圖6(a)和圖6(b)所示。這里需要指出,圖6中所示出的識(shí)別信息僅僅是示例,存在其
8他不同形式的識(shí)別信息。在訓(xùn)練階段如上所述獲得了 GUI元素的增強(qiáng)識(shí)別信息之后,在運(yùn)行階段能夠利用這種增強(qiáng)識(shí)別信息來識(shí)別⑶I元素。圖7示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的根據(jù)GUI元素識(shí)別信息來識(shí)別GUI元素的方法。如圖7所示,該方法在步驟S701中開始。首先,在步驟S702中,例如通過顯示器等顯示裝置,顯示⑶I,該⑶I中包括待識(shí)別的⑶I元素。然后,分別在步驟S703中收集待識(shí)別GUI元素的屬性信息如XPath信息,以及在步驟S704中收集與待識(shí)別GUI元素相關(guān)的、屬性信息之外的額外信息。這種屬性信息以及額外信息的收集與訓(xùn)練過程中的信息收集相似,在此不再詳細(xì)說明。在獲得待識(shí)別⑶I元素的屬性信息和額外信息之后,在步驟S705中,在訓(xùn)練過程中所記錄的GUI元素識(shí)別信息中搜索是否存在與之相匹配的項(xiàng)。如果存在與之相匹配的項(xiàng),則在步驟S706中將該待識(shí)別的GUI元素被識(shí)別為與該匹配項(xiàng)相對(duì)應(yīng)的GUI元素。否則, 在步驟S707中,進(jìn)行錯(cuò)誤處理,例如向用戶報(bào)錯(cuò)。最后,該方法在S708結(jié)束。以下將參照?qǐng)D3所示的示例,來詳細(xì)說明上述識(shí)別處理。在此,還是以XPath信息和歷史事件信息兩者為例來進(jìn)行說明。但是需要指出的是,本發(fā)明并不限于這種XPath信息和歷史事件信息。在本地應(yīng)用當(dāng)前顯示的⑶I上存在⑶I元素3001的情況下,若未點(diǎn)擊復(fù)選框就直接點(diǎn)擊了 “0K”鍵(如圖3中箭頭1所示),則將在⑶I上出現(xiàn)⑶I元素3002。對(duì)于該⑶I 元素3002,可以獲得其XPath信息為"/element [itext = iForml ‘ ] /children/element [itext = iFo^']/children/ element [itext = ‘Return,],,。同時(shí),導(dǎo)致該⑶I元素3002出現(xiàn)的事件為"/element [itext = ‘Forml,] /ch i 1 dr en/e 1 ement [itext = ‘OK,] ButtonClick"(表示點(diǎn)擊了 “OK” 鍵)。將得到的⑶I元素3002的上述XPath信息和歷史事件信息與訓(xùn)練過程中得到的識(shí)別信息(如圖6(a)、(b)所示)相比較。由于導(dǎo)致GUI元素3002出現(xiàn)的事件為點(diǎn)擊“0K” 鍵,也就說,并未點(diǎn)擊復(fù)選框,即( ‘‘ /element[itext = ‘Forml,]/children/element[itext = iCheckBox'] ButtonClick" ) = =False0因此,通過比較可知該⑶I元素3002與圖6 (a)所示的目標(biāo)⑶I元素1的識(shí)別信息相匹配。因此,可以將該⑶I元素3002識(shí)別為目標(biāo)⑶I元素1。同理,在本地應(yīng)用當(dāng)前顯示的⑶I上存在⑶I元素3001的情況下,若點(diǎn)擊復(fù)選框1 次從而選中復(fù)選框,并且然后點(diǎn)擊“0K”鍵(如圖3中箭頭3所示),則將在⑶I上出現(xiàn)⑶I 元素3003。對(duì)于該⑶I元素3003,可以獲得其XPath信息為"/element [itext = iForml ‘ ] /children/element [itext = iFo^']/children/ element [itext = ‘Return,],,。同時(shí),導(dǎo)致該⑶I元素3003出現(xiàn)的事件為"/element[itext = ‘Forml,]/children/element[itext = iCheckBox'] ButtonClick"(表示點(diǎn)擊了復(fù)選框),以及
"/element [itext = ‘Forml,] /ch i 1 dr en/e 1 ement [itext = ‘OK,] ButtonClick"(表示點(diǎn)擊了 “OK” 鍵)。將得到的⑶I元素3003的上述XPath信息和歷史事件信息與訓(xùn)練過程中得到的識(shí)別信息(如圖6(a)、(b)所示)相比較。由于導(dǎo)致GUI元素3003出現(xiàn)的事件為點(diǎn)擊了 1 次復(fù)選框,即( ‘‘ /element[itext = 'FormΓ ]/children/element[itext = iCheckBox'] ButtonClick" ) == True,以及( ‘‘ /element[itext = 'FormΓ ]/children/element[itext = iCheckBox'] ButtonClick" ) % 2 == I0因此,通過比較可知該⑶I元素3003與圖6 (b)所示的目標(biāo)⑶I元素2的識(shí)別信息相匹配。因此,可以將該⑶I元素3003識(shí)別為目標(biāo)⑶I元素2。這樣,在現(xiàn)有技術(shù)中無法區(qū)分的⑶I元素3002和3003,可以通過本發(fā)明的方法予以區(qū)分。本發(fā)明還提供了一種⑶I元素識(shí)別信息生成裝置。圖8示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的GUI元素識(shí)別信息生成裝置的示意圖。如圖8所示,該GUI元素識(shí)別信息生成裝置 800包括顯示裝置805,用于顯示⑶I,該⑶I包括目標(biāo)⑶I元素,以下將針對(duì)該目標(biāo)⑶I元素來生成識(shí)別信息;屬性信息獲取單元801,用于對(duì)所顯示的GUI進(jìn)行分析,以獲取目標(biāo)GUI 元素的屬性信息例如XPath信息;額外信息獲取單元802,用于根據(jù)歷史事件(例如,用戶通過鍵盤、鼠標(biāo)等輸入裝置的操作等)、系統(tǒng)狀態(tài)等,獲取與目標(biāo)GUI元素相關(guān)的額外信息; 以及識(shí)別信息生成單元803,對(duì)屬性信息獲取單元801獲取的屬性信息以及額外信息獲取單元802獲取的額外信息進(jìn)行處理,生成目標(biāo)GUI元素的識(shí)別信息。該裝置800還可以包括存儲(chǔ)裝置804。該存儲(chǔ)裝置804例如可以用來存儲(chǔ)屬性信息獲取單元801獲取的屬性信息、額外信息獲取單元802獲取的額外信息和/或識(shí)別信息生成單元803所生成的識(shí)別信息等。該存儲(chǔ)裝置804可以是該識(shí)別信息生成裝置800內(nèi)部的存儲(chǔ)器,或者可以是外部存儲(chǔ)器、乃至網(wǎng)絡(luò)存儲(chǔ)器。該存儲(chǔ)裝置804可以包括單一的存儲(chǔ)器,也可以包括多個(gè)存儲(chǔ)器。圖9示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的屬性信息獲取單元801的結(jié)構(gòu)示意圖。如圖 9所示,屬性信息獲取單元801可以包括UI抓取單元8011,用于從所顯示的⑶I中獲取UI 元素信息,該信息是XML格式的;以及屬性信息生成單元8012,用于對(duì)UI抓取單元8011所獲得的UI元素信息進(jìn)行分析,以得到目標(biāo)GUI元素的XPath信息。圖10示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的額外信息獲取單元802的結(jié)構(gòu)示意圖。如圖10所示,額外信息獲取單元802包括事件記錄單元8021,用于記錄導(dǎo)致目標(biāo)GUI元素出現(xiàn)的歷史事件或者與該目標(biāo)GUI元素相關(guān)的系統(tǒng)狀態(tài)等(這里統(tǒng)稱為“事件”,用戶可以在系統(tǒng)中指定記錄何種事件,例如是記錄歷史事件還是記錄系統(tǒng)狀態(tài));目標(biāo)⑶I元素判斷單元8022,用于判斷是否是目標(biāo)⑶I元素出現(xiàn)在所顯示的⑶I上,并將判斷結(jié)果發(fā)送到事件記錄單元8021 ;以及額外信息生成單元8023,根據(jù)由事件記錄單元8021針對(duì)目標(biāo)⑶I元素所記錄的事件,來生成額外信息。在此,需要指出的是,這里需要一個(gè)元素判斷單元8022來判斷是否是目標(biāo)⑶I元素出現(xiàn)。這是因?yàn)?,在生成識(shí)別信息時(shí)尚處于訓(xùn)練階段,此時(shí)需要有“人”(也可以通過自動(dòng)訓(xùn)練程序)來告知計(jì)算機(jī)目標(biāo)GUI元素的出現(xiàn)。在通過訓(xùn)練階段獲得了 GUI元素的識(shí)別信息之后,在運(yùn)行時(shí)就可以自動(dòng)識(shí)別GUI元素。在此,該元素判斷單元8022可以如上所述將判斷結(jié)果通知到事件記錄單元8021, 以及可選地還可以通知到屬性信息獲取單元801(例如,通知給屬性信息生成單元8012)以便屬性信息獲取單元801能夠正確地獲取目標(biāo)⑶I元素的屬性信息。本發(fā)明還提供了一種⑶I元素識(shí)別裝置。圖11示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的 ⑶I元素識(shí)別裝置。如圖11所示,該⑶I元素識(shí)別裝置1100包括存儲(chǔ)裝置1104,用于存儲(chǔ)GUI元素識(shí)別信息,該GUI元素識(shí)別信息例如是在訓(xùn)練階段獲得的;顯示裝置1105,用于顯示⑶I,該⑶I中包括待識(shí)別的⑶I元素;屬性信息獲取單元1101,用于從⑶I獲取待識(shí)別GUI元素的屬性信息;額外信息獲取單元1102,用于獲取與待識(shí)別GUI元素相關(guān)的額外信息,例如歷史事件(例如,用戶的通過輸入裝置(例如,鼠標(biāo)、鍵盤)的操作(按鍵、點(diǎn)擊) 等)、系統(tǒng)狀態(tài)等;以及識(shí)別單元1103,根據(jù)屬性信息獲取單元1101獲取的屬性信息以及額外信息獲取單元1102獲取的額外信息,并根據(jù)存儲(chǔ)裝置1104中存儲(chǔ)的GUI元素識(shí)別信息, 來識(shí)別待識(shí)別⑶I元素。這里,在存儲(chǔ)裝置1104中存儲(chǔ)了 GUI元素識(shí)別信息,這種信息例如是通過執(zhí)行圖4 中所示的方法而獲得的,或者是由圖8中所示的識(shí)別信息生成裝置800生成的。存儲(chǔ)裝置 1104可以是該GUI元素識(shí)別裝置1100內(nèi)部的存儲(chǔ)裝置,也可以是其外部的存儲(chǔ)裝置,例如網(wǎng)絡(luò)存儲(chǔ)器等。另外,該⑶I元素識(shí)別裝置1100中包括的屬性信息獲取單元1101可以與上述⑶I 元素識(shí)別信息生成裝置800中包括的屬性信息獲取單元801具有相同的結(jié)構(gòu),而且該GUI 元素識(shí)別裝置1100中包括的額外信息獲取單元1102可以與上述GUI元素識(shí)別信息生成裝置800中包括的額外信息獲取單元802具有類似的結(jié)構(gòu)(除了不需要目標(biāo)GUI元素判斷單元8022之外)。根據(jù)本發(fā)明,還提供了一種GUI元素識(shí)別系統(tǒng),該系統(tǒng)包括上述根據(jù)本發(fā)明的GUI 元素識(shí)別信息生成裝置以及GUI元素識(shí)別裝置。從而在該系統(tǒng)內(nèi),可以完成GUI元素識(shí)別信息的生成(訓(xùn)練)及GUI元素的識(shí)別(運(yùn)行)。在該系統(tǒng)中,GUI元素識(shí)別信息生成裝置和GUI元素識(shí)別裝置可以是分離的裝置(例如,通過網(wǎng)絡(luò)連接的兩個(gè)獨(dú)立裝置)。或者,GUI 元素識(shí)別信息生成裝置和GUI元素識(shí)別裝置可以形成為一體。特別地,GUI元素識(shí)別信息生成裝置與GUI元素識(shí)別裝置中相應(yīng)的屬性信息獲取單元(801,1101)、額外信息獲取單元 (802,1102)可以分別由同一單元構(gòu)成,或者也可以形成為獨(dú)立的單元。其中,GUI元素識(shí)別信息生成裝置所生成的GUI元素識(shí)別信息可以存儲(chǔ)在GUI元素識(shí)別裝置的存儲(chǔ)裝置中。以上參照本發(fā)明的實(shí)施例對(duì)本發(fā)明予以了說明。但是,這些實(shí)施例僅僅是為了說明的目的,而并非為了限制本發(fā)明的范圍。本發(fā)明的范圍由所附權(quán)利要求及其等價(jià)物限定。 不脫離本發(fā)明的范圍,本領(lǐng)域技術(shù)人員可以做出多種替換和修改,這些替換和修改都應(yīng)落在本發(fā)明的范圍之內(nèi)。
1權(quán)利要求
1.一種生成圖形用戶界面⑶I元素識(shí)別信息的方法,包括 顯示⑶I,該⑶I包括目標(biāo)⑶I元素;對(duì)所顯示的GUI進(jìn)行分析,以獲得目標(biāo)GUI元素的屬性信息;獲得與目標(biāo)GUI元素相關(guān)的、屬性信息之外的額外信息;對(duì)所獲得的屬性信息和額外信息進(jìn)行處理,生成該目標(biāo)GUI元素的識(shí)別信息。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述屬性信息包括XPath信息,以及獲得屬性信息的步驟包括獲取GUI中的所有元素信息,所述信息形成為XML格式; 對(duì)XML格式的元素信息進(jìn)行分析,以獲得目標(biāo)GUI元素的XPath信息。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述額外信息包括導(dǎo)致該目標(biāo)GUI元素出現(xiàn)的歷史事件信息,獲得該額外信息的步驟包括記錄導(dǎo)致該目標(biāo)GUI元素出現(xiàn)的歷史事件;以及對(duì)所述歷史事件進(jìn)行分析,以轉(zhuǎn)換成目標(biāo)GUI元素的出現(xiàn)條件,其中所述出現(xiàn)條件成為該目標(biāo)GUI元素的歷史事件信息。
4.如權(quán)利要求1所述的方法,其中,所述額外信息包括系統(tǒng)狀態(tài)信息。
5.一種根據(jù)圖形用戶界面GUI元素識(shí)別信息來識(shí)別待識(shí)別GUI元素的方法,所述GUI 元素識(shí)別信息包括針對(duì)相應(yīng)GUI元素的屬性信息和屬性信息之外的額外信息,該方法包括顯示⑶I,該⑶I包括待識(shí)別⑶I元素; 對(duì)所顯示的GUI進(jìn)行分析,以獲得待識(shí)別GUI元素的屬性信息; 獲得與待識(shí)別GUI元素相關(guān)的、屬性信息之外的額外信息;以及在GUI元素識(shí)別信息中搜索如下信息項(xiàng),該信息項(xiàng)包括的屬性信息與所獲取的待識(shí)別 GUI元素的屬性信息匹配,且該信息項(xiàng)包括的額外信息與待識(shí)別GUI元素相關(guān)的額外信息相匹配。
6.如權(quán)利要求5所述的方法,其中,所述額外信息包括歷史事件信息和/或系統(tǒng)狀態(tài)信肩、ο
7.一種圖形用戶界面⑶I元素識(shí)別信息生成裝置,包括 顯示裝置,用于顯示⑶I,該⑶I包括目標(biāo)⑶I元素;屬性信息獲取單元,用于對(duì)所顯示的GUI進(jìn)行分析,以獲得目標(biāo)GUI元素的屬性信息; 額外信息獲取單元,用于獲得與目標(biāo)GUI元素相關(guān)的、屬性信息之外的額外信息;以及識(shí)別信息生成單元,用于對(duì)所獲得的屬性信息和額外信息進(jìn)行處理,生成該目標(biāo)GUI 元素的識(shí)別信息。
8.如權(quán)利要求7所述的裝置,其中,所述屬性信息包括XPath信息,以及所述屬性信息獲取單元包括UI抓取單元,用于獲取GUI中的所有元素信息,所述信息形成為XML格式;以及屬性信息生成單元,用于對(duì)UI抓取單元所獲得的XML格式的元素信息進(jìn)行分析,以獲得目標(biāo)⑶I元素的XPath信息。
9.如權(quán)利要求7所述的裝置,其中,所述額外信息包括導(dǎo)致該目標(biāo)GUI元素出現(xiàn)的歷史事件信息,以及所述額外信息獲取單元包括事件記錄單元,用于記錄導(dǎo)致目標(biāo)GUI元素出現(xiàn)的歷史事件;目標(biāo)GUI元素判斷單元,用于判斷GUI上是否出現(xiàn)目標(biāo)GUI元素,并向事件記錄單元發(fā)送判斷結(jié)果;以及額外信息生成單元,用于根據(jù)事件記錄單元針對(duì)目標(biāo)GUI元素所記錄的歷史事件,來生成包括歷史事件信息的額外信息。
10.一種圖形用戶界面⑶I元素識(shí)別裝置,包括存儲(chǔ)裝置,用于存儲(chǔ)GUI元素識(shí)別信息,所述GUI元素識(shí)別信息包括針對(duì)相應(yīng)GUI元素的屬性信息和屬性信息之外的額外信息;顯示裝置,顯示⑶I,該⑶I包括待識(shí)別⑶I元素;屬性信息獲取單元,用于對(duì)所顯示的GUI進(jìn)行分析,以獲得待識(shí)別GUI元素的屬性信息;額外信息獲取單元,用于獲得與待識(shí)別GUI元素相關(guān)的、屬性信息之外的額外信息;以及識(shí)別單元,根據(jù)屬性信息獲取單元獲取的屬性信息以及額外信息獲取單元獲取的額外信息,并根據(jù)存儲(chǔ)裝置中存儲(chǔ)的GUI元素識(shí)別信息,來識(shí)別待識(shí)別GUI元素信息。
11.一種圖形用戶界面GUI元素識(shí)別系統(tǒng),包括根據(jù)權(quán)利要求7所述的GUI元素識(shí)別信息生成裝置以及根據(jù)權(quán)利要求10所述的GUI元素識(shí)別裝置,其中所述存儲(chǔ)裝置存儲(chǔ)由所述⑶I元素識(shí)別信息生成裝置所生成的⑶I元素識(shí)別信息。
12.如權(quán)利要求11所述的GUI元素識(shí)別系統(tǒng),其中,所述GUI元素識(shí)別信息生成裝置中的屬性信息獲取單元與所述GUI元素識(shí)別裝置中的屬性信息獲取單元由同一單元構(gòu)成,以及所述GUI元素識(shí)別信息生成裝置中的額外信息獲取單元與所述GUI元素識(shí)別裝置中的額外信息獲取單元由同一單元構(gòu)成。
全文摘要
本發(fā)明公開了一種圖形用戶界面(GUI)元素識(shí)別方法、裝置及系統(tǒng)。根據(jù)本發(fā)明的一個(gè)方面,一種生成GUI元素識(shí)別信息的方法包括顯示GUI,該GUI包括目標(biāo)GUI元素;對(duì)所顯示的GUI進(jìn)行分析,以獲得目標(biāo)GUI元素的屬性信息;獲得與目標(biāo)GUI元素相關(guān)的、屬性信息之外的額外信息;對(duì)所獲得的屬性信息和額外信息進(jìn)行處理,生成該目標(biāo)GUI元素的識(shí)別信息。
文檔編號(hào)G06F9/44GK102207857SQ20101013701
公開日2011年10月5日 申請(qǐng)日期2010年3月29日 優(yōu)先權(quán)日2010年3月29日
發(fā)明者劉慧峰, 劉曉煒, 史敬威, 孟昕, 宋才良, 王煉 申請(qǐng)人:日電(中國)有限公司