一種確定手機(jī)頁面上特定控件屬性的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動(dòng)終端技術(shù)領(lǐng)域,尤其涉及一種確定手機(jī)頁面上特定控件屬性的方法,特別涉及通過手機(jī)畫面截圖坐標(biāo)和控件序列來確定手機(jī)頁面上特定控件屬性的方法,用于智能手機(jī)的自動(dòng)化測試。
【背景技術(shù)】
[0002]在對(duì)智能手機(jī)進(jìn)行自動(dòng)化測試的過程中,需要錄制執(zhí)行腳本。在錄制執(zhí)行腳本時(shí),采用以下兩種方法對(duì)手機(jī)界面上的控件進(jìn)行操作:
[0003]第一、測試人員獲取當(dāng)前手機(jī)界面截圖后,再在當(dāng)前手機(jī)界面截圖上點(diǎn)擊要操作的控件對(duì)應(yīng)的控件圖案,由計(jì)算機(jī)程序獲得點(diǎn)擊坐標(biāo),再通過相應(yīng)的命令(例如adb命令)讓手機(jī)點(diǎn)擊該坐標(biāo)。
[0004]這種方法雖然可以讓手機(jī)出現(xiàn)點(diǎn)擊動(dòng)作,但是無法得到被點(diǎn)擊的控件的屬性,從而無法判斷點(diǎn)擊效果。并且,這種方法的通用性較差。
[0005]第二種、測試人員獲取當(dāng)前手機(jī)界面截圖以及卸出的當(dāng)前手機(jī)界面所對(duì)應(yīng)的界面布局文件后,再在當(dāng)前手機(jī)界面截圖上點(diǎn)擊要操作的控件對(duì)應(yīng)的控件圖案,由計(jì)算機(jī)程序獲得文本信息,將文本信息與界面布局文件中各文本信息段內(nèi)的內(nèi)容相比較,從而獲得控件圖案對(duì)應(yīng)的控件。
[0006]這種方法在實(shí)際應(yīng)用中有諸多限制,例如:若控件沒有文本信息,則無法確定對(duì)應(yīng)的控件;若當(dāng)前手機(jī)界面上的多個(gè)控件具有相同的文本信息時(shí),則在確定對(duì)應(yīng)的控件時(shí)會(huì)發(fā)生誤判。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的是提供一種確定手機(jī)頁面上特定控件屬性的方法,尤其涉及過手機(jī)畫面截圖坐標(biāo)和控件序列來確定手機(jī)頁面上特定控件屬性的方法
[0008]為了達(dá)到上述目的,本發(fā)明的技術(shù)方案是提供了一種確定手機(jī)頁面上特定控件屬性的方法,包括以下步驟:
[0009]步驟1、獲得當(dāng)前手機(jī)界面的截圖以及與卸出的與當(dāng)前手機(jī)界面相對(duì)應(yīng)的界面布局文件,在界面布局文件中,當(dāng)前手機(jī)界面上的每一個(gè)控件被定義為一個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)至少包含記錄當(dāng)前節(jié)點(diǎn)坐標(biāo)范圍的邊界信息;
[0010]步驟2、在截圖上點(diǎn)擊要操作的控件對(duì)應(yīng)的控件圖案;
[0011]其特征在于,還包括:
[0012]步驟3、獲取步驟2中點(diǎn)擊處的位置坐標(biāo),根據(jù)界面布局文件中各節(jié)點(diǎn)的邊界信息,確定該位置坐標(biāo)對(duì)應(yīng)的節(jié)點(diǎn);
[0013]步驟4、根據(jù)上一步得到的結(jié)果對(duì)控件圖案對(duì)應(yīng)的控件進(jìn)行相應(yīng)的操作。
[0014]優(yōu)選地,其特征在于:
[0015]在所述步驟1中,所述節(jié)點(diǎn)還包含記錄當(dāng)前節(jié)點(diǎn)類型的類型信息;
[0016]在所述步驟3之后,并所述步驟4之前,還包括:
[0017]步驟A、得到所述步驟3中確定的節(jié)點(diǎn)的類型信息;
[0018]步驟B、遍歷界面布局文件中所有節(jié)點(diǎn)的類型信息,將其與步驟A得到的類型信息相比較,從而得到序列值。
[0019]優(yōu)選地,步驟4中所述相應(yīng)的操作包括:根據(jù)所述步驟A得到的類型信息以及所述步驟B得到的序列值,獲得步驟2中所點(diǎn)擊的控件圖案所對(duì)應(yīng)控件的控件屬性和/或根據(jù)所述步驟A得到的類型信息以及所述步驟B得到的序列值,操作步驟2中所點(diǎn)擊的控件圖案所對(duì)應(yīng)的控件。
[0020]優(yōu)選地,所述步驟3包括:
[0021]步驟3.1、將界面布局文件中第一個(gè)節(jié)點(diǎn)設(shè)為當(dāng)前節(jié)點(diǎn);
[0022]步驟3.2、判斷步驟2中點(diǎn)擊處的位置坐標(biāo)所否落入當(dāng)前節(jié)點(diǎn)的邊界信息所記錄的坐標(biāo)范圍內(nèi),若是,當(dāng)前節(jié)點(diǎn)為與該位置坐標(biāo)對(duì)應(yīng)的節(jié)點(diǎn),記為控件節(jié)點(diǎn),進(jìn)入所述步驟4,若否,則進(jìn)入步驟3.3 ;
[0023]步驟3.3、將下一個(gè)節(jié)點(diǎn)設(shè)為當(dāng)前節(jié)點(diǎn),返回步驟3.2,直至遍歷界面布局文件中的所有節(jié)點(diǎn)。
[0024]優(yōu)選地,所述步驟B包括:
[0025]步驟B.1、將序列值初始化為a,a為不小于1的整數(shù),并將控件節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn)設(shè)為當(dāng)前節(jié)點(diǎn);
[0026]步驟B.2、將所述步驟A得到的類型信息與當(dāng)前節(jié)點(diǎn)的類型信息相比較,若相同,則將序列值遞增或遞減,進(jìn)入步驟B.3,若不同,則直接進(jìn)入步驟B.3 ;
[0027]步驟B.3、將當(dāng)前節(jié)點(diǎn)的上一個(gè)節(jié)點(diǎn)設(shè)為當(dāng)前節(jié)點(diǎn),返回步驟B.2,直至遍歷界面布局文件中的所有節(jié)點(diǎn),得到最終的序列值。
[0028]優(yōu)選地,在所述步驟B.2中,所述序列值遞增1,則所述步驟B.3中,得到的最終的序列值=序列值_a+l。
[0029]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0030]1、比起單純的發(fā)送坐標(biāo)指令,本發(fā)明實(shí)實(shí)在在取得了用戶點(diǎn)擊控件,這樣可以判斷執(zhí)行后狀態(tài),讀取屬性值,智能化大大提高;
[0031]2、比起通過單純的文本信息判斷,本發(fā)明杜絕因沒有文本信息而無法確定控件的問題,更進(jìn)一步,通過確定序列而可以杜絕因文本信息相同引起的誤判現(xiàn)象。
【附圖說明】
[0032]圖1為本發(fā)明提供的一種通過手機(jī)畫面截圖坐標(biāo)和控件序列來確定手機(jī)頁面上特定控件屬性的方法的流程圖。
【具體實(shí)施方式】
[0033]為使本發(fā)明更明顯易懂,茲以優(yōu)選實(shí)施例,并配合附圖作詳細(xì)說明如下。
[0034]如圖1所示,本發(fā)明提供了一種通過手機(jī)畫面截圖坐標(biāo)和控件序列來確定手機(jī)頁面上特定控件屬性的方法,其步驟為:
[0035]步驟1、獲得當(dāng)前手機(jī)界面的截圖以及與卸出的與當(dāng)前手機(jī)界面相對(duì)應(yīng)的界面布局文件。
[0036]對(duì)于運(yùn)行Android系統(tǒng)的智能手機(jī)而言,其界面布局文件通常為XML格式。在界面布局文件中,其所對(duì)應(yīng)的手機(jī)界面的上的各個(gè)控件以節(jié)點(diǎn)表示,每個(gè)節(jié)點(diǎn)至少包含以下信息:
[0037]邊界信息,記錄節(jié)點(diǎn)所對(duì)應(yīng)的控件的上、下、左、右邊界的坐標(biāo)范圍,在Android系統(tǒng)的界面布局文件中為node bounds屬性值;
[0038]類型信息,記錄節(jié)點(diǎn)所對(duì)應(yīng)控件的類型,在Android系統(tǒng)的界面布局文件中為class屬性值。對(duì)于不同的節(jié)點(diǎn)而言,其類型信息,即cla