将返回值从Python脚本传递到VB脚本
我有一个VB脚本(UFT)代码,它触发Python脚本来检查图像是否符合所需的颜色,Python脚本将字符串返回到VB脚本,并带有颜色值。 我能够从VB脚本调用python脚本,python脚本也执行并返回值。我的问题是我无法将返回值保存在任何变量中,它只是空白 下面是我调用python脚本的VB脚本代码将返回值从Python脚本传递到VB脚本,python,vbscript,Python,Vbscript,我有一个VB脚本(UFT)代码,它触发Python脚本来检查图像是否符合所需的颜色,Python脚本将字符串返回到VB脚本,并带有颜色值。 我能够从VB脚本调用python脚本,python脚本也执行并返回值。我的问题是我无法将返回值保存在任何变量中,它只是空白 下面是我调用python脚本的VB脚本代码 Function Verifycolor(icolor,ipath,rValue) Dim pyr Set pyShell = CreateObject("Wscript.Shell") c
Function Verifycolor(icolor,ipath,rValue)
Dim pyr
Set pyShell = CreateObject("Wscript.Shell")
color = icolor
Imagepath = ipath
pyColorVerify = "python ""C:\Users\a272099\Desktop\Python\codes\Verifycolor.py""" & " " & color & " " & ImagePath
Set pyOperation = pyShell.Exec(pyColorVerify)
Set pyResult = pyOperation.StdOut
wait(1)
msgbox pyResult.ReadAll
pyr = pyResult.ReadAll
msgbox pyr
'Do
'pyRet = pyResult.ReadAll
''msgbox pyReturn
'wait(1)
'Loop Until pyReturn <> empty
If pyr = rValue Then
Reporter.ReportEvent micPass,"Preconditions are not set to" &color& "color","preconditions are set"
Else
Reporter.ReportEvent micFail,"Preconditions are set to" &color& "color","preconditions are set"
End If
msgbox pyResult.ReadAll
End Function
当python返回值时,问题出现在我的VB脚本中
当我执行Msgbox PyResult.Readall时,我得到了从Python返回的正确消息,要么绿色存在,要么绿色不存在
如果我给任何变量赋值,比如pyr。pyr总是空的,没有存储任何内容
请帮助我解决将pyResult.ReadAll存储到变量的问题,以便我可以在其他条件下使用它
如果需要更多信息,请告诉我。看起来
ReadAll
方法也会清除StdOut
中的内容,因此您只能使用一次
在您的示例中,它适用于该行
msgbox pyResult.ReadAll
但是在这个调用之后,您的pyResult是空的。
第二次尝试使用这种方法不再有效,所以在这一行中
pyr = pyResult.ReadAll
它返回一个空字符串
只需删除第一个呼叫
msgbox pyResult.ReadAll
并且只调用一次ReadAll
,将返回的值存储到如下变量中
pyr = pyResult.ReadAll
从那时起,如果您需要该值,请仅使用
pyr
,不要再调用ReadAll
。谢谢您,Geert。它的工作原理是删除该消息框。我不知道它只能用一次。谢谢你的支持,这节省了我很多时间。
pyr = pyResult.ReadAll