創(chuàng)新互聯(lián)公司專注于荔灣企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),購物商城網(wǎng)站建設(shè)。荔灣網(wǎng)站建設(shè)公司,為荔灣等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
資源推薦:
社區(qū)資源: 自動化測試交流群
Selenium UI-Element是關(guān)于selenium ide中可以將webpage中的元素抽象到對象中的特性,將頁面元素抽象到對象中,以方便多個腳本重復(fù)利用,并支持在selenese腳本中使用ui locator 方式定位頁面元素,它給ui定位器提供了可讀性較好的元素定位標(biāo)識符。
Page 指一個完整的頁面,或一個完整的DOM對象。
Page element 指頁面中任何可交互的頁面元素,可以是DOM的node,或者它所包含的文本內(nèi)容。
Pageset 公共頁面元素集合
UI element UI element屬于PageSet,用于定位頁面元素。
UI argument 通過參數(shù)重復(fù)使用UI element(參數(shù)化),UI element通過參數(shù)動態(tài)生成不同的元素定位方式。
UI map pageset的集合,通過 UIMap建立pageset, ui element之間的關(guān)系
UI specifier string 一個json代碼片段,用于說明解釋pageset,element.
<tr> <td>clickAndWait</td> <td>ui=allPages::section(section=topics)</td> <td></td> </tr> <tr> <td>clickAndWait</td> <td>ui=topicListingPages::topic(topic=Process)</td> <td></td> </tr>
clickAndWait的locator參數(shù)指定為ui定位器
ui=allPages::section(section=topics),采用這種面向?qū)ο蟮姆绞綄㈨撁嬖胤庋b到不同的pageset中可以提高很大的重復(fù)利用率,而且增加腳本的可讀性。
UI-Element目前已經(jīng)集成在selenium core中,我們使用UI-Element特性時,只需要使用UIMap類去定義map文件。
Map定義文件語法:
var map = new UIMap(); map.addPageset({ name: 'aPageset' , description: 'contains elements common to all pages' , pathRegexp: '.*' , ... }); map.addElement ('aPageset', {...}); map.addElement('aPageset', { ... }); ... map.addPageset({ name: 'anotherPageset' , ... }); ...
§ 首先定義一個UIMap實例,用于構(gòu)建pageset與ui element之間的關(guān)系;
§ 定義一個或多個pageset,使用json形式對pageset進行說明解釋,并使用UIMap#addPageset方法添加到UIMap實例中。
§ 每個pageset可以定義定義一個或多個element,并通過UIMap#addElement方法將定義的多個element一一綁定到相應(yīng)的pageset中。
通過UIMap#addPageset(pagesetShothand)方法可以向UIMap中添加pageset,pagesetShorthand是一個json形式描述pageset的對象,代碼示例:
map.addPageset({ name: 'allPages' , description: 'contains elements common to all pages' , pathRegexp: '.*' }); |
Name,pageset的名字,必填,在UIMap中需要保證該命名的唯一性。
Description,pageset的描述,必填,用于描述該pageset包含哪些頁面元素。
pathPrefix,
pageset所包含的web page路徑前綴,比如:pathPreffix: “gallery/”,表明該pageset包含gallery/路徑下所有子頁面資源。
Paths & pathRegexp
Paths 與pathRegexp二者選其一,Paths使用數(shù)組方式匹配pageset所包含的頁面路徑,比如paths: [ 'gotoHome.do' , 'gotoAbout.do' , 'gotoFaq.do']。
PathRegexp使用正則表達(dá)式方式匹配pageset所包含的頁面資源路徑,比如:pathRegexp: 'goto(Home|About|Faq)\\.do'
paramRegexps,定義通過url參數(shù)去匹配該pageset所覆蓋的頁面資源,比如:paramRegexps: { dept: '^[abcd]$', team: 'marketing' }.
pageContent, 通過判斷頁面內(nèi)容來匹配合適的pageset,比如:
pageContent: function(doc) { var id = 'address-tab'; return doc.getElementById(id) != null; }
PageContent中可以使用document對象獲取頁面內(nèi)容,包括dom節(jié)點和文本內(nèi)容等,通過對這些內(nèi)容的判斷以確定是否符合當(dāng)前pageset.
UIMap#addElement(pagesetName, uiElementShorthand), pagesetName是UI Element所要關(guān)聯(lián)的pageset名字,uiElementShorthand是一個json對象,用于描述UI Element, 如下是一個簡短的代碼示例:
map.addElement('allPages', { name: 'about_link' , description: 'link to the about page' , locator: "//a[contains(@href, 'about.php')]" }); |
如下列出了UI Element所有包含的屬性信息:
Name, (String) UI Element的名字,命名注意結(jié)合屬性意義來定義,達(dá)到見名知意的效果。
Description,(String) 對當(dāng)前UI Element的描述,同時也作為文檔顯示。
Args, (Array) 一組參數(shù),用于修改getLocator()方法實現(xiàn),默認(rèn)為空列表。
Locator & getLocator(args),(Stirng | Function) locator和getLocator選擇其一,用于生成定位頁面元素的表達(dá)式。
genericLocator & getGenericLocator(),(String | Function) 通用元素定位器,通過指定通用元素定位器可以很大程度上提高定位元素的效率,指定通用定位器后,匹配元素引擎會優(yōu)先使用該定位器,當(dāng)與該定位器匹配成功時,才會調(diào)用locator或getLocator定位器進一步定位。
testcase*,(Object) 定義一個用于測試getLocator的測試案例,命名須以testcase作為開頭。
Name, (String) 定義參數(shù)名字,參數(shù)名字用于向getLocator中傳入?yún)?shù)值。
Description,(String) 關(guān)于參數(shù)的描述。
DefaultValues & getDefaultValues(inDocument), (Array | Function) 用于指定參數(shù)默認(rèn)值,getDefaultValues須返回Array類型數(shù)據(jù)。
Newtours 網(wǎng)站地址:http://newtours.demoaut.com/
var myMap = new UIMap(); myMap.addPageset({ name: 'allPages' , description: 'all newtours.com pages' , pathRegexp: '.*' }); myMap.addElement('allPages', { name: 'registerEntry', description: 'top level text link to register page.', locator: "xpath=//a[@href='mercuryregister.php']", testcase1: { xhtml: '<h2><a href="mercuryregister.php" expected-result="1">register</a></h2>' } }); myMap.addPageset({ name: 'loginPages' , description: 'all login pages' , paths: ['mercuryregister.php'] }); myMap.addElement('loginPages', { name: 'email', description: 'email is used for the user login account.', args: [ {name: 'email',description: 'used for generate one sys account.', defaultValues: ['email', 'bbb', 'ccc'] } ], getLocator: function(args) { return 'name=' + args.email; }, testcase1: { args: {email: 'qqq'} , xhtml: '<h2 id="masthead"><input name="qqq" expected-result="1"></input></h2>' } }); |
網(wǎng)頁標(biāo)題:SeleniumIDE進階部分-UI-Element
網(wǎng)站路徑:http://bm7419.com/article14/jcigge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、品牌網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、品牌網(wǎng)站設(shè)計、網(wǎng)站內(nèi)鏈、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)