添加成功后返回列表,列表中有该添加内容的状态.......(需帮助)
本帖最后由 louqqson008 于 2012-9-4 11:14 编辑添加成功后返回列表,列表中有该添加内容的状态,每条添加的内容的“状态”对象属性都一样,对象是webelement
并且每条列表框对象也都是webelement
我现在是想:当添加成功后,根据添加时的随机数及状态,判断状态功能是否正常,
set rotext=Browser("调查问卷").Page("调查问卷").WebElement("进行中").GetROProperty("innertext")
我用上面这句来读取状态的“值”但一直报错。
/缺少对象: ''
Line (43): "set rotext=Browser("调查问卷").Page("调查问卷").WebElement("进行中").GetROProperty("innertext")". /
提示错误为这个。有点搞不懂了 添加完后,直接遍历所有的WebElement 对象,直到找出你加的那个就行了哇。。。 回复 2# joykao
如何找到是我最新添加的那个对象呢,因为状态这栏所有属性都一样的(除了位置)都一样,
Set rotext=Description.Create
rotext("html tag").value="EM"
Set rotexts=Browser("调查问卷").Page("调查问卷").ChildObjects(rotext)
rotext.Count=Browser("调查问卷").Page("调查问卷").ChildObjects("rotext count")
For i=0 to elstate.Count-1
Next
写到循环这这写不下去了,麻烦指导下 回复 3# louqqson008
根据你说的意思,随便猜一点啦,有问题自己调调
Set webElementobj=Description.Create()
webElementobj("micClass").value ="WebElement"
set webelements=Browser("micClass:=Browser").Page("micClass:=Page").ChildObjects(webElementobj)
numbers=webelements.count
'假设你加的东西叫EM
checkText="EM"
For i=0 to numbers-1
webElementcheck=Trim(Browser("micClass:=Browser").Page("micClass:=Page").WebElement("micClass:=WebElement","index:="&i).GetROProperty("html tag"))
If webElementcheck= checkText Then
reporter.ReportEvent micPass,"EM has been added","pass"
End If
Next 貌似不用这么烦哇,你加的那个东西有点特别的地方吧,比如 innertext,
Browser("micClass:=Browser").Page("micClass:=Page").WebElement("innertext:=EM").exist 就可以验证了吧?疯掉{:3_74:} 应该会存在比较特别的属性,建议楼主安装一个网页分析工具,QTP必备。我用的是debugBar,使用工具可以更清晰的看出某一块区的特别属性~ 回复 5# joykao
感谢的你回答,验证存在是可以验证,
是我说的不够清楚吧,不好意思啊
EM 是对象“状态”的html tag属性对应值
还有就是判断出innertext,但问题是有很多条内容时,会有很多重复的,
也就是说在列表中,每条内容的对象“状态”的属性值都一样,导致我无法读取到他。
现在也搞不明白为什么属性中不是某个值不是按0.1.2.3这样排下去的 回复 6# xjwldlover
谢谢,下载试试看 回复 6# xjwldlover
谢谢,下载了,可以找到这句Html和css,但不知道对象在哪里特殊属性 回复 7# louqqson008
其实还是没搞清楚你说的对象到底是个什么情况,好好研究哈。:lol 回复 10# joykao
呵呵,我也有点迷糊,所以有点表达不清
最上面的问题中图片能看到吗,图片中状态2字后面的“未开始”就是我说的对象“状态”,
下班了,可以的话,明天多截点图上来 楼主使用DebugBar查看两个记录的HTML标签内容完整贴出来,大家看看,要外层哦(就是你查看标签内容以后往当前节点向上多查一层)。 回复 12# xjwldlover
<ul class="clearfix">
<li class="lc over"><h1>QTP.Texting</h1>
<span>调查表地址:<a href="http://***/index/13.html>http://***</a></span>
状态:<em>未开始</em> 参与人数:0人 起止时间:2012-09-09至2012-10-01
</li>
</ul>
<ul class="clearfix">
<li class="lc over"><h1>奉化二日游</h1>
<span>调查表地址:<a href="http://***/index/1.html>http://***</a></span>
状态:<em>已结束</em> 参与人数:2人 起止时间:2012-07-26至2012-08-30
</li>
</ul>
这样看起来清楚点,
这几个都是在一个 <div>里面,感觉就只有span下的href尾数不一样,
你所说的特殊属性是指这个吗 这样就方便多了。
①既然是自动化,你在创建记录名称的时候肯定可以唯一命名<h1>QTP.Texting12321</h1>
②你要找的记录肯定存在于<li class="lc over">这个列表,你通过getElementsByTagName("li")可以找到所有的记录列表。
③然后你通过instr或者正则表达式,可以判断出哪个li中存在 QTP.Texting12321,找到这条记录。
④然后找到根据记录的OuterHtml可以搜索"<em>已结束</em>“标签的innerText,或者你写个截取函数也是可以的 本帖最后由 louqqson008 于 2012-9-5 14:01 编辑
回复 14# xjwldlover
谢谢,看了2遍有点理解了,你说的思路我能理解,但是如何实现就有点迷茫了,一直在写,没头绪,下面写的都是浮云....
但是 1.getElementsByTagName这个我F1了下,没有这个方法。不知道如何去实现。
ALL_li=Browser("调查问卷").Page("调查问卷").WebElement("调查问卷列表").getElementsByTagName("li")
ALL_liName=ALL_li.Name
liName=instr(1,ALL_liName,"QTP.Texting")不知道这样写哪里有错,
2.请教下,如何根据记录的OuterHtml进行搜索啊,如果记录是only_li.谢谢,这个不知道从那下手了 回复 15# louqqson008
1,getElementsByTagName是DOM方法,上网直接搜这个函数,或者去W3CSchool里看DOM相关的东西就OK了(Li缺了引号)
3.你可以通过instr(OUTERHTML,"<em>已结束</em>")来判断;
更好的方式是通过获第3步获得的obj.getElementsByTagName("em")再获取一次,取innerText
ps,话说细节性的东西你应该自己查文档哦~ 回复 16# xjwldlover
好的,谢谢了,学习学习.
页:
[1]