QTP11使用DOM-XPath以和CSS识别元素对象

上传人:碎****木 文档编号:220862498 上传时间:2021-12-09 格式:DOCX 页数:6 大小:82.30KB
返回 下载 相关 举报
QTP11使用DOM-XPath以和CSS识别元素对象_第1页
第1页 / 共6页
QTP11使用DOM-XPath以和CSS识别元素对象_第2页
第2页 / 共6页
QTP11使用DOM-XPath以和CSS识别元素对象_第3页
第3页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《QTP11使用DOM-XPath以和CSS识别元素对象》由会员分享,可在线阅读,更多相关《QTP11使用DOM-XPath以和CSS识别元素对象(6页珍藏版)》请在金锄头文库上搜索。

1、QTP11 使用 DOM XPath 以及 CSS 识别元素对象我们知道,像 DOM,Html,CSS,XPath 等对对象的识别策略广泛运用于一些开源的工具,例如:Selenium,Watir,Watir-Webdriver,以前 qtp 版本是不支持这些东西的,现在 qtp11 对这些已经支持了,下面我们就看看这些特性:Document Object ModelDOM:这东西干嘛的 ,百度之。像下面的这些方法能使用在 qtp 中:方法getElementById getElementsByNamegetElementsByTagName描述使用的元素 id,返回第一个页面元素返回具有指定名

2、称的一个 JavaScript数组中的全部元素返回和指定的标记名的 JavaScript 数组的全部元素在 qtp 里调用 JavaScript 方法:Object.RunScript(script)例如:Browser(“title:=百度一下,你就知道“).Page(“title:=百度一下,你就知道“).RunScript (“alert(”hello”);“)Using HTML DOM Methods & Properties in QTP:要访问 HTML DOM 方法,我们需要使用的文档对象,我们可以使用getElementById 这个方法,用他的 id 来猎取页面元素。例如:

3、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 这个方法来解决,例如:S

4、et kws=Browser(“title:=百度一下,你就知道“).Page(“title:=百度一下, 你就知道“).RunScript (“document.getElementsByName(”wd”)(0);“)kws.value =“百度一下“而这里使用 getElementsByName 留意需要索引值,由于他是返回一个JavaScript 数组。假设使用 getElementsByTagName,我们就不需要 name 或者 id 了。例如:Set kws=Browser(“title:=百度一下,你就知道“).Page(“title:=百度一下, 你就知道“).RunScri

5、pt (“document.getElementsByTagName(”input”)(0);“)kws.value =“百度一下“这里不好的地方就是,当有多个的时候,它的 index 属性无法直接写出并且当 index 转变了,脚本也要转变。通常状况下,我们都是使用组合键来识别相应的元素对象,例如:set wd=Browser(“name:=.* - 六间房秀场.*“).Page(“title:=.* - 六间房秀场.*“).RunScript (“document.getElementById(”chatForm”).getElementsByTagName(”input”)(2) ;“)

6、wd.value =“testing“和此同时,我们也可以使用元素之间的关系来识别一些元素,例如:document.getElementById(XXX).firstChilddocument.getElementById(XXX).lastChilddocument.getElementById(XXX).parentNode document.getElementById(XXX).nextSiblingdocument.getElementById(XXX).previousSibling通过使用getElementById 返回第一个子元素通过使用getElementById 返回最终

7、一个子元素通过使用getElementById 返回父节点通过使用getElementById 返回下一个兄弟元素通过使用getElementById 返回前一个兄弟元素使用 XPath:在 QTP11 中,XPath 是另一种重要的识别元素的方式,固然它也像其它工具一样被广泛的使用于开源工具中,下面就介绍下载 qtp11 中改方式的特性。XPath 即为 XML 路径语言XML Path Language,它是一种用来确定 XML文档中某局部位置的语言。XPath 基于 XML 的树状构造,供给在数据构造树中找寻节点的力量。起初XPath 的提出的初衷是将其作为一个通用的、介于 XPoint

8、er 和 XSL 间的语法模型。但是 XPath 很快的被开发者承受来当作小型查询语言。具体的介绍看这里:QTP 供给了两种使用 XPath 的方式,一种是在tools-optionsWebadvanced 中;另一种就是你自己通过编程使用 XPath 的方法和属性。这里主要介绍其次种:下面就看一个承受描述性编程来使用 XPath 的方法的例子:Browser(“name:=百度一下,你就知道“).Page(“title:=百度一下,你就知道“).WebEdit(“xpath:=/input“).Set “testing“在这个例子中,我们使用的是/input,”/”在 xpath 中表示贪欲

9、查询, 他会变量 html 中全部的元素,直到找到为止。同时假设我们知道元素确实定位置,我们也可以利用确定路径来定位,如:Browser(“name:=百度一下,你就知道“).Page(“title:=百度一下,你就知道“).WebEdit(“xpath:=/html/body/div2/div/form/input“).Set “testing“这里比较麻烦的是,这个确定路径,我们可以通过火狐来查看同时承受这个定位是格外快的,不过元素假设转变了,就悲催了,未完待续下面来介绍,在 xpath 中使用元素属性来定位元素:常用的元素属性有,ID,name,index,value,type 等,在x

10、path 中,我们可以这样使用:Xpath:=/elementattribute= attribute value 例如:Browser(“name:=百度一下,你就知道“).Page(“title:=百度一下,你就知道“).WebEdit(“xpath:=/inputid=”kw”“).set “testing“固然,我们也可以使用多个属性来定位元素,如:Xpath:=/elementattribute= attribute valueand attribute= attribute value Browser(“name:=百度一下,你就知道“).Page(“title:=百度一下,你就知

11、道“).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,attribut

12、e 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(“na

13、me:=百度一下,你就知道“).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 中还介绍了关于

14、 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

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号