51Testing软件测试论坛

标题: 请教:用VBS启动QTP总是报错,急啊 在线等 [打印本页]

作者: wangcai    时间: 2008-4-14 15:38
标题: 请教:用VBS启动QTP总是报错,急啊 在线等
我的QTP版本是8.2的,用VBS脚本启动QTP的脚本如下:
Dim qtApp   
Dim qtTest  
Dim qtResultsOpt   
Set qtApp = CreateObject("QuickTest.Application")   
qtApp.Launch   
qtApp.Visible = True   
qtApp.Open "C:\Program Files\Mercury Interactive\QuickTest Professional\Tests\upgrade_TJ", True  
Set qtTest = qtApp.Test   
qtTest.Settings.Run.OnError = "NextStep"   
Set qtResultsOpt = CreateObject("QuickTest.RunResultsOptions")   
qtResultsOpt.ResultsLocation = "C:\Program Files\Mercury Interactive\QuickTest Professional\Tests\upgrade_TJ\"   
qtTest.Run  
Set qtResultsOpt = Nothing   
Set qtTest = Nothing   
Set qtApp = Nothing  

可是总是抱错,请教达人这是什么原因?怎么解决啊 谢谢[attach]41060[/attach]
作者: hsjzfling    时间: 2008-4-14 15:38
先重装下看看吧,可以排除掉文件损坏、丢失等问题。
作者: hsjzfling    时间: 2008-4-14 16:10
不通过vbs,而直接运行qtp会报错么?
作者: wangcai    时间: 2008-4-14 16:19
直接运行QTP不会报错
作者: sqgrl    时间: 2008-4-14 16:41
有可能是编码错误, 将前四行放在notepad中重写下看看,Note:重写, 不是Copy.
作者: wangcai    时间: 2008-4-14 17:13
手写也不行,还是报同样的错误。另外试了一下Word.Application是没有问题的
是不是QTP本身设置或者是注册表时有问题啊?
作者: hsjzfling    时间: 2008-4-14 17:22
尝试在cmd中执行regsvr32 scrrun.dll
作者: hsjzfling    时间: 2008-4-14 17:41
也可以尝试下在cmd中执行regsvr32 QTObjectModel.dll
没遇到这样的问题,只能逐一尝试了~
猜想问题的起因要么是QuickTest.Application不存在了,要么就是权限被禁了
作者: hsjzfling    时间: 2008-4-14 17:43
试一下注册以上的dll后脚本是否能成功创建对象了吧~
作者: wangcai    时间: 2008-4-14 17:46
都试了 还是不行啊 痛苦啊
作者: ppent    时间: 2008-4-14 17:46
感觉不是脚本问题,而是环境问题。
没遇到过,试试楼上给的注册方法是否有效。
作者: wangcai    时间: 2008-4-14 17:47
权限被禁了?
作者: hsjzfling    时间: 2008-4-14 18:10
如你所说,Word.Application如果也没有问题,那么就应该不是权限问题,而是qtp的dll问题
不然你重装下QTP试试看吧,QTP具体是哪个DLL影响这个我也不能确定~~
对了注册qtp的dll应该加上路径
regsvr32 "C:\Program Files\Mercury Interactive\QuickTest Professional\bin\QTObjectModel.dll"
作者: dreamever    时间: 2008-4-14 19:12
刚才好象看到了内容相同的帖子,这段代码写的很标准
你把代码末端的空格删除试一下。我复制你的代码删除空格后运行没问题。但是如果不删除空格则报跟你一样的错误
作者: wangcai    时间: 2008-4-15 09:08
谢谢各位的帮忙,各位提的方法我都试过了但是还是报同样的错误,还有没有别的方法啊?
作者: hsjzfling    时间: 2008-4-15 09:33
Google了下,发现有人提到可能是windows安全设置的问题,导致未验证的不能被ActiveX创建~~
作者: wangcai    时间: 2008-4-15 09:43
那这个我要到哪里改呢?
作者: wangcai    时间: 2008-4-15 10:17
重装QTP会不会好?
作者: hsjzfling    时间: 2008-4-15 10:36
12# 的意见你也可以参考下,虽然我这里直接copy你贴的代码之后能正常运行,但有时候报错可能确实比较莫名的~
作者: sunqiang1024    时间: 2008-4-15 11:09
VBS 没有在该机执行windows脚本宿主的权限?

依次找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Script Host\Settings

这个路径,打开右边的enabled这个键值!把它改成1!

VBS出现“run time error‘429’ActiveX部件不能创建对象”的错误提示框,如何解决?

回答:出现以上原因是由于“dao350.dll”文件没注册成功造成的。

解决方法:

手工注册此文件:点击“开始”→“运行”在弹出的输入框中键入以下命令:

regsvr32 "C:\Program Files\Common Files\Microsoft Shared\DAO\dao350.dll"

regsvr32 "C:\windows\system32\scrrun.dll"
作者: wangcai    时间: 2008-4-15 12:20
按照19#的说法作了 还是不行啊
作者: sunqiang1024    时间: 2008-4-15 13:57
是不是楼主的QTP的版本问题,我的QTP是92的
作者: jijiyaya    时间: 2008-4-15 15:11
我把你的代码拷到我的机子上,运行了两次,竟然都死机了。奇怪。
作者: 没有蛀牙    时间: 2008-4-15 17:50
在网上查了一下,出现这个错误有三种可能性:
• 在系统中找不到DLL
重新注册QTObjectModel.dll
• DLL不在系统路径中
你能手动启动QTP,应该不可能
• 系统由于安全设置而无法访问DLL
确认你的权限,windows用户权限,如果是NTFS格式的还要确认具体文件权限
作者: wangcai    时间: 2008-4-15 19:32
重装了一下QTP9.2,OK了
由于hsjzfling提示我重装QTP会好些,并且非常耐心地帮助我找原因,所以将最佳答案给hsjzfling,同时也非常感谢其他人的帮助




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