欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

自定義控件獲取方法和裝置制造方法

文檔序號:6638920閱讀:143來源:國知局
自定義控件獲取方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種自定義控件獲取方法和裝置,可以用于用戶界面自動化測試。其中,自定義控件獲取方法包括:獲取目標控件的查詢條件,其中,目標控件為待獲取的自定義控件,查詢條件為用于查詢目標控件的條件;獲取目標控件所在的父窗口;通過遍歷父窗口的子控件來查詢滿足查詢條件的控件,將滿足查詢條件的控件作為目標控件;在查詢到目標控件之后,獲取目標控件的位置屬性,其中,位置屬性為用于表示目標控件位置的屬性;以及通過目標控件的位置屬性獲取目標控件的位置信息。通過本發(fā)明,解決了現(xiàn)有技術(shù)中無法獲取到自定義控件的精確位置的問題,達到了獲取到自定義控件的精確位置的效果。
【專利說明】自定義控件獲取方法和裝置

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及自動化測試領(lǐng)域,具體而言,涉及一種自定義控件獲取方法和裝置。

【背景技術(shù)】
[0002] 在軟件用戶界面(UI)自動化測試過程中,為了準確地控制鼠標操作的位置,有一 套獲取被測對象上目標控件的位置的機制。一般的Π 自動化測試通常會使用一些工具來 獲取這些對象的具體位置,例如:VisualStudio中的Spy++,或者AutoIt中的WindowsInfo 工具。但是這些工具只能識別系統(tǒng)預(yù)設(shè)好的控件類型,如果界面上存在用戶自己定義的控 件類型,則不能夠獲取到控件的精確位置。
[0003] 例如,如圖1所示,"自定義控件"無法通過常規(guī)工具來獲取,則通過其相對于父窗 口左上角的相對位置的X、Y坐標來獲取到控件的位置。相對坐標X、Y不夠準確,即使在當 前環(huán)境能夠準確獲取到該控件的具體位置,但是在不同分辨率的屏幕或其他環(huán)境下,這個 相對坐標會有差異,這也就使得該方法獲取到自定義控件的精確位置。
[0004] 針對現(xiàn)有技術(shù)中無法獲取到自定義控件的精確位置的問題,目前尚未提出有效的 解決方案。


【發(fā)明內(nèi)容】

[0005] 本發(fā)明的主要目的在于提供一種自定義控件獲取方法和裝置,以解決現(xiàn)有技術(shù)中 無法獲取到自定義控件的精確位置的問題。
[0006] 為了實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的一個方面,提供了一種自定義控件獲取 方法,用于用戶界面自動化測試。根據(jù)本發(fā)明的自定義控件獲取方法包括:獲取目標控件的 查詢條件,其中,所述目標控件為待獲取的自定義控件,所述查詢條件為用于查詢所述目標 控件的條件;獲取所述目標控件所在的父窗口;通過遍歷所述父窗口的子控件來查詢滿足 所述查詢條件的控件,將滿足所述查詢條件的控件作為所述目標控件;在查詢到所述目標 控件之后,獲取所述目標控件的位置屬性,其中,所述位置屬性為用于表示所述目標控件位 置的屬性;以及通過所述目標控件的位置屬性獲取所述目標控件的位置信息。
[0007] 進一步地,通過遍歷所述父窗口的子控件來查詢滿足所述查詢條件的控件包括: 判斷所述父窗口的子控件中是否存在容器型控件,所述容器型控件內(nèi)包含有多個控件;以 及如果判斷出所述父窗口的子控件中存在所述容器型控件,則通過遍歷所述父窗口的子控 件和所述容器型控件中的多個控件來查詢滿足所述查詢條件的控件。
[0008] 進一步地,所述查詢條件包括以下至少之一:所述目標控件的名稱、所述目標控件 的控件類型和所述目標控件的Text屬性,通過遍歷所述父窗口的子控件來查詢滿足所述 查詢條件的控件包括:調(diào)用所述父窗口的子控件的名稱、控件類型和Text屬性;將所述目 標控件的名稱、所述目標控件的控件類型和所述目標控件的Text屬性分別與調(diào)用的所述 父窗口的子控件的名稱、控件類型和Text屬性進行比對;以及如果所述父窗口的子控件的 名稱與所述目標控件的名稱一致和/或所述父窗口的子控件的控件類型與所述目標控件 的控件類型一致和/或所述父窗口的子控件的Text屬性與所述目標控件的Text屬性一 致,則確定所述父窗口的子控件為所述目標控件。
[0009] 進一步地,通過所述目標控件的位置屬性獲取所述目標控件的位置信息包括:使 用所述目標控件定義的類調(diào)用所述目標控件內(nèi)部的接口;以及通過調(diào)用的所述目標控件內(nèi) 部的接口獲取所述目標控件的位置信息。
[0010] 進一步地,在獲取目標控件的查詢條件之前,所述自定義控件獲取方法還包括:獲 取所述目標控件的動態(tài)鏈接庫,其中,所述動態(tài)鏈接庫為記錄有所述目標控件的位置信息 的文件;將所述動態(tài)鏈接庫引用到所述用戶界面自動化測試工程,其中,通過所述目標控件 的位置屬性獲取所述目標控件的位置信息包括:通過所述目標控件的位置屬性從引用的所 述動態(tài)鏈接庫中獲取所述目標控件的位置信息。
[0011] 為了實現(xiàn)上述目的,根據(jù)本發(fā)明實施例的另一方面,提供了一種自定義控件獲取 裝置,用于用戶界面自動化測試。根據(jù)本發(fā)明的自定義控件獲取裝置包括:第一獲取單元, 用于獲取目標控件的查詢條件,其中,所述目標控件為待獲取的自定義控件,所述查詢條件 為用于查詢所述目標控件的條件;第二獲取單元,用于獲取所述目標控件所在的父窗口; 查詢單元,用于通過遍歷所述父窗口的子控件來查詢滿足所述查詢條件的控件,將滿足所 述查詢條件的控件作為所述目標控件;第三獲取單元,用于在查詢到所述目標控件之后,獲 取所述目標控件的位置屬性,其中,所述位置屬性為用于表示所述目標控件位置的屬性;以 及第四獲取單元,用于通過所述目標控件的位置屬性獲取所述目標控件的位置信息。
[0012] 進一步地,所述查詢單元包括:判斷模塊,用于判斷所述父窗口的子控件中是否存 在容器型控件,所述容器型控件內(nèi)包含有多個控件;以及查詢模塊,用于如果判斷出所述父 窗口的子控件中存在所述容器型控件,則通過遍歷所述父窗口的子控件和所述容器型控件 中的多個控件來查詢滿足所述查詢條件的控件。
[0013] 進一步地,所述查詢條件包括以下至少之一:所述目標控件的名稱、所述目標控件 的控件類型、所述目標控件的Text屬性,所述查詢單元包括:第一調(diào)用模塊,用于調(diào)用所述 父窗口的子控件的名稱、控件類型和Text屬性;比對模塊,用于將所述目標控件的名稱、所 述目標控件的控件類型和所述目標控件的Text屬性分別與調(diào)用的所述父窗口的子控件的 名稱、控件類型和Text屬性進行比對;以及確定模塊,用于如果所述父窗口的子控件的名 稱與所述目標控件的名稱一致和/或所述父窗口的子控件的控件類型與所述目標控件的 控件類型一致和/或所述父窗口的子控件的Text屬性與所述目標控件的Text屬性一致, 則確定所述父窗口的子控件為所述目標控件。
[0014] 進一步地,所述第四獲取單元包括:第二調(diào)用模塊,用于使用所述目標控件定義的 類調(diào)用所述目標控件內(nèi)部的接口;以及獲取模塊,用于通過調(diào)用的所述目標控件內(nèi)部的接 口獲取所述目標控件的位置信息。
[0015] 進一步地,所述自定義控件獲取裝置還包括:第五獲取單元,用于在獲取目標控件 的查詢條件之前,獲取所述目標控件的動態(tài)鏈接庫,其中,所述動態(tài)鏈接庫為記錄有所述目 標控件的位置信息的文件;引用單元,用于將所述動態(tài)鏈接庫引用到所述用戶界面自動化 測試工程,其中,所述第四獲取單元還用于通過所述目標控件的位置屬性從引用的所述動 態(tài)鏈接庫中獲取所述目標控件的位置信息。
[0016] 根據(jù)本發(fā)明實施例,先獲取目標控件的查詢條件,通過遍歷父窗口的子控件來查 詢滿足查詢條件的控件,將滿足查詢條件的控件作為目標控件,在查詢到目標控件之后,獲 取目標控件的位置屬性,最后通過目標控件的位置屬性獲取目標控件的位置信息,這樣,通 過遍歷父窗口的子控件來查找目標控件,然后利用目標控件的位置屬性來獲取目標控件的 位置信息,以得到目標控件的精確位置,解決了現(xiàn)有技術(shù)中無法獲取到自定義控件的精確 位置的問題,達到了獲取到自定義控件的精確位置的效果。

【專利附圖】

【附圖說明】
[0017] 構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實 施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
[0018] 圖1是根據(jù)現(xiàn)有技術(shù)的一種父窗口的示意圖;
[0019] 圖2是根據(jù)本發(fā)明實施例的自定義控件獲取方法的流程圖;
[0020] 圖3是根據(jù)本發(fā)明實施例的一種自定義控件的示意圖;以及
[0021] 圖4是根據(jù)本發(fā)明實施例的自定義控件獲取裝置的示意圖。

【具體實施方式】
[0022] 需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相 互組合。下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。
[0023] 為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的 附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是 本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù) 人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當屬于本發(fā)明保護的范 圍。
[0024] 需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語"第一"、"第 二"等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使 用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本發(fā)明的實施例。此外,術(shù)語"包括"和 "具有"以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元 的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有 清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0025] 本發(fā)明實施例提供了一種自定義控件獲取方法。該自定義控件獲取方法可以通過 計算機設(shè)備實現(xiàn),用于用戶界面自動化測試。
[0026] 圖2是根據(jù)本發(fā)明實施例的自定義控件獲取方法的流程圖。如圖2所示,該自定 義控件獲取方法包括步驟如下:
[0027] 步驟S102,獲取目標控件的查詢條件。其中,目標控件為待獲取的自定義控件,查 詢條件為用于查詢目標控件的條件。
[0028] 查詢條件可以是例如目標控件的名稱、控件類型、Test屬性等,該條件可以是在自 動化測試過程中,通過測試人員輸入的或者選擇的用于獲取目標控件的條件。
[0029] 步驟S104,獲取目標控件所在的父窗口。
[0030] 父窗口可以是一個窗體form,在該父窗口下可以包含有一個或者多個控件,這些 控件可以是系統(tǒng)預(yù)設(shè)的控件,也可以是自定義控件。
[0031] 步驟S106,通過遍歷父窗口的子控件來查詢滿足查詢條件的控件,將滿足查詢條 件的控件作為目標控件。
[0032] 在系統(tǒng)窗口中,所有控件都有一定的組織順序,容器型控件含有很多子控件。父窗 口作為容器型控件。在獲取到目標控件所在的父窗口之后,通過遍歷父窗口下的子控件來 查詢滿足查詢條件的控件,即目標控件。具體地,對父窗口中子控件檢測一下是否符合想要 找的查詢條件,從而找出滿足查詢條件的自定義控件,以便于精確找到自定義控件的位置。 如果父窗口的子控件中存在容器型控件,則在對父窗口的子控件遍歷完后,在遍歷其中的 容器型控件內(nèi)的子控件。
[0033] 例如,對于windows系統(tǒng)的自定義控件,可以在獲取到父窗口之后,通過Control. ControIs接口來對父窗口中子控件進行遍歷,找出滿足查詢條件的自定義控件。因為所有 控件都繼承與Control類型,因此都有Controls屬性,如果父窗口的子控件中還存在著容 器控件,則仍然可以利用Controls屬性逐層在容器控件中進行遍歷,直到找到目標自定義 控件。其中,Control是一個類型,是C#中所有Windows控件的基類。Controls是屬性,是 當前Congrol類型實例的所有子控件的集合。由于自定義控件的基類是Control類型,因 此能夠調(diào)用Control類型的所有屬性或函數(shù)。
[0034] 步驟S108,在查詢到目標控件之后,獲取目標控件的位置屬性。其中,位置屬性為 用于表示目標控件位置的屬性。
[0035] 步驟S110,通過目標控件的位置屬性獲取目標控件的位置信息。
[0036] 在查詢到目標控件之后,則可以獲取目標控件的位置屬性,該位置屬性記載有目 標控件的精確位置,利用該位置屬性可以獲取目標控件的位置信息,從而獲取到目標控件 的精確位置。
[0037] 根據(jù)本發(fā)明實施例,先獲取目標控件的查詢條件,通過遍歷父窗口的子控件來查 詢滿足查詢條件的控件,將滿足查詢條件的控件作為目標控件,在查詢到目標控件之后,獲 取目標控件的位置屬性,最后通過目標控件的位置屬性獲取目標控件的位置信息,這樣,通 過遍歷父窗口的子控件來查找目標控件,然后利用目標控件的位置屬性來獲取目標控件的 位置信息,以得到目標控件的精確位置,解決了現(xiàn)有技術(shù)中無法獲取到自定義控件的精確 位置的問題,達到了獲取到自定義控件的精確位置的效果。
[0038] 優(yōu)選地,通過遍歷父窗口的子控件來查詢滿足查詢條件的控件包括:判斷父窗口 的子控件中是否存在容器型控件,容器型控件內(nèi)包含有多個控件;如果判斷出父窗口的子 控件中存在容器型控件,則通過遍歷父窗口的子控件和容器型控件中的多個控件來查詢滿 足查詢條件的控件。
[0039] 由于父窗口的子控件中可能存在容器型控件,本發(fā)明實施例中,通過檢測判斷父 窗口中是否存在容器型控件,如果存在容器型控件,則可以對父窗口中的子窗口和子窗口 中的容器型窗口進行遍歷,從而查找出滿足查詢條件的自定義控件,保證遍歷查找的全面 性,從而提高查找目標控件的精確性。
[0040] 優(yōu)選地,查詢條件包括以下至少之一:目標控件的名稱、目標控件的控件類型和目 標控件的Text屬性,通過遍歷父窗口的子控件來查詢滿足查詢條件的控件包括:調(diào)用父窗 口的子控件的名稱、控件類型和Text屬性;將目標控件的名稱、目標控件的控件類型和目 標控件的Text屬性分別與調(diào)用的父窗口的子控件的名稱、控件類型和Text屬性進行比對; 以及如果父窗口的子控件的名稱與目標控件的名稱一致和/或父窗口的子控件的控件類 型與目標控件的控件類型一致和/或父窗口的子控件的Text屬性與目標控件的Text屬性 一致,則確定父窗口的子控件為目標控件。
[0041] 本發(fā)明實施例中,以目標控件的名稱、目標控件的控件類型和目標控件的Text屬 性作為查詢條件,通過利用上述屬性來對父窗口的子控件進行匹配查找,如果各屬性中有 一個屬性一致,則認為查詢到的控件為目標控件。
[0042] 以Control類型的父窗口為例,由于自定義控件的基類是Control類型,因此能 夠調(diào)用Control類型的所有屬性或函數(shù),S卩,父窗口的子控件名稱(Name屬性)、控件類型 (GetTypeO函數(shù))和Text屬性都是Control類型可以直接調(diào)用。
[0043] 例如,要查找的自定義控件的名稱(Name)為m_customControl ;類型(GetType ()) 為CustomClass ;Text屬性為"xyz"。那么我們在遍歷父窗口的所有子控件時,只需要如下 條件就能確定當前遍歷到的子控件是否就是我們需要找的控件。

【權(quán)利要求】
1. 一種自定義控件獲取方法,其特征在于,用于用戶界面自動化測試,其中,所述自定 義控件獲取方法包括: 獲取目標控件的查詢條件,其中,所述目標控件為待獲取的自定義控件,所述查詢條件 為用于查詢所述目標控件的條件; 獲取所述目標控件所在的父窗口; 通過遍歷所述父窗口的子控件來查詢滿足所述查詢條件的控件,將滿足所述查詢條件 的控件作為所述目標控件; 在查詢到所述目標控件之后,獲取所述目標控件的位置屬性,其中,所述位置屬性為用 于表示所述目標控件位置的屬性;W及 通過所述目標控件的位置屬性獲取所述目標控件的位置信息。
2. 根據(jù)權(quán)利要求1所述的自定義控件獲取方法,其特征在于,通過遍歷所述父窗口的 子控件來查詢滿足所述查詢條件的控件包括: 判斷所述父窗口的子控件中是否存在容器型控件,所述容器型控件內(nèi)包含有多個控 件;W及 如果判斷出所述父窗口的子控件中存在所述容器型控件,則通過遍歷所述父窗口的子 控件和所述容器型控件中的多個控件來查詢滿足所述查詢條件的控件。
3. 根據(jù)權(quán)利要求1所述的自定義控件獲取方法,其特征在于,所述查詢條件包括W下 至少之一;所述目標控件的名稱、所述目標控件的控件類型和所述目標控件的Text屬性, 通過遍歷所述父窗口的子控件來查詢滿足所述查詢條件的控件包括: 調(diào)用所述父窗口的子控件的名稱、控件類型和Text屬性; 將所述目標控件的名稱、所述目標控件的控件類型和所述目標控件的Text屬性分別 與調(diào)用的所述父窗口的子控件的名稱、控件類型和Text屬性進行比對;W及 如果所述父窗口的子控件的名稱與所述目標控件的名稱一致和/或所述父窗口的子 控件的控件類型與所述目標控件的控件類型一致和/或所述父窗口的子控件的Text屬性 與所述目標控件的Text屬性一致,則確定所述父窗口的子控件為所述目標控件。
4. 根據(jù)權(quán)利要求1所述的自定義控件獲取方法,其特征在于,通過所述目標控件的位 置屬性獲取所述目標控件的位置信息包括: 使用所述目標控件定義的類調(diào)用所述目標控件內(nèi)部的接口; W及 通過調(diào)用的所述目標控件內(nèi)部的接口獲取所述目標控件的位置信息。
5. 根據(jù)權(quán)利要求1所述的自定義控件獲取方法,其特征在于,在獲取目標控件的查詢 條件之前,所述自定義控件獲取方法還包括: 獲取所述目標控件的動態(tài)鏈接庫,其中,所述動態(tài)鏈接庫為記錄有所述目標控件的位 置信息的文件; 將所述動態(tài)鏈接庫引用到所述用戶界面自動化測試工程, 其中,通過所述目標控件的位置屬性獲取所述目標控件的位置信息包括;通過所述目 標控件的位置屬性從引用的所述動態(tài)鏈接庫中獲取所述目標控件的位置信息。
6. -種自定義控件獲取裝置,其特征在于,用于用戶界面自動化測試,其中,所述自定 義控件獲取裝置包括: 第一獲取單元,用于獲取目標控件的查詢條件,其中,所述目標控件為待獲取的自定義 控件,所述查詢條件為用于查詢所述目標控件的條件; 第二獲取單元,用于獲取所述目標控件所在的父窗口; 查詢單元,用于通過遍歷所述父窗口的子控件來查詢滿足所述查詢條件的控件,將滿 足所述查詢條件的控件作為所述目標控件; 第H獲取單元,用于在查詢到所述目標控件之后,獲取所述目標控件的位置屬性,其 中,所述位置屬性為用于表示所述目標控件位置的屬性;W及 第四獲取單元,用于通過所述目標控件的位置屬性獲取所述目標控件的位置信息。
7. 根據(jù)權(quán)利要求6所述的自定義控件獲取裝置,其特征在于,所述查詢單元包括: 判斷模塊,用于判斷所述父窗口的子控件中是否存在容器型控件,所述容器型控件內(nèi) 包含有多個控件;W及 查詢模塊,用于如果判斷出所述父窗口的子控件中存在所述容器型控件,則通過遍歷 所述父窗口的子控件和所述容器型控件中的多個控件來查詢滿足所述查詢條件的控件。
8. 根據(jù)權(quán)利要求6所述的自定義控件獲取裝置,其特征在于,所述查詢條件包括W下 至少之一;所述目標控件的名稱、所述目標控件的控件類型、所述目標控件的Text屬性,所 述查詢單元包括: 第一調(diào)用模塊,用于調(diào)用所述父窗口的子控件的名稱、控件類型和Text屬性; 比對模塊,用于將所述目標控件的名稱、所述目標控件的控件類型和所述目標控件的 Text屬性分別與調(diào)用的所述父窗口的子控件的名稱、控件類型和Text屬性進行比對;W及 確定模塊,用于如果所述父窗口的子控件的名稱與所述目標控件的名稱一致和/或所 述父窗口的子控件的控件類型與所述目標控件的控件類型一致和/或所述父窗口的子控 件的Text屬性與所述目標控件的Text屬性一致,則確定所述父窗口的子控件為所述目標 控件。
9. 根據(jù)權(quán)利要求6所述的自定義控件獲取裝置,其特征在于,所述第四獲取單元包括: 第二調(diào)用模塊,用于使用所述目標控件定義的類調(diào)用所述目標控件內(nèi)部的接口; W及 獲取模塊,用于通過調(diào)用的所述目標控件內(nèi)部的接口獲取所述目標控件的位置信息。
10. 根據(jù)權(quán)利要求6所述的自定義控件獲取裝置,其特征在于,所述自定義控件獲取裝 置還包括: 第五獲取單元,用于在獲取目標控件的查詢條件之前,獲取所述目標控件的動態(tài)鏈接 庫,其中,所述動態(tài)鏈接庫為記錄有所述目標控件的位置信息的文件; 引用單元,用于將所述動態(tài)鏈接庫引用到所述用戶界面自動化測試工程, 其中,所述第四獲取單元還用于通過所述目標控件的位置屬性從引用的所述動態(tài)鏈接 庫中獲取所述目標控件的位置信息。
【文檔編號】G06F11/36GK104461892SQ201410779387
【公開日】2015年3月25日 申請日期:2014年12月15日 優(yōu)先權(quán)日:2014年12月15日
【發(fā)明者】宋蘭 申請人:北京國雙科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
修文县| 大连市| 阿拉尔市| 保康县| 晋城| 岗巴县| 岳普湖县| 苍溪县| 湘潭县| 澄江县| 宁国市| 荔浦县| 新蔡县| 麻栗坡县| 泽州县| 赣榆县| 榕江县| 雅安市| 河源市| 台东县| 蓝田县| 赫章县| 叶城县| 汝南县| 包头市| 故城县| 元谋县| 广昌县| 浪卡子县| 曲沃县| 邯郸市| 中山市| 甘肃省| 汪清县| 淮滨县| 西吉县| 蓬安县| 新疆| 鱼台县| 桐乡市| 无极县|