51Testing软件测试论坛

标题: 转贴一个外文论坛中的一个问题. 已有答案.先把问题提出.大家试试看如何做? [打印本页]

作者: henhenchen    时间: 2007-4-18 10:42
标题: 转贴一个外文论坛中的一个问题. 已有答案.先把问题提出.大家试试看如何做?
go to  http://www.liveitup.com/travel/search.air     当你选Round-Trip 时Return Date 这行出现. 这时If Browser("Find Flights, Vacation").Page("Find Flights, Vacation").WebEdit("date2").Exist Then  msgbox "Exist"  End If  显示"EXIT" 没问题.  当你选one-way 时Return Date 这行消失. 但你此时再用 If Browser("Find Flights, Vacation").Page("Find Flights, Vacation").WebEdit("date2").Exist Then  msgbox "Exist"  End If  仍然显示"EXIST". 奇怪.明明WEBEDIT("DATA2") 不存在了.为什么还显示存在?

问题:  对这个网页.用QTP 如何判断此时在这页面里Retrun Date 或 (webedit("date2")存在还还是不存在?
别人已讨论好了.我们也讨论讨论啊
作者: henhenchen    时间: 2007-4-18 11:51
标题: 怎么没人有兴趣试试啊
UP
作者: mstiunicon    时间: 2007-4-18 14:55
henhenchen兄说的网站打不开,不过我找了另外一个有类似功能的页面。
选择下拉框,随着下拉框的内容的变化,下面输入项也跟着一起变化。
仔细分析它的实现方式,是在那些需要变化显示的TR上增加了class这个属性,然后在JS中用样式来控制是否显示该行。
所以,去获取输入框的属性时,包括Exist,visible时,这个输入框的样式都是不变,变化的是该行所在的TR的样式
WebElement("html tag:=TR","id:=XXX").getROProperty("visible")

不知道是否与你说得页面的实现方式是一致的?

附件是我说的这个页面。
作者: henhenchen    时间: 2007-4-18 21:22
标题: 回 mstiunicon
对. 思路和你的一样. 你用. WebElement("html tag:=TR","id:=XXX").getROProperty("visible") 可以判断你的页面吗? 其中"id:=XXX" 这个ID 的值你从哪里得到.用SPY 吗? 还有你怎么能确定TR这个WEBELEMNET 有visible 这个属性. 都用SPY 就可以了吗? 我是新手.你能不能说的详细点.谢谢. 以下是他们的思路: 和我的理解:
1. 不管WEB是用什么写的(JAVA .NET ) 我们能看到的只是HTML 页面 .QTP 在运行时只读取HTML源码 .所以要是知道了HTML 的源文件.我们可以用过读相应的源码.就可以猜到QTP 是用什么来判断和运行的.  点右键在一个页面--VIEW SOURCE  得到SOURCE CODE.

2 象我这个例子要是判断此时在这页面里Retrun Date 或 (webedit("date2")存在还还是不存在? 第一眼我们肯定回用....EXIST() 来判断. 不过要是有问题.就要用你的思路了.

3.我用SPY 好象不能找到TR的属性和ID(你能说说看怎么用SPY.谢谢) .所以 1) 打开SOURCE CODE 2) 找到Retrun Date 所在CODE 中的位置. 发现他在一个TR 中.进尔找到这个TR的ID ="returnDateRow" 但你在这个TR 中,有关的STYLE/CLASS 并不是我们想要的(有时在这里你就能发现象VISIBLE 等我们象要的东西)  3) 再在CODE 中找"returnDateRow"
可以发现他出现在两个FUNCTION 中. 其中有这些 var returnDateRow = document.getElementById("returnDateRow");If (returnDateRow != null) {                        returnDateRow.style.visibility = "hidden";   var returnDateRow = document.getElementById("returnDateRow");if (returnDateRow != null) {                        returnDateRow.style.visibility = "visible";
哈哈. 这不是我们想要的吗.

4.所以 只要用.Browser("Find Flights, Vacation").Page("Find Flights, Vacation").object.getElementById("returnDateRow").style.visibility 就行了.

提出来看看大家有没有更好的思路. 谢谢[attach]23309[/attach]
作者: mstiunicon    时间: 2007-4-18 21:58
Browser("Find Flights, Vacation").Page("Find Flights, Vacation").object.getElementById("returnDateRow").style.visibility
这种用法倒是没有试过,长见识了。
我写的脚本倒是没有仔细调试过,嘿嘿,见笑了。明天好好看看
作者: higkoo    时间: 2007-6-11 16:09
标题: 顶一个!
http://bbs.51testing.com/thread-79067-1-1.html

不错不错,我就是靠这个方法解决问题的!  sdlkfj3 sdlkfj3 sdlkfj3
作者: fengle    时间: 2007-6-13 11:22
我想问问style.visibility的返回值都有什么??我从哪可以查到这方面的内容??
作者: xiaqiang72    时间: 2007-8-10 02:25
LET ME TRY
作者: luofeng    时间: 2007-8-15 16:47
学习一下




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2