tmdbt100200 发表于 2012-12-14 11:22:20

高手进!WebElement问题

http://bbs.51testing.com/post.php?action=newthread&;fid=69&extra=(论坛发帖页面)
先是一个link,点击之后才会出现WebElement
代码如何写才能把WebElement里面的值一个个的用msgbox显示出来,求教?

泰然 发表于 2012-12-14 15:17:01

对web系统做QTP测试,需要懂不少web的开发。比如,这里你要先通过分析它的源代码,知道这里是通过select的click来显示一个div,然后选择一个link后将link内容回写到select中来。

然后你通过查看元素工具找到这个div。“<div id='typeid_ctrl_menu' ...>”,发现这个div里还有<ul><li>的标签。那么你的问题就成了如何读出这些li中内容的问题。脚本如下:

set oliList = Browser("Browser").Page(" - 51Testing软件测").Object.getElementById("typeid_ctrl_menu").ChildNodes.ChildNodes
For i = 0 to oliList.length - 1
        print oliList(i).innertext
Next

泰然 发表于 2012-12-14 15:25:21

很多时候QTP自身的ChildObjects方法在web系统中不太好用,更多的是用.object.getElement系列的方法来获得对象,包括了getElementById, getElementsByTagName, getElementsByName,获得到指定对象后,如果内部还有节点的层级关系,就用ChildNodes方法来进入下一层。我这里用了2次,先进入<ul>这层,然后进入<li>这层。

我这里用到是chrome自带的审查元素工具。

黑羽祭 发表于 2012-12-14 16:00:24

回复 1# tmdbt100200


    哈哈~这样算不算作弊啊~嘿嘿~Dim arrList
arrList = Browser(" - 51Testing软件测").Page(" - 51Testing软件测").WebElement("html id:=typeid_ctrl_menu").GetROProperty("innerHTML")
arrList = Replace(arrList,"<UL>","")
arrList = Replace(arrList,"</UL>","")
arrList = Replace(arrList,"</LI>","")
arrList = split(arrList,"<LI",-1,1)

For i = 0 to ubound(arrList)
      arrList(i) = mid(arrList(i),instr(1,arrList(i),">")+1)
      print "arrList(" & i & ") = " & arrList(i)
Next

黑羽祭 发表于 2012-12-14 16:00:55

回复 3# 泰然


    学习了~

赵佳乐SMILE 发表于 2012-12-14 17:59:41

高手真多 不光授之以鱼还授之以渔 学习啦

tmdbt100200 发表于 2012-12-14 18:39:58

很多时候QTP自身的ChildObjects方法在web系统中不太好用,更多的是用.object.getElement系列的方法来获得对 ...
泰然 发表于 2012-12-14 15:25 http://bbs.51testing.com/images/common/back.gif


    没想到还能这么做,真是大开眼界啊!服了

tmdbt100200 发表于 2012-12-14 18:45:52

回复 4# 黑羽祭


    谢谢版主啊,居然有那么多的办法,学习了
页: [1]
查看完整版本: 高手进!WebElement问题