51Testing软件测试论坛

标题: <QTP自动化测试技术领航>一书中实例,Navigate无法跳转,QTP报错,请教大家! [打印本页]

作者: malasyan    时间: 2012-9-3 09:44
标题: <QTP自动化测试技术领航>一书中实例,Navigate无法跳转,QTP报错,请教大家!
按照<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


报错步骤截图:


请教大家这是怎么回事啊
作者: yujie6832    时间: 2012-9-3 10:06
这是个很复杂的问题,首先,第一张截图中报了语法错误,在某种时刻,虽然他指在那一行,但其实它不一定就是那行有问题。然后,没有跳转的问题,可能是环境问题,已经很多人问过了,我当初是QTP10.0+IE7+XP,然后把IE选项设置为在新窗口中打开新弹出的网页。这个问题不是很大的问题,建议读者不用太纠结,有了思路,自己写一套,我这段代码可能的确会运行失败,失败的原因是因为,网页没法在新窗口中打开,所以后面的也就都失败了
作者: malasyan    时间: 2012-9-3 10:13
谢谢作者~
作者: hsjzfling    时间: 2012-9-3 10:27
这类案例一般建议加点东西,小细节稍微处理下
'开头加上杀ie进程,确保初始环境干净
SystemUtil.CloseProcessByName "iexplore.exe"
'这里加上指定浏览器,规避设置不同默认浏览器不同引起的报错
SystemUtil.Run "iexplore.exe","www.51testing.com"
作者: malasyan    时间: 2012-9-3 11:11
回复 4# hsjzfling


    谢谢楼上~可是加上之后还是报错,跟以前的一样.
照着2楼作者的浏览器设置改了新窗口弹出,也没有解决问题.
那我先不纠结了~
作者: hsjzfling    时间: 2012-9-3 12:33
我提的那个是一般性建议,并不是特意针对你这个情况的……

General Run Error,未知错误类型,可能的情况非常多,需要结合环境、设置、实际场景等各方面因素来考虑分析,一般没有特效药。
建议的做法:换一台干净的机器来执行脚本。系统配置方面可参考作者提供的配置,降低因为环境因素导致问题的可能。
作者: hyl521    时间: 2012-9-5 09:24
请问大侠们,这个QTP如何参数化data table 里的数据呢?就是一个值既是从脚本中攻取的,还要用的脚本中去!!这个问题纠结了几天了,由于自己不懂的代码,好苦闷呀!!
作者: malasyan    时间: 2012-9-5 16:45
回复 7# hyl521


    你参考一下书154页开始.
作者: menrong    时间: 2015-7-14 10:19
'经过一段时间的观察,终于发现这些机器上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




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