51Testing软件测试论坛

标题: 怎么可以获取刷新后的frame [打印本页]

作者: epjackhe    时间: 2009-6-6 06:41
标题: 怎么可以获取刷新后的frame
我才刚接触QTP和VBS。。。如果问得太白痴请见谅。。。

我现在想对一个网页进行录制。。。里面有一个frame是用来写入资料。。。frame可以用+/-来增加或删除行数。。。大概就像上传照片一样。。。一开始是给一个位置用户上传。。但是根据照片的数量。。可以用+/-来增加减少。。。
我想根据EXCEL文件里面行数的多少来决定要用多少行来上传。。但是每加一行。。。FRAME就会自己刷新。。。

我应该怎么才能正确的获得FRAME OBJECT呢?
作者: chenchengo2008    时间: 2009-6-6 08:57
你的脚本要修改,在脚本中编辑读取当前frame信息,在引用
作者: dreamever    时间: 2009-6-6 08:58
没有糟糕的问题,只有糟糕的回答。
页面刷新导致对象改变的问题也不是只有你一个人碰到,B/S经常会面临这个问题,但是解决的方法都大同小异,仍然是尝试着要获取刷新后的对象;
首先你要解决页面刷新等待的问题,这个可以判断页面的document的readystate状态来实现;
当页面刷新完成后,需要去页面中查找那个指定的frame,我想对于这样的frame对象,应该会有一个id或者name属性可以唯一识别出来,不然开发人员自己都没法处理那个frame对象;
另外,楼主其实没说明你在获取frame object时具体遇到了什么问题,所以我也只能暂时理论上的讨论一下了。
作者: onlonely    时间: 2009-6-6 12:09
标题: 回复 3# 的帖子
回答的思路很好.

另外我补充点,我认为父对象,最好用正则表达式来匹配,
这样刷新后无法识别对象的概率就能下降很多.
因为如果父对象不识别,子对象是绝对识别不了的.对于刷新很多的页面,对象变化比较严重
对于非重点对象应该采用正则来匹配出来,

另外对于你需要测试的对象最好也用正则匹配掉那些非关键字段,我们的目的就是让QTP排除干扰,眼睛中只有我们需要他关注的东西.
作者: epjackhe    时间: 2009-6-6 14:49
谢谢各位的回答。。
虽然好像有了模糊的思路。。其实还是搞不懂。。

“另外,楼主其实没说明你在获取frame object时具体遇到了什么问题,所以我也只能暂时理论上的讨论一下了。”

不好意思。。表达得不太清楚。。。我再说明一次看看。。
就如下面的code:
Browser( AAA).Page( BBB).Frame( X1).WebElement( TextField#1).Set("")
如果这是我在对默认(一行)的时候获得的object
如果我增加一行。。。我就尝试获得新的那一行就变成(大概)
Browser( AAA).Page( BBB).Frame( X2).WebElement( TextField#2).Set("")
从名字上看是号码增加了而已。。但是我尝试用loop。。根据input来增加数字。。但是qtp就关联不到相应的web element...
我应该怎么样来解决这种问题呢?

谢谢!
作者: epjackhe    时间: 2009-6-6 14:50
就是说。。。page还是那个page。。。但是就其中的一个frame更新了。。。
作者: FLY000    时间: 2010-11-19 15:34
我也碰到累死的问题

而且我需要处理的FRAME很多,变化形式都不同
作者: xieyang702    时间: 2010-11-19 15:53
,一般开发的自动刷新的实现是 重新加载了一遍页面,其实ID什么的都没有变化,你加wait 10 时间,等页面刷新后,再进行下一行数据的增加,理论上我觉得应该是可行的吧,你试试!




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