51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4610|回复: 9
打印 上一主题 下一主题

[求助] <QTP自动化测试技术领航>一书中实例,Navigate无法跳转,QTP报错,请教大家!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-9-3 09:44:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按照<QTP自动化测试技术领航>一书中,常用网页十大控件的说明中,浏览器Browser&age,有一个实例,代码如下:
SystemUtil.Run "www.51testing.com"
Browser("micClass:=Browser").Navigate("bbs.51testing.com")
Browser("micClass:=Browser").Page("micClass:=Page").Sync:Wait 1

checkURL=Trim (Browser("micClass:=Browser").Object.LocationURL)
If checkURL="http://bbs.51testing.com/" Then
        Reporter.ReportEvent micPass,"Step 1","assed"
Else
        Reporter.ReportEvent micFail,"Step 1","Failed"
End If

Browser("micClass:=Browser").OpenNewTab:Wait 1
testHWND=Browser("name:=新建选项卡").GetROProperty("hwnd")
Browser("name:=新建选项卡").Navigate "bbs.51testing.com"

Browser("51Testing软件测试论坛-首页").Page("51Testing软件测试论坛-首页").Link("登录").Click
With Browser("51Testing软件测试论坛-首页").Page("51Testing软件测试论坛-用户登录")
                        .WebEdit("username").Set "malasyan"
                        .WebEdit("password").Set "831212"
                        .WebButton("登录").Click:Wait 3
End With

oExist=Browser("51Testing软件测试论坛-首页").Page("51Testing软件测试论坛-首页").Link("退出").Exist (3)
If oExist Then
        Reporter.ReportEvent micPass,"Step 3","assed"
Else
        Reporter.ReportEvent micFail,"Step 3","Failed"
End If

Browser("hwnd:="&testHWND).Close
Browser("micClass:=Browser").Refresh:Wait 1
oExist=Browser("51Testing软件测试论坛-首页").Page("51Testing软件测试论坛-首页").Link("退出").Exist (3)
If oExist Then
        Reporter.ReportEvent micPass,"Step 4","assed"
Else
        Reporter.ReportEvent micFail,"Step 4","Failed"
End If


运行后,首先QTP报错,如图:


回到IE浏览器发现页面并没有做任何跳转,也就是说代码第二行并没有实现.


然后看测试结果分析:Navigate一步的结果是Done


报错步骤截图:


请教大家这是怎么回事啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

推荐
发表于 2015-7-14 10:19:03 | 只看该作者
'经过一段时间的观察,终于发现这些机器上IE加载项(IE"工具"->"管理加载项")的不同:
'BHOManager Class插件的问题。文件名是BHOManager.dll,部分人的机器上该插件被禁用或删除掉了,猜测原因可能是使用了某些清理ie的工具导致。


SystemUtil.CloseProcessByName "iexplore.exe"
SystemUtil.Run  "iexplore.exe","www.51testing.com"
Browser("micClass:=Browser").Navigate "bbs.51testing.com"
Browser("micClass:=Browser").Page("micClass:=Page").Sync:wait 1

checkURL=Trim(Browser("micClass:=Browser").Object.LocationURL)

If(checkURL="http://bbs.51testing.com")  Then
Reporter.ReportEvent micPass,"step1","passed"
Else
Reporter.ReportEvent micFail,"step1","failed"
End If
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

2#
发表于 2012-9-3 10:06:57 | 只看该作者
这是个很复杂的问题,首先,第一张截图中报了语法错误,在某种时刻,虽然他指在那一行,但其实它不一定就是那行有问题。然后,没有跳转的问题,可能是环境问题,已经很多人问过了,我当初是QTP10.0+IE7+XP,然后把IE选项设置为在新窗口中打开新弹出的网页。这个问题不是很大的问题,建议读者不用太纠结,有了思路,自己写一套,我这段代码可能的确会运行失败,失败的原因是因为,网页没法在新窗口中打开,所以后面的也就都失败了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2012-9-3 10:13:31 | 只看该作者
谢谢作者~
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2012-9-3 10:27:41 | 只看该作者
这类案例一般建议加点东西,小细节稍微处理下
'开头加上杀ie进程,确保初始环境干净
SystemUtil.CloseProcessByName "iexplore.exe"
'这里加上指定浏览器,规避设置不同默认浏览器不同引起的报错
SystemUtil.Run "iexplore.exe","www.51testing.com"
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2012-9-3 11:11:56 | 只看该作者
回复 4# hsjzfling


    谢谢楼上~可是加上之后还是报错,跟以前的一样.
照着2楼作者的浏览器设置改了新窗口弹出,也没有解决问题.
那我先不纠结了~
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2012-9-3 12:33:43 | 只看该作者
我提的那个是一般性建议,并不是特意针对你这个情况的……

General Run Error,未知错误类型,可能的情况非常多,需要结合环境、设置、实际场景等各方面因素来考虑分析,一般没有特效药。
建议的做法:换一台干净的机器来执行脚本。系统配置方面可参考作者提供的配置,降低因为环境因素导致问题的可能。
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2012-9-5 09:24:06 | 只看该作者
请问大侠们,这个QTP如何参数化data table 里的数据呢?就是一个值既是从脚本中攻取的,还要用的脚本中去!!这个问题纠结了几天了,由于自己不懂的代码,好苦闷呀!!
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2012-9-5 16:45:49 | 只看该作者
回复 7# hyl521


    你参考一下书154页开始.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 12:14 , Processed in 0.093161 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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