Vbscript 在qtp中调用函数时类型不匹配
我正在使用QTP 11.5自动化web应用程序。我正在尝试通过driverscript调用QTP中的操作,如下所示: RFSTestPath=“D:\vf74\D驱动器\RFS自动化” LoadAndRunAction RFStestPath&LogInApplication,“Action1”,oneIteration 在LogInApplication(Action1)中,我调用登录函数的方式如下: 调用fncLogInApplication(strURL、struserName、strpassbrow) fncLogInApplication的定义写在fncLogInApplication.vbs中 当我将fncLogInApplication.vbs文件与driverscript关联时,我能够执行我的代码而不会出现任何错误。但当我将.vbs文件从driverscript中解除关联并将其关联到LogInApplication测试时,我得到了“类型不匹配:'fncLogInApplication'” 请问协会里有谁能帮助我吗。我希望在关联到LogInApplication而不是主driverscript时执行fncLogInApplicationVbscript 在qtp中调用函数时类型不匹配,vbscript,qtp,hp-uft,Vbscript,Qtp,Hp Uft,我正在使用QTP 11.5自动化web应用程序。我正在尝试通过driverscript调用QTP中的操作,如下所示: RFSTestPath=“D:\vf74\D驱动器\RFS自动化” LoadAndRunAction RFStestPath&LogInApplication,“Action1”,oneIteration 在LogInApplication(Action1)中,我调用登录函数的方式如下: 调用fncLogInApplication(strURL、struserName、strpa
如果您需要更多信息,请回复。在任何时候只有一组关联库处于活动状态:这始终是最外层的测试库。 这意味着,如果测试A调用测试B,则测试B将根据测试A的关联库列表而不是B的加载库来执行 这也意味着,如果B依赖于某个库,并且B与该库关联,但从测试a(与该库不关联)调用,则B将无法调用(定位)函数,因为从未加载B的关联库(仅来自a的库)。(当然,A也是如此。) 如果您仍然感兴趣:“类型不匹配”是QTP(或VBScript)告诉您的糟糕方式:“调用的函数未知,因此我打赌您指的是数组变量取消引用,而您指定的变量等于空,因此它不是数组,因此不能作为数组变量取消引用,这就是我所说的‘类型不匹配’。” 考虑到VB/VBScript的语法树,此推理是有效的:函数调用和数组变量引用无法正式区分。从语法上讲,它们非常相似,或在大多数情况下完全相同。因此,请准备好处理“类型不匹配”,如“未知函数引用”“创建VBScript代码时VB/VBScript从不显示的消息 但是,您可以在测试B的代码中加载所需的库(例如,使用
LoadFunctionLibrary
),但这仍然允许A在B加载该库并从A的调用返回后从该库调用函数。然而,这以及这个过程的所有可能的变化都会对调试、转发引用和全局变量的可见性等方面产生副作用,因此我建议不要这样做
补充说明:
- 没有充分的理由使用
。只需调用sub或函数调用
- 如果调用一个函数并使用它返回的结果,则必须将参数包含在参数中
- 如果调用
(或sub
,并且不使用它返回的结果),则不能在论文中包含参数。如果函数
或子函数
只接受一个参数,则可能允许您将其置于偏执状态,但事实并非如此。在这种情况下,这个论点被简单地看作是偏执论中的一个术语李>函数
- 刚刚列出的参数“括号”方面可能会产生非常严重的错误,特别是当参数是
时,这也是由于(但不限于)VBScript不幸允许您为byRef
参数传递值这一事实造成的,因此,一般来说,将偏执放在它所属的地方(即绝对需要的地方)是一个好主意byRef