51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2316|回复: 5
打印 上一主题 下一主题

[原创] 脚本的奇怪问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-9-27 14:27:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Dim oP
Set oP = Browser("Google").Page("Google").WebEdit("q")
oP.Set "3333"
Browser("Google").Refresh
oP.Set "5555" '执行到这个地方,系统提示:参数不正确?

为什么会报:参数不正确的错误?

我的理解:oP.Set "5555" 执行前,虽然Browser("Google").Refresh刷新了界面,但是,oP仍然为Browser("Google").Page("Google").WebEdit("q"),所以,oP.Set "5555" 应该正常执行才对!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-9-27 14:35:22 | 只看该作者
问题补充:
Browser("Google").Page("Google").WebEdit("q").Set "3333"
Browser("Google").Refresh
Browser("Google").Page("Google").WebEdit("q").Set "5555"

这样的脚本不会出现问题!
为什么采用Set oP = Browser("Google").Page("Google").WebEdit("q")这种方式会有问题?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-9-27 15:03:42 | 只看该作者
发现我提的这个问题和“假装不在”的帖子【QTP 编码小知识 二】(http://bbs.51testing.com/thread-127921-1-1.html)说的是一个问题。

“假装不在”的解释是:对象丢失造成的。我认为他的理解并不十分准确!
希望有高手进一步解答原因!

谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-9-27 15:07:14 | 只看该作者
确实是对象过期问题,鉴定完毕

lz可以尝试下在.refresh之后再执行次
Set oP = Browser("Google").Page("Google").WebEdit("q")
然后再set,看还会报错不
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-9-27 15:15:14 | 只看该作者

回复 4# 的帖子

谢谢你的回答!

你的说方法我知道,而且还有很对可以规避这个问题的方法。

我想知道的是:这个问题产生的原因!如果是对象过期问题,那为什么过期?

[ 本帖最后由 testman 于 2008-9-27 15:31 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-9-27 15:51:15 | 只看该作者
找到原因了!确实是对象过期问题。
具体解释如下:
1,执行Set oP = Browser("Google").Page("Google").WebEdit("q")后,oP指向了页面中的运行时对象:编辑框q。
2,执行Browser("Google").Refresh后,当前页面中对象被刷新,编辑框q同样被刷新,但是,此时的oP指向的仍然是刷新前页面中的编辑框q
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-9 10:39 , Processed in 0.084524 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表