日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
VisualStudio2010操作對象的識別原理

在UI操作中,操作動作總是離不開具體的操作對象,例如點擊,拖動,填寫值等操作,總是要對文本框,或者按鈕,窗體這些對象進行操作,不是憑空生成的。本章作為入門篇的***一章,將會說明編碼的UI測試是如何識別這些對象的,并介紹UIMap.UItest文件是如何生成對象識別代碼。

創(chuàng)新互聯(lián)建站專注于秀山土家族苗族企業(yè)網站建設,自適應網站建設,成都做商城網站。秀山土家族苗族網站建設公司,為秀山土家族苗族等地區(qū)提供建站服務。全流程專業(yè)公司,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務

對象的識別原理

之前我們錄制的時候,錄制生成器解析了我們的操作對象,并且為我們生成了對象識別代碼(也就是UIMap.UItest下節(jié)點的那部分),以便我們在回放的時候,能夠識別到我們要操作的是哪一個對象

在編碼的UI測試中,對象的識別主要是同時按以下三個方面進行

1. 按對象類別:對象屬于什么類別,例如是button還是textBox

2. 按關鍵標識屬性:能唯一識別該對象的屬性

3. 按層級關系:對象在其父對象中的層次

下面開始進行詳細介紹:

一.按對象類別: 

為便于理解,以web程序為例,假設我們的識別代碼中,寫明讓VS2010按WebButton識別一個對象,那么VS2010則會在頁面源碼中只找到那些html標簽是的控件,如果識別代碼中描寫的是按WebLink識別對象,則VS2010只在頁面源碼中找到那些是的標簽。

二.按關鍵標識屬性:

通過對象類別,已經能識別出來某一類的對象,在這個基礎上,接下來就需要用關鍵識別屬性進行精準標識了,我們需要找出能唯一識別該對象的屬性,假如一個窗體如下

這個窗體中包含了3個button,我們想讓VS2010操作到***個Button,如何區(qū)分這些Button呢?這就要用到關鍵標識屬性來標識唯一一個對象

關鍵標識屬性分為兩種----自身標識屬性和輔助標識屬性。

1.自身標識屬性:

也就是屬于對象的屬性,例如,button擁有Name,Text,Enable,BackColor等屬性,我們假設上面那個窗體的Button的各個屬性如下

很明顯可以發(fā)現(xiàn),***個button的Name屬性和和其他的button不一樣,那么可以用其作為他的關鍵標識屬性,并且寫在識別代碼中,這樣vs2010就可以在這些button中能唯一識別他,例如,將Name=button2寫到識別代碼中,就可以唯一識別第二個Button

假設3個button的Name一樣,而BackColor不同,也可以用BackColor作為關鍵標識屬性。

2.輔助標識屬性:

在自動化測試中,還有一種屬性叫做輔助標識屬性,他并不屬于對象的屬性,但可以輔助標識對象

假設剛才那個窗體的各button屬性如下:

可以發(fā)現(xiàn)他們的自身屬性都是一模一樣的,那么怎么做才能讓VS2010識別他呢?仔細觀察可以發(fā)現(xiàn)這樣一個情況

我們可以通過該對象是第幾個對象這樣的輔助屬性進行標識他

比如如果要識別第3個Button,則需要在識別代碼中設置其輔助標識屬性“對象序號”為3

三.按層級關系:

雖然上面確定了唯一對象,的確已經可以標識出對象了,不過實際上在識別的時候還會按層級關系查找,例如***章提到的一個簡單的窗體

我們用錄制生成器解析他的***個文本框Tbx_uid,在自動生成的識別代碼中,他們的層級關系是這樣的

對應到剛才的Form,層級為:

VS2010在識別這個Textbox1的時候,會只識別屬于 系統(tǒng)登錄Window下的Tbx_uidWindow下的Tbx_uid文本框

(注:按照常規(guī)的理解,其實應該“系統(tǒng)登錄窗體”和“Tbx_uid文本框”只有兩個層級,也就是窗體下直接就是文本框,但是VS2010默認解析的時候,會把一個TextBox解析成兩個層級,分為TextBoxWindow和TextBoxEdit,結果本來應該總共只有兩級結果搞成了三級,如果仔細觀察可以發(fā)現(xiàn)其他控件也是這樣的,所以在這里糾結的朋友希望你們看到此段后能夠減輕些疑惑...)

UIMap.UItest文件控制識別代碼的生成

在第二章上部分已經提到,在UIMap.uitest文件中,對象的識別代碼的生成部分是放在節(jié)點下的,點擊生成代碼后,會將其真正起作用的識別代碼生成到UIMap.designer.cs下,那么他們的代碼究竟是怎樣的呢?

以剛才那個窗體生成的代碼為例,我們要識別TextBox1,如果使用錄制生成器,把TextBox1填入到對象庫,我們來看看他生成的識別代碼(可以簡略看,下面會有說明)

別看UIMap.uitest里為這些對象生成的了一大堆代碼,其實對象中真正管作用的屬性就ControlType,ID兩個:

而管作用的節(jié)點也就這么兩個:

這個節(jié)點表示識別條件,他的子節(jié)點為,表示具體識別條件,識別原理之二的關鍵標識屬性就用這個表示

這個節(jié)點用于存放這個對象的子對象,識別原理之三的層級關系就是用這個表示

現(xiàn)在把上面自動生成的代碼優(yōu)化一下,把不必要的代碼刪除,并加上注釋。然后再使用這段XML代碼在錄制生成器生成UIMap.designer.cs代碼

 
 
 
 
  1.  
  2.     
  3.       
  4.         
  5.         
  6.           
  7.          MSAA 
  8.           
  9.             
  10.           系統(tǒng)登錄 
  11.            
  12.           WindowsForms10.Window 
  13.          
  14.          
  15.          
  16.            
  17.            
  18.             MSAA 
  19.              
  20.                
  21.               Tbx_uid 
  22.              
  23.             
  24.              
  25.             
  26.                
  27.                MSAA 
  28.                 
  29.