51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2310|回复: 7
打印 上一主题 下一主题

[求助] 在写QTP脚本时发现的问题,请那位大虾给解决一下。谢谢

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-11-29 16:18:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当我运行下面的测试脚本时,测试停在了第12步(运行第12步时,被测试的系统会弹出一个对话框,提示FirstName的值不能为空。),知道我手工将弹出的对话框给关闭后测试脚本才能继续运行(脚本的第13步就是关闭这个对话框的)或者被终止。如果用其他的方法可以解决这个问题,但我现在想使用set objectname=testobject.object 去传递这个测试的对象到函数中去使用。
1.Dim strURL,Savebutton,FirstName
2.strURL="http://localhost:8080/xpc/jsp/admin/Login.jsp"
3.SystemUtil.Run "IEXPLORE.EXE",strURL
4.Browser("ecVision XpressCommerce").Page("LoginPage").WebRadioGroup("SelectAdminType").Select "#0"
5.Browser("ecVision XpressCommerce").Page("LoginPage").WebEdit("password").SetSecure "47453ef3a1b27537"
6.Browser("ecVision XpressCommerce").Page("LoginPage").WebElement("LoginButton").Click
7.Browser("ecVision XpressCommerce").Page("ecVision XpressCommerce_2").Frame("clientframe").Link("Edit Profile").Click
8.Set FirstName=Browser("ecVision XpressCommerce").Page("ecVision XpressCommerce_2").Frame("clientframe_2").WebEdit("firstName").Object
9.Set SaveButton=Browser("ecVision XpressCommerce").Page("ecVision XpressCommerce_2").Frame("clientframe_2").WebButton("Save").Object
10.FirstName.value=""
11.SaveButton.focus
12.SaveButton.click
13.Browser("ecVision XpressCommerce").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
14.Browser("ecVision XpressCommerce").Page("ecVision XpressCommerce_2").Frame("menuframe").Link("Logout").Click
15.Browser("ecVision XpressCommerce").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-11-29 17:33:31 | 只看该作者
你到底有什么问题呢?能用通畅的中文清楚地描述问题现象和所期待的结果吗?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-11-29 20:01:19 | 只看该作者
有必要这么搞么。。。对象识别的清清楚楚,QTP也为这些对象提供了相应的方法,还非要去用.object ...何必呢。。。focus后你按个空格还能让人理解,既然是用click那focus有啥意义。。。

回到正题,其实根本就没有什么问题。
被测程序中有个正常的value check功能,在FirstName框为空的时候是不能Save的。仅此而已。。。

PS:对被测程序的流程都不清楚怎么编写自动化脚本。。。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-11-30 11:29:34 | 只看该作者
朋友,你没有明白我的意思不要妄下结论好吗?我对业务流程熟得很。
关于用focus是我去做调试用的,在最后的脚本里面肯定不会使用的啦。
要用这个我说得很清楚了,是为了把对象传到函数中去使用。如果不是为了把对象传进函数中去使用的话,我也不会这么用。
如果用descriptive programming的话,我要传进去太多的属性,函数的参数就比较多了。所以选择传对象,但是传进去的对象一碰到弹出对话框就不能运行了。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-11-30 11:54:34 | 只看该作者
原帖由 hilltan78 于 2007-11-30 11:29 发表
朋友,你没有明白我的意思不要妄下结论好吗?我对业务流程熟得很。
关于用focus是我去做调试用的,在最后的脚本里面肯定不会使用的啦。
要用这个我说得很清楚了,是为了把对象传到函数中去使用。如果不是为了把对象 ...


不好意思,是我没理解你的问题,不过再看了两遍,也正如2楼所说,问题呢?
没搞明白“如果用其他的方法可以解决这个问题,但我现在想使用set objectname=testobject.object 去传递这个测试的对象到函数中去使用。”和你的“当我运行下面的测试脚本时,测试停在了第12步(运行第12步时,被测试的系统会弹出一个对话框,提示FirstName的值不能为空。),知道我手工将弹出的对话框给关闭后测试脚本才能继续运行(脚本的第13步就是关闭这个对话框的)或者被终止。”有什么关系。。。
问题在哪。。。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-11-30 16:08:40 | 只看该作者
SaveButton.click
if Browser("ecVision XpressCommerce").Dialog("Microsoft Internet Explorer").WinButton("确定").Exists(3) then
     Browser("ecVision XpressCommerce").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
End if

你试试这个,等待那个对话框(提示FirstName的值不能为空)出来后,再点”确定“,就可以关闭了,不用手工去关。

应该跟你传不传参数没什么关系。
希望这个对你有用!!!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-12-3 14:40:57 | 只看该作者

谢谢楼上的

谢谢楼上的提供的方法,但这个我已经试过了。但没有用。
使用了Set SaveButton=Browser("ecVision XpressCommerce").Page("ecVision XpressCommerce_2").Frame("clientframe_2").WebButton("Save").Object 这个语句后,如果页面有弹出窗口的话,他无法运行通过savebutton.click,脚本后面的步骤不能运行同时系统也不会报错;但如果savebutton.click后面的步骤没有弹出窗口的话,这个脚本都能正常的运行。我觉得这个问题很奇怪,如果是说弹出的Dialog("Microsoft Internet Explorer")不能识别的话,那么QTP应该在超时后弹出不能识别对象的错误,但我等了有10分钟左右也没有看到不能识别对象的错误。(超时时间为30秒)
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-12-3 17:18:55 | 只看该作者
看8懂,你们都是高人
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-15 03:13 , Processed in 0.067888 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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