




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
QTP11使用DOM XPath以及CSS识别元素对象我们知道,像DOM,Html,CSS,XPath等对对象的识别策略广泛运用于一些开源的工具,例如:Selenium,Watir,Watir-Webdriver,以前qtp版本是不支持这些东西的,现在qtp11对这些已经支持了,下面我们就看看这些特性:Document Object Model(DOM):这东西干嘛的 ,百度之。像下面的这些方法能应用在qtp中:方法描述getElementById使用已知的元素id,返回第一个页面元素getElementsByName返回具有指定名称的一个JavaScript数组中的所有元素getElementsByTagName返回与指定的标记名的JavaScript数组的所有元素在qtp里调用JavaScript 方法:Object.RunScript(script)例如:Browser(title:=百度一下,你就知道).Page(title:=百度一下,你就知道).RunScript (alert(hello);)Using HTML DOM Methods & Properties in QTP:要访问HTML DOM方法,我们需要使用的文档对象,我们可以使用getElementById这个方法,用他的id来获取页面元素。例如:Set kws=Browser(title:=百度一下,你就知道).Page(title:=百度一下,你就知道).RunScript (document.getElementById(kw);)kws.value =百度一下Set us=Browser(title:=百度一下,你就知道).Page(title:=百度一下,你就知道).RunScript (document.getElementById(su);)us.click但是我们对于一些页面没有定义id的但是定义了名称,我们就可以使用getElementsByName这个方法来解决,例如:Set kws=Browser(title:=百度一下,你就知道).Page(title:=百度一下,你就知道).RunScript (document.getElementsByName(wd)(0);)kws.value =百度一下而这里使用getElementsByName注意需要索引值,因为他是返回一个JavaScript数组。如果使用getElementsByTagName,我们就不需要name或者id了。例如:Set kws=Browser(title:=百度一下,你就知道).Page(title:=百度一下,你就知道).RunScript (document.getElementsByTagName(input)(0);)kws.value =百度一下这里不好的地方就是,当有多个的时候,它的index属性无法直接写出并且当index改变了,脚本也要改变。通常情况下,我们都是使用组合键来识别相应的元素对象,例如:set wd=Browser(name:=.* - 六间房秀场.*).Page(title:=.* - 六间房秀场.*).RunScript (document.getElementById(chatForm).getElementsByTagName(input)(2) ;)wd.value =testing与此同时,我们也可以使用元素之间的关系来识别一些元素,例如:document.getElementById(XXX).firstChild通过使用getElementById返回第一个子元素document.getElementById(XXX).lastChild通过使用getElementById返回最后一个子元素document.getElementById(XXX).parentNode通过使用getElementById返回父节点document.getElementById(XXX). nextSibling通过使用getElementById返回下一个兄弟元素document.getElementById(XXX). previousSibling通过使用getElementById返回前一个兄弟元素使用XPath:在QTP11中,XPath是另一种重要的识别元素的方式,当然它也像其它工具一样被广泛的应用于开源工具中,下面就介绍下载qtp11中改方式的特性。XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。(详细的介绍看这里:)QTP提供了两种使用XPath的方式,一种是在tools-optionsWebadvanced中;另一种就是你自己通过编程使用XPath的方法和属性。这里主要介绍第二种:下面就看一个采用描述性编程来使用XPath的方法的例子:Browser(name:=百度一下,你就知道).Page(title:=百度一下,你就知道).WebEdit(xpath:=/input).Set testing在这个例子中,我们使用的是/input,”/”在xpath中表示贪婪查询,他会变量html中所有的元素,直到找到为止。同时如果我们知道元素的确定位置,我们也可以利用绝对路径来定位,如:Browser(name:=百度一下,你就知道).Page(title:=百度一下,你就知道).WebEdit(xpath:=/html/body/div2/div/form/input).Set testing这里比较麻烦的是,这个绝对路径,我们可以通过火狐来查看同时采用这个定位是非常快的,不过元素如果改变了,就悲催了,未完待续下面来介绍,在xpath中使用元素属性来定位元素:常用的元素属性有,ID,name,index,value,type 等,在xpath中,我们可以这样使用:Xpath:=/elementattribute= attribute value例如:Browser(name:=百度一下,你就知道).Page(title:=百度一下,你就知道).WebEdit(xpath:=/inputid=kw).set testing当然,我们也可以使用多个属性来定位元素,如:Xpath:=/elementattribute= attribute value and attribute= attribute value Browser(name:=百度一下,你就知道).Page(title:=百度一下,你就知道).WebEdit(xpath:=/inputid=kw and type=text ).set testing在一些使用AJAX构建的网站,通常他们的元素属性是动态的,例如ids,name,他们随着网页动态加载变化而变化,此时我们可以使用部分匹配的原则来定位这些元素。在xpath中,提供了一些常见的函数,例如:cotains(),start-with(),end-with(),语法如下:/elementstart-with(attribute,attribute partial value)/ elementend-with(attribute,attribute partial value)/elementcotains(attribute,attribute partial value)例如下面的例子:我们可以这样定位元素:Browser(name:=XXX).Page(title:=XXX).WebEdit(xpath:=/divid= login_area /inputstart-with(id,text_) ).set testing同理,其它方法也是这样用。在这里有一种方法,直接使用text()来定位元素,这个是很方便的。语法如下:/elementtext()=inner text例如:Browser(name:=百度一下,你就知道).Page(title:=百度一下,你就知道).link(xpath:=/atext()=注册).Click当然我们也可以结合contains(),start-with()来使用。语法如下:/elementcontains(text(),inner text)例如:ss=Browser(name:=百度一下,你就知道).Page(title:=百度一下,你就知道).link(xpath:=/acontains(text(),注).GetROProperty(name)msgbox ss ss=注册在qtp11中还介绍了关于xpath轴的知识,这部分没找到相关例子,就不介绍了,感兴趣的去看下w3school上关于xpath轴的介绍。CSS在QTP11中使用:QTP11中也增加了CSS来识别页面对象属性,关于css的介绍以及使用可以看w3school。在qtp11中使用css的语法如下:Css:=Element.class_attribute例如:Browser(name:=百度一下,你就知道).Page(title:=百度一下,你就知道).WebEdit(css:=input.s_ipt ).set testing在dom,xpath中均能使用id,在css中也可以使用id。在css中使用id的语法如下:Css:=element#id例如:Browser(name:=百度一下,你就知道).Page(title:=百度一下,你就知道).WebEdit(css:=input#kw ).set testing当然,在css中我们也可以使用元素的属性来识别页面对象,其语法如下:Css:=elementattribute=value例如:Browser(name:=百度一下,你就知道).Page(title:=百度一下,你就知道).WebEdit(css:=inputname=wd ).set testing另外,css中也提供了类似xpath中的部分识别属性的方法,具体方法如下:OperatorDescription=attribute_value找到以给定的属性值的开始的元素,这个和xpath中的 starts-with()函数相似。*= attribute_value找到包含给定属性值的元素. 这个和xpath中的 contains()函数相似。$= attribute_value找到以给定的属性值的结束的元素. 这个和xpath中的 ends-with()函数相似。例如:Browser(title:=XXX).Page(title:=xxx).WebEdit(“css:=div#login_area inputname=text_”).set “t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川武胜县2018高考历史(下期)选练题(35)及答案
- 污水处理厂设施升级与维护方案
- 铝灰渣处理设备运行管理方案
- 二零二五年度脚手架安全检查与评估合同
- 2025版高校实习生实习就业实习实训基地项目规划与实施服务合同
- 二零二五年度房地产项目物业经营管理合同
- 2025版驾驶员安全教育与风险管理合同
- 台球俱乐部会员退会办理规章
- 二零二五版房地产测绘与不动产登记信息化服务合同
- 2025版生态农业劳务安全分包管理协议范本
- 通用技术作品设计报告
- JJF 1847-2020 电子天平校准规范-(高清现行)
- 人工智能遥感解译介绍课件
- 大信审计执业问题解答-存货监盘审计指引
- 锚杆支护技术规范正式版本
- 婚育情况证明
- 下一代互联网技术
- 皮肤知识与问题性皮肤分析(入行必看)
- 单位消防安全评估报告(模板)
- 江西之江化工“7.2”压力容器爆炸事故
- 岩土工程勘察 第七章 静力触探试验ppt课件
评论
0/150
提交评论