jacksboy 发表于 2009-2-14 10:54:20

QTP CODESAMPLE PLUS里的代码放到qtp里无法执行

主要是下面加粗的部分,要在QTP里怎么写,不能直接写WSCRIPT
Dim Controller, RemoteScript
Set Controller = CreateObject("WSHController")
Set RemoteScript = Controller.CreateScript("test.js", "remoteserver")
WScript.ConnectObject RemoteScript, "remote_"
RemoteScript.Execute

Do While RemoteScript.Status <> 2
    WScript.Sleep 100
Loop

Sub remote_Error
    Dim theError
    Set theError = RemoteScript.Error
    WScript.Echo "Error " & theError.Number & " - Line: " & theError.Line & ", Char: " & theError.Character & vbCrLf & "Description: " & theError.Description
    WScript.Quit -1
End Sub

dreamever 发表于 2009-2-15 22:52:02

必须用createobject语句创建一个wscript的对象.因为wcript是windows的对象,如果是在windows的vbs文件中那样写是没问题的,但是qtp中并没有wscript对象,因此不能直接调用wscript.包括下面的sleep句也是,楼主的代码中所有涉及到形如"wscript. "的代码,都建议修改成createobject语句创建对象,然后由这个对象来进行调用

jacksboy 发表于 2009-2-16 08:36:06

但是现在的问题是用createobject创建的对象里并没有诸如ConnectObject 、Sleep、Echo、Quit
这样的方法阿

dreamever 发表于 2009-2-16 09:12:17

set wsh = CreateObject("WshScript") '双引号里的东西怎么写我忘了
wsh.ConnectObject RemoteScript, "remote_"
wsh.Sleep 100
wsh.Echo "Error " & theError.Number & " - Line: " & theError.Line & ", Char: " & theError.Character & vbCrLf & "Description: " & theError.Description
也就是说不直接调用Wscript对象,而且创建一个对它的引用,然后调用相关的方法

jacksboy 发表于 2009-2-16 10:30:57

你真的试过?
你把下面这段代码放到QTP里,你看点不点的出我所说的那些方法。。。

set wsh = CreateObject("Wscript.Shell“)
wsh.ConnectObject RemoteScript, "remote_"
wsh.Sleep 100
wsh.Echo "Error " & theError.Number & " - Line: " & theError.Line & ", Char: " & theError.Character & vbCrLf & "Description: " & theError.Description

这不是想当然的,只有亲自试过才能给肯定的答复:L

dreamever 发表于 2009-2-16 14:19:13

论坛里很多问题我相信参与讨论的人都没法亲自去试一遍,很多时候大家都是提出各自的想法或者思路。而至于我写的那些代码可以明确的说不是我的想当然,以前无论是51还是在csdn里都讨论过这个问题,至于放到qtp里能不能点出你的那些方法,那需要看看wscript是不是qtp内置的对象,VBS里很多对象你在QTP里敲代码的时候,都点不出他们相应的方法,但是放到一些vbs编辑器里就可以。
至于其他肯定的答复我是给不出来,本人水平也不是很高,听听其他人的高见吧。

jacksboy 发表于 2009-2-16 14:24:37

虽然还是没答案,不过还是谢谢了

希望有人能给个明确的答复

testlab 发表于 2009-2-16 16:19:59

http://bbs.51testing.com/viewthr ... &extra=page%3D1

testlab 发表于 2009-2-16 16:21:12

http://bbs.51testing.com/viewthread.php?tid=39036&extra=page%3D1

asoqa 发表于 2009-2-16 16:47:01

WScript.ConnectObject方法是用ConnectObject代替
WScript.Echo方法不支持,用Msgbox代替
WScript.Quit方法不支持,用ExitTest或者ExitRun代替
WScrpt.Sleep方法不支持,用Wait代替
页: [1]
查看完整版本: QTP CODESAMPLE PLUS里的代码放到qtp里无法执行