Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA代码在UFT中不工作_Vba_Hp Uft - Fatal编程技术网

VBA代码在UFT中不工作

VBA代码在UFT中不工作,vba,hp-uft,Vba,Hp Uft,我真的需要你的帮助来解决一个我3个小时以来一直困扰的问题。。。 我有一个VBA代码,可以打开IE并导航到URL。 当我在Microsoft Visual Basic中测试代码时,代码似乎正常工作: Sub test() On Error Resume Next Set app = CreateObject("InternetExplorer.Application") MsgBox "OpenWindow 1 : " & Err.Number

我真的需要你的帮助来解决一个我3个小时以来一直困扰的问题。。。 我有一个VBA代码,可以打开IE并导航到URL。 当我在Microsoft Visual Basic中测试代码时,代码似乎正常工作:

Sub test()
    On Error Resume Next
        Set app = CreateObject("InternetExplorer.Application")
        MsgBox "OpenWindow 1 : " & Err.Number
        app.Visible = True
        app.Navigate ("salut.com")
        result = Err.Number
        MsgBox "OpenWindow 2 : " & Err.Number
    On Error GoTo 0
    If result <> 0 Then
        Call test
    End If
End Sub
子测试()
出错时继续下一步
Set app=CreateObject(“InternetExplorer.Application”)
MsgBox“OpenWindow 1:”&错误号
app.Visible=True
app.Navigate(“salt.com”)
结果=错误编号
MsgBox“OpenWindow 2:”&错误号
错误转到0
如果结果为0,则
呼叫测试
如果结束
端接头
此代码在Excel宏中正常工作,但每当我在UFT(统一函数测试)中执行完全相同的代码时,它就会抛出错误:

  • createObject(?)之后出现错误-2147467261
  • 导航后出现错误238(我认为这很正常,因为 createObject失败)
代码完全相同,我只是传递URL以导航到函数:

Function openWindow(url)
    On error resume next
        Set app = CreateObject("InternetExplorer.Application")
        app.Visible = true
        app.Navigate(url)
        result =  Err.number
    On error goto 0
    If result <> 0 Then
        openWindow (url)
    End If
End Function
函数打开窗口(url)
出错时继续下一步
Set app=CreateObject(“InternetExplorer.Application”)
app.Visible=true
应用程序导航(url)
结果=错误号
错误转到0
如果结果为0,则
openWindow(url)
如果结束
端函数
我真的不知道问题是什么…

我找到了一个解决办法:

Function openWindow(urlToNavigate)
    SystemUtil.Run "iexplore.exe",urlToNavigate
End Function

我想你可能想读书。然后将
url
声明为
ByVal url为String
,这样函数只能接受
String
。现在我们不确定
Navigate
调用是否失败,因为您给了它一些它无法处理的东西-一个显式的
String
参数会使事情不那么模棱两可。似乎UFT无法处理
CreateObject
调用?我从未使用过UFT,但根据任何编程标准,您都应该声明变量(并在每个模块的顶部指定
Option Explicit
),而
app
是该
openWindow
函数的依赖项,这实际上只是一个过程,因为它不会返回任何东西。因此,您不应该创建自己的依赖项,而应该将其作为参数注入,并且自动化测试应该提供您的方法需要使用的任何接口的伪/模拟实现。此外,您的函数是递归的,如果出现任何无效的
url
,或者出现任何问题,都会导致调用堆栈崩溃。UFT可以很好地处理
CreateObject
调用,但它使用
vbscript
,因此您不能显式地将
url声明为字符串
。我已经在UFT中尝试了上面的代码,它对我来说很好。。。?