怎么可以获取刷新后的frame
我才刚接触QTP和VBS。。。如果问得太白痴请见谅。。。我现在想对一个网页进行录制。。。里面有一个frame是用来写入资料。。。frame可以用+/-来增加或删除行数。。。大概就像上传照片一样。。。一开始是给一个位置用户上传。。但是根据照片的数量。。可以用+/-来增加减少。。。
我想根据EXCEL文件里面行数的多少来决定要用多少行来上传。。但是每加一行。。。FRAME就会自己刷新。。。
我应该怎么才能正确的获得FRAME OBJECT呢? 你的脚本要修改,在脚本中编辑读取当前frame信息,在引用 没有糟糕的问题,只有糟糕的回答。
页面刷新导致对象改变的问题也不是只有你一个人碰到,B/S经常会面临这个问题,但是解决的方法都大同小异,仍然是尝试着要获取刷新后的对象;
首先你要解决页面刷新等待的问题,这个可以判断页面的document的readystate状态来实现;
当页面刷新完成后,需要去页面中查找那个指定的frame,我想对于这样的frame对象,应该会有一个id或者name属性可以唯一识别出来,不然开发人员自己都没法处理那个frame对象;
另外,楼主其实没说明你在获取frame object时具体遇到了什么问题,所以我也只能暂时理论上的讨论一下了。
回复 3# 的帖子
回答的思路很好.另外我补充点,我认为父对象,最好用正则表达式来匹配,
这样刷新后无法识别对象的概率就能下降很多.
因为如果父对象不识别,子对象是绝对识别不了的.对于刷新很多的页面,对象变化比较严重
对于非重点对象应该采用正则来匹配出来,
另外对于你需要测试的对象最好也用正则匹配掉那些非关键字段,我们的目的就是让QTP排除干扰,眼睛中只有我们需要他关注的东西. 谢谢各位的回答。。
虽然好像有了模糊的思路。。其实还是搞不懂。。
“另外,楼主其实没说明你在获取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...
我应该怎么样来解决这种问题呢?
谢谢!:hug: 就是说。。。page还是那个page。。。但是就其中的一个frame更新了。。。 我也碰到累死的问题
而且我需要处理的FRAME很多,变化形式都不同 :),一般开发的自动刷新的实现是 重新加载了一遍页面,其实ID什么的都没有变化,你加wait 10 时间,等页面刷新后,再进行下一行数据的增加,理论上我觉得应该是可行的吧,你试试!
页:
[1]