VBA代码在UFT中不工作
我真的需要你的帮助来解决一个我3个小时以来一直困扰的问题。。。 我有一个VBA代码,可以打开IE并导航到URL。 当我在Microsoft Visual Basic中测试代码时,代码似乎正常工作: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
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失败)
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中尝试了上面的代码,它对我来说很好。。。?