淘宝测试自动化测试框架,个人觉得还不错,建议下载,觉得不好的勿喷,只是技术分享22示例代码参见http://www.github.com/automan下automan-client包的example文件夹3 PageModelPage Model是我们 Auto man的三大组件之一,用于将页面元素结构化的抽离出来,进行统一的页面对象库管玨,它的最大优势是灵活应对页面变化。QTP也有自凵的对象库,但是它的对象厍是在客户端的、并且是平铺式冇放管理页面上控件。与QTP不同, PageModel主要有三方面的优势:首先,允许用户根据使用的需要将页面控件有组织的、有结构的进行管理,方便对臾面控件的组织;其次,允许用户在还不确定页面控件只体属性的时候,先在对象库创建控件结构,方便用户在项目中开发未提供具体页面时候就可以开始编写代码,提高效率;最后,采用web化的方式进行管理,实现对象库控件的共亨,适合企业级的应用。这里主要给大家介绍:用于查找和定位控件的 Selector;页面 PageModel的两种组织方式 element和 submodel;及对象控件的数组模式处理 collection3. 1 Selectorselector是用于査找、定位控件的査找器。支持 JQuery语法。表3-1罗列了目前支持的所有 JQuery方法。表3-1 Selector JQuery语法表Selector解释示例#id用表示目标元< nPuT id=on1 onclick= =change stuffstatu5)vaue=5素的|dtype=rad查找 selector="#on1class目标元素的das, INPUT id= TPL password class=login-text tablndex=2用“"表示value="type=password name=TPL_password>当cass或d里面查找 selector=" login-text”(只是个例了,当然这里也包含当属性里出可以用d来找的)现#,+*S[()=>查找 selector=" red\\ login”/|或空格时,应该加转义字符\element目标元素的tag名< I FRAME style= PADDING-BOTTOM:opX; PADDING-LEFT称,不区分大小写0 X: WIDTH628x;PADD| NG-RIGHT:0px: HEIGHT(一般不单独使350px; PADDING-TOP:0px"id=_ editor class=rtb用)marginHeight=l frame Border=1margin Width =1>查找 selector=" Iframe"或见下面的多重条件多重条件目标元素应当同< FRAME style="PADD| NG-BOTTOM:0pX;PADD| NG-LEFT时满足多个查询0 X: WIDTH:628X;PADD| NG-RIGHT: OpX; HEIGHT:条件350px; PADDING-TOP: Opx id= editor class=rtbmarginHeight=1 frame Border =1marginWidth=1>查找 selector=" iframe井 editor rtb”或selector=" iframe . rtb#_ editor”也可以少写点条件的,能唯一确定了就好了,如 selector=”# editorparent>child目标元素是一个日hlil="1ogo"容易确定的元素B-ahref=http://www.taoba查找 selector=”"#logo>aancestor目标元素是另descendant个容易确定的元ul class=“tabs"id=“ T Logintab分口ic1ass=“ tab standar d素的后代(子孙),白…< dir class-"bo由< span c1ass="rc-t使用空格F- p. register-btn img"eqo目标元素不能唯口·( class="1ogim- notlce确定时,可以指由Kahrefhttp:servic白taobao定是第几个。从0C-ahref=http://servicetaobaocg开中i上①i+找第一个下的第二个a,使用査找selector=.login- notice>li: eqo)>a: eq(1)可代表任意tag不经常使用比1 Tr class= box dynamI C-mode⊥0g1I-bzsE.ul class="tabs" id="] LoginTabs">11s三“b三tA,田19 ecure mode selected找u下的两个使用查找 selector=“# Login Tabs>*”,这时u下所有的儿子都会返回。当然,也可以用 selector=“ Login Tabs>i"。多个元素的返回,参见 Collection填写说明name=auel目标元素不能唯< INPUT name= names value=5一确定时,可用他查找 selector=" nput[name= names\\n\]的属性做过滤当属性里出现#:&,+*~:"!^S[]()=>/|或空格时,该加转义宁符\级匹配所有跟在abel后面的/fieldsinput name="none"/使用:结果:[< nput name="name"/>,< cinputname="newsletter"/找到所有与表单同辈的 input元|Name:素iput使用:" form input"结果:[< input name="none"/基本:你可以指定任惹< div>div
p class=" my Class"/p>匹配到的元素合 span并到一个结果内。< p class=" notmy Class >p class=" notMy Class"
dv/div>,< p class=" my Class'">pclass="my Class",
span属性:name存在这个属性如 input[id]返冋所有存在id的 Input元素name^=va|ue]属性要以vaue开始name=value]|属性不为vauename= Fvalue]属性为 value,如nput[name=qnameS=vae属性以vue结尾name=valu属性包含vae过滤st获取匹配的第
个元素,相当li>list item 1list item 2list item 3list item 4list item 5 list item1]last获取匹配的最后list item 2s/li>list item 3: li list item 4使用:“i:as结果:[< i>list item5]查找所有不包含 id 使用:" input:not([id])结果:[< input name=" apple"/>]even查找表格的索引|Header 1 | Value 1 |
td> Value 2s/tr>/table使用EH*:[tr>Header 1 | , value2 |
odd查找表格的索引Header 1 | Value 1 |
Value 2 |
/tabl使用:"tr:odd"结果:[Vaue1 |
]gt查找第二第三行, Header1/trt r> value 2 | s/tiValue 1 | , Value/d> |
]查找第一第二行,|tae即索引值是0和 Header1 Value1 |
ctr>value 2 | s/tr使用:“t:t(2)Ei: Header 1 |
, value1 |
]contains建设中…没有< divsJohn resig George Martin Malcom John sinclair