`
kiki1120
  • 浏览: 315747 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

VBS函数Eval和Execute的区别

    博客分类:
  • QTP
 
阅读更多

Eval

 

计算一个表达式的值并返回结果。

[result = ]Eval(expression)

 

Execute

执行一个或多个指定的语句。

Execute statements

 

 

例子:

x = 9
y = 10
 
bIsEqual = Eval("x = y")
Execute "x = y"
 
MsgBox "bIsEqual: " & bIsEqual
MsgBox "X is no longer 9. It is: " & x

 

bIsEqual: False

X is no longer 9. It is: 10

 

x = 9
y = 10
 
Execute "z = (x = y)"
MsgBox "z: " & z

 

z: False

 

 

利用Execute能够执行一些特殊操作

1、创建变量

var_1 = 1 : var_2 = 2 : var_3 = 3 : var_4 = 4: var_5 = 5

 

如果我们想创建以上5个变量,就可以用Execute来实现

For ix = 1 to 5
    Execute "var_" & ix & " = " & ix
Next

 

2、Option Explicit

Option Explicit
 
iNumber = 9

上面的iNumber=9这一行会报错:变量未定义,因为缺少Dim iNumber语句,Option Explicit要求所有变量先定义后使用,但利用Execute函数可绕过这条规则。

 

Option Explicit
 
Execute "iNumber = 9"

 

 

 

 

3、赋值语句

bResult = Eval("TypeName(var)")

上述语句中,bResult是一个真实变量。 

Execute "bResult = TypeName(var)"

上述语句中,bResult是一个象征性变量,需要事先定义。

 

4、多行语句

sFunc = "Function ExecuteTest"
sFunc = sFunc & vbLf
sFunc = sFunc & "MsgBox ""ExecuteTest executed."""
sFunc = sFunc & vbLf
sFunc = sFunc & "End Function"
 
Execute sFunc
 
Call ExecuteTest()

程序能够执行成功,输出ExecuteTest executed.也可以将语句写在一行内,如下:

Execute "Function ExecuteTest : MsgBox ""ExecuteTest executed."" : End Function"
 
Call ExecuteTest()

这里,如果将Execute替换成Eval,程序执行失败,提示“语法错误”。

 

5、执行QTP语句

strBrowser = "Browser(""title:=Google"")"
 
Execute "MsgBox " & strBrowser & ".Exist(0)"

当语句是单行时,两个函数都能使用。

strBrowser = "Browser(""title:=Google"")"
 
bExist = Eval(strBrowser & ".Exist(0)")

而语句为多行时,只能使用Execute函数。

strBrowser = "Browser(""title:=Google"")"  'Browser("title:=Google")
strPage    = "Page(""title:=Google"")"     'Page("title:=Google")
strText    = "WebEdit(""name:=q"")"        'WebEdit("name:=q")
strEvent   = "Set ""Execute Test"""        'Set "Execute Test"

Execute strBrowser & "." & strPage & "." & strText & "." & strEvent

或者

strBrowser = "Browser(""title:=.*Google.*"")"      'Browser("title:=Google")
strPage    = "Page(""title:=.*Google.*"")"         'Page("title:=Google")
strText    = "WebEdit(""name:=q"")"                'WebEdit("name:=q")
strButton  = "WebButton(""value:=Google Search"")" 'WebButton("value:=Google Search")
strEvent   = "Set ""Execute Test"""                'Set "Execute Test"
strClick   = "Click"                               'Click
strSync    = "Sync"                                'Sync
strBack    = "Back"                                'Back

Execute strBrowser & "." & strPage & "." & strText & "." & strEvent
Execute strBrowser & "." & strPage & "." & strButton & "." & strClick
Execute strBrowser & "." & strSync
Execute strBrowser & "." & strBack

以上代码与下面的QTP脚本有同样效果:

Browser("title:=.*Google.*").Page("title:=.*Google.*").WebEdit("name:=q").Set "Execute Test"
Browser("title:=.*Google.*").Page("title:=.*Google.*").WebButton("value:=Google Search").Click
Browser("title:=.*Google.*").Sync
Browser("title:=.*Google.*").Back
分享到:
评论

相关推荐

    VBS函数大集合

    在VBScript中,函数和运算符是编程的重要组成部分,它们用于执行特定任务和操作。以下是一些在VBScript中常用的函数和运算符的详细解释: 1. **Abs函数**:返回一个数的绝对值,例如`Abs(-5)`将返回5。 2. **And...

    Eval 函数 | Execute 语句 | ExecuteGlobal 语句使用说明|angluo-asp-32985.pdf

    在使用Eval函数和Execute语句时,还需要注意VBScript中的一个特性,即赋值运算符(=)与比较运算符(==)的不同。在VBScript中,表达式x=y既可能被解释为赋值语句,也可能被解释为比较x和y是否相等的表达式。Eval函数...

    Z.Expressions.Eval.2.4.2

    3. **可扩展性**: 开发者可以通过自定义函数和操作符来扩展其表达式处理能力,满足特定应用需求。 4. **性能优化**: 通过高效的编译机制,Z.Expressions.Eval 可以快速编译表达式并生成高效的执行代码。 5. **类型...

    python重要函数eval多种用法解析

    这篇文章主要介绍了python重要函数eval多种用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.参数会作为一个 Python 表达式(从技术上说是一个条件...

    VBS函数集合

    以下是一些VBS中常用的关键函数和概念的详细解释: 1. **Abs函数**:返回一个数值的绝对值,无论这个数值是正还是负。 2. **And运算符**:在逻辑表达式中,如果两个表达式都为真,则结果为真,否则为假。 3. **...

    vbs函数大全.pdf

    本文将详细解析“vbs函数大全”中提及的一些关键函数和概念。 1. **Abs函数**:返回一个数值的绝对值,例如`Abs(-5)`将返回5,消除数字前面的负号。 2. **And运算符**:进行逻辑与操作,只有当两边的表达式都为真...

    java实现eval函数

    在Java编程语言中,`eval`函数通常与JavaScript关联,因为JavaScript有一个内置的`eval`函数,它能够解析并执行一个字符串作为JavaScript代码。然而,Java本身并不直接提供类似的功能。`eval`函数在Java中并不是标准...

    eval函数的一些用法

    本篇文章将深入探讨`eval()`函数的一些用法,并结合源码分析其工作原理和潜在的安全风险。 一、`eval()`函数的基本概念 `eval()`函数接收一个参数,这个参数必须是一个字符串。在执行时,`eval()`会将这个字符串...

    Javascript中eval函数的用法

    JavaScript 中 eval 函数的用法 JavaScript 中的 eval 函数是一个非常强大且灵活的函数,可以将一个字符串当作一个 JavaScript 表达式来执行。正如我们在上面的描述中所看到的,eval 函数可以将一个字符串解释成 ...

    Python的eval函数写的eval-calc(计算器)

    Python的eval函数写的eval_calc(计算器) 进行了多重符号判断,可以在很大程度上帮助孩子们学习。

    计算机vbs函数大全.pdf

    41. **Eval函数**:计算字符串表达式并返回结果。 42. **Execute方法**:根据字符串执行正则表达式。 43. **Execute语句**:执行单个或多个语句。 44. **Exit语句**:跳出当前循环或函数。 45. **Exp函数**:...

    javascript 自定义eval函数实现

    在本讨论中,我们将深入探讨如何自定义`eval()`函数以提高代码的安全性和效率,同时也会涉及到JavaScript的动态执行特性以及其在实际开发中的应用。 首先,`eval()`的默认行为是将其接收到的字符串当作JavaScript...

    ASP Eval、Execute、ExecuteGlobal区别分析

    总结来说,Eval、Execute和ExecuteGlobal这三个语句的主要区别在于它们处理的范围和方式。Eval用来执行表达式并返回值,Execute用来执行一个或多个语句但不返回值,而ExecuteGlobal用来在全局范围内执行一个或多个...

    用C语言实现eval函数.zip

    `eval`函数通常用于执行字符串形式的代码,这在C语言中并不直接支持,因为C是一种静态类型的语言,它的特性不包括在运行时解析和执行动态代码。 在C语言中,要实现类似的功能,我们需要理解编译原理、词法分析、...

    2020年EVAL 函数EXECUTEGLOBAL 语句使用说明.pdf

    在VBScript中,`Eval`函数和`Execute`、`ExecuteGlobal`语句是三个重要的动态执行代码的工具,它们各自有不同的用途和特性。 `Eval`函数的主要功能是计算一个字符串表达式,并返回表达式的值。它适用于需要动态计算...

    reset_jetbrains_eval_windows.vbs

    可以无限重置

    Python中函数eval和ast.literal_eval的区别详解

    ### Python中函数eval和ast.literal_eval的区别详解 #### 前言 在Python编程中,经常需要处理字符串与各种数据类型(如列表、元组、字典)之间的转换。为了实现这种转换,Python提供了`eval()`函数。然而,`eval()...

Global site tag (gtag.js) - Google Analytics