51Testing软件测试论坛

标题: 请教各位哥哥姐姐,关于WScript这个的问题 [打印本页]

作者: skyhen    时间: 2006-8-2 16:10
标题: 请教各位哥哥姐姐,关于WScript这个的问题
Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")
Set oExec    = WshShell.Exec("%comspec% /c dir")

Function ReadAllFromAny(oExec)

     If Not oExec.StdOut.AtEndOfStream Then
          ReadAllFromAny = oExec.StdOut.ReadAll
          Exit Function
     End If

     If Not oExec.StdErr.AtEndOfStream Then
          ReadAllFromAny = oExec.StdErr.ReadAll
          Exit Function
     End If
     
     ReadAllFromAny = -1
End Function

Dim allInput, tryCount

allInput = ""
tryCount = 0

Do While True

     Dim input
     input = ReadAllFromAny(oExec)

     If -1 = input Then
          If tryCount > 10 And oExec.Status = 1 Then
               Exit Do
          End If
          tryCount = tryCount + 1
          WScript.Sleep 100
     Else
          allInput = allInput & input
          tryCount = 0
     End If
Loop

If oExec.ExitCode <> 0 Then
     msgbox "Warning: Non-zero exit code"
End If

msgbox  allInput

运行到“ WScript.Sleep 100 ”这句话时,系统提示“ 缺少对象: 'WScript' ”,请问各位帮小弟看一下,问题错在哪里,小弟先谢谢了。
作者: xiaonan    时间: 2006-8-2 17:06
把这两句放进循环里面
Set WshShell = CreateObject("WScript.Shell")
Set oExec    = WshShell.Exec("%comspec% /c dir")

如:
Do While True
Set WshShell = CreateObject("WScript.Shell")
Set oExec    = WshShell.Exec("%comspec% /c dir")


     Dim input
     input = ReadAllFromAny(oExec)

     If -1 = input Then
          If tryCount > 10 And oExec.Status = 1 Then
               Exit Do
          End If
          tryCount = tryCount + 1
          WScript.Sleep 100
     Else
          allInput = allInput & input
          tryCount = 0
     End If
Loop

你这程序有什么意义?
作者: QA_BAY    时间: 2006-8-2 18:01
原帖由 xiaonan 于 2006-8-2 17:06 发表
把这两句放进循环里面
Set WshShell = CreateObject("WScript.Shell")
Set oExec    = WshShell.Exec("%comspec% /c dir")

如:
Do While True
Set WshShell = CreateObject("WSc ...

把那两句放进循环里面,脚本是可以执行,但没有执行到
WScript.Sleep 100  ,如果执行到了还是会提示“ 缺少对象: 'WScript' 

把楼主的脚本放到DOS下运行是没有问题的,但放到QTP里面运行就提示有问题,
我觉得有可能是语言的问题.老是提示没有定义,但定义了也是提示不行,执行QTP HELP里面的脚本也是这样.

你可以这样做,既然DOS可以执行,那你就用QTP执行DOS调用脚本,这样是没有问题的.
其它的办法还没有想到!

[ 本帖最后由 QA_BAY 于 2006-8-2 18:03 编辑 ]
作者: skyhen    时间: 2006-8-3 11:32
请问QA_BAY版主我该怎样写那个 (QTP执行DOS调用脚本 ) ,我刚学QTP没有多久啊。请版主稍微指导一下,小弟先谢谢了。
作者: QA_BAY    时间: 2006-8-3 15:19
你可以这样做
先把脚本保存起来(保证你的脚本能正确运行),例如命名为test.vbs
然后在QTP写以下脚本就可以正确运行了!
Dim oShell
Set oShell =CreateObject ("WSCript.shell")
oShell.run "cmd /K wscript e:\test.vbs"
Set oShell = Nothing
作者: skyhen    时间: 2006-8-4 13:01
谢谢,  QA_BAY版主,我的问题解决了。
非常感谢版主对小弟的指导
作者: miniyal    时间: 2006-12-25 11:22
WScript.Sleep 100改成wait(0,100)可以运行的
作者: miniyal    时间: 2006-12-25 11:32
能问下("%comspec% /c dir")是啥意思吗?它打开哪个哇?
作者: yilan836200    时间: 2007-6-29 14:06
up
作者: lecher    时间: 2007-9-4 10:28
o  o
作者: lecher    时间: 2007-9-4 10:28
ding
作者: DK_love_MM    时间: 2010-7-29 17:30
学习了
作者: Gasgoo    时间: 2010-11-10 16:50
谢谢。。。受教了。。
作者: sophiashan07    时间: 2010-12-17 11:40
我公司2010年6月份刚在纳斯达克上市,现在要找一名自动化测试组长,薪资福利良好:

我们项目组需要招聘自动化测试组组长,职位信息如下:
1.计算机相关专业本科以上学历,熟悉软件工程师学原理;
2.软件测试相关经验3年以上,其中至少包括2年功能自动化测试经验;
3.熟悉QTP工具的使用,了解QTP原理和对象识别机制;
4.熟悉VBScript脚本语言,能进行相关自动化脚本函数的编写;
5.较强的语言表达和文档编写能力及良好的沟通技巧;
6.有金融银行基础业务知识经验、有网银业务经验为佳;
7.有自动化框架编写、设计经验和软件开发经验有团队管理经验为佳;
8.熟悉Java、J2EE 、WebSphere 、Application Serve、DB2、Oracle等为佳
9.有Unix平台的使用经验(AIX/Solaris/HPUX/Linux)为佳;
欢迎各专业人士来信探讨,谢谢:
shanjing1983@163.com
sophiashan07@hotmail.com
作者: wspc    时间: 2011-12-3 13:20
强悍,借鉴了。。。。
作者: andrewli    时间: 2012-2-22 17:48
学习了




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