51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10951|回复: 28
打印 上一主题 下一主题

[求助] 如何正确使用括号

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-9-8 12:56:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大哥大姐,有没有QTP的Object Model Reference中文版,小弟看英文版特别是关于函数和括号的使用方面实在是搞不清细节!大概意思懂了!
在此求各位了!万分感谢!

[ 本帖最后由 walker1020 于 2006-9-11 16:52 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2006-9-8 12:57:41 | 只看该作者

不好意思忘了标题!-------QTP的Object Model Reference中文版

汗!
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2006-9-8 13:09:28 | 只看该作者

    给楼主的两个建议

    1, 把Object Model Reference 传上来,这样可以帮你看看关于函数和括号的使用方面的细节;
    2,你自己也可以写一些代码来弄明白函数和括号的具体使用。这样你对函数和括号的使用更有印象。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2006-9-8 13:52:32 | 只看该作者
    When programming in VBScript, it is important that you follow the rules for using or not using parentheses () in your statements.

    You must use parentheses around method arguments if you are calling a method that returns a value and you are using the return value. For example, use parentheses around method arguments if you are returning a value to a variable, if you are using the method in an If statement, or if you are using the Call keyword to call an action. You also need to add parentheses around the name of a checkpoint if you want to retrieve its return value.

    Tip: If you receive an Expected end of statement error message when running a step in your test, it may indicate that you need to add parentheses around the arguments of the step's method.

    Following are several examples showing when to use or not use parentheses.

    The following example requires parentheses around method arguments, since it returns a value to a variable.

    Set WebEditObj = Browser("Mercury Tours").Page("Method of Payment").WebTable("FirstName").ChildItem (8, 2, "WebEdit", 0)

    WebEditObj.Set "Example"

    在上面两句中如果不使用webEditObj,应该怎么写!
    应该这么写么:Browser("Mercury Tours").Page("Method of Payment").WebTable("FirstName").ChildItem 8, 2, "WebEdit", 0.Set "Example"

    The following example requires parentheses around method arguments, since Call is being used.

    Call RunAction("BookFlight", oneIteration)

    如果不用Call,是不是应该这样写:RunAction "BookFlight",oneIteration

    The following example requires parentheses around method arguments, since the method is used in an If statement.

    If Browser("index").Page("index").Link("All kind of").WaitProperty("attribute/readyState", "complete", 4) Then Browser("index").Page("index").Link("All kind of").Click

    不用if的话,是不是这样写:Browser("index").Page("index").Link("All kind of").WaitProperty "attribute/readyState", "complete", 4
    Browser("index").Page("index").Link "All kind of".Click




    The following example requires parentheses around method arguments, since it returns the value of the checkpoint.

    a = Browser("MyBrowser").Page("MyPage").Check (checkPoint("MyProperty"))

    Browser("MyBrowser").Page("MyPage").Check checkPoint("MyProperty")

    The following example does not require parentheses around the Click method arguments, since it does not return a value.

    Browser("Mercury Tours").Page("Method of Payment").WebTable("FirstName").Click 3,4

    如果要赋值给变量的话,是不是这样写:
    a =Browser("Mercury Tours").Page("Method of Payment").WebTable("FirstName").Click(3,4)
    假设Click有返回值
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    5#
    发表于 2006-9-8 14:37:57 | 只看该作者
    你提的问题有一定的挑战性,所以我乐意为你解答。呵呵!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    6#
    发表于 2006-9-8 15:03:35 | 只看该作者
    刚才把例子之前的英文翻译出来了,供你参考:

    使用VbScript 进行编程的时候,你写的语句必须要遵守使用或不使用括号的规定。

    如果你调用一个有返回值的函数并且要使用此返回值时,你就必须要用括号把函数的参数括起来。在下列情况,你就必须要使用括号把函数的参数括起来:
    1,        你把函数的返回值赋给一个变量的时候;
    2,        在If 语句中你使用函数的时候;
    3,        使用Call这个关键词来调用一个action的时候。
    如果你希望得到检查点的返回值,那么你也需要用括号把检查点(checkpoint) 的名字括起来。

    提示:如果你在测试中运行脚本时,看到一个“语句缺少结束符” (Expected end of statement)错误信息,那么这预示着你需要用括号把这步操作中的函数的参数括起来。

    [ 本帖最后由 walker1020 于 2007-7-19 23:39 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2006-9-8 15:09:47 | 只看该作者
    楼主的那四个问题还需要我回答吗?其中,关于第四个问题,你的 的思路明显有问题,点击( Click ) 这个函数有返回值吗?你非要返回一个值,这合理吗?!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2006-9-8 15:14:14 | 只看该作者
    个人感想:都是 VbScript 惹的祸!sdlkfj5   因为VbScript的语法非常灵活,可以加括号,也可以不加括号,所以在此问题上就很容易犯迷糊了。如果你想得到函数的返回值,那么就必须使用括号,否则可以使用括号,也可以不使用括号。 我的经验是:自己写脚本时,不管有没有返回值,对函数的参数都使用括号。这样肯定不会发生“语句缺少结束符” (Expected end of statement)错误信息。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
     楼主| 发表于 2006-9-8 15:22:08 | 只看该作者
    谢谢版主非常详细的解答!我非常喜欢你的最后一个回答!不管什么情况都使用括号,总不会错的!而且这样的话代码看起来很有条理!当然这是我的想法,毕竟自己是c/c++,java程序员啊,不用括号怎么看都不顺眼!
    再次感谢版主百忙之中的解答!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2006-9-8 15:23:38 | 只看该作者
    关于第四个问题,当然click是没有返回值的,我只是假设他有返回值,我那个语句是不是有写错!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2006-9-8 15:26:17 | 只看该作者
    对了,我还是想知道我改写那四个例子语句,是不是写对了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2006-9-8 15:59:12 | 只看该作者
    对了,楼主能否毫不吝啬地把 Object Model Reference 文档传上来?sdlkfj5
    楼主如果能把 这个文档 传上来,那楼主太伟大了。sdlkfj3

    [ 本帖最后由 walker1020 于 2006-9-8 16:14 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2006-9-8 16:03:27 | 只看该作者
    你根据你的理解和我的翻译,你 认为自己的改写 对不对呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
     楼主| 发表于 2006-9-8 17:14:14 | 只看该作者
    我认为是对的!整个objiect model reference传上来,我觉得不用吧,因为安装了qtp,就会有的。在Help->quitcktest professional Help中就有的亚
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    15#
    发表于 2006-9-8 17:42:27 | 只看该作者

    To 楼主

    你说的是 AutomationObjectModel.chm 这个文件吗?如果不是,能否把文件名说一下。
    如果单纯地从语法角度来看,你写的那些语句都是对的。
    要相信自己!只要你认为自己写的、做的都是对的,就要相信自己,就要坚持自己的立场!作为测试人员,千万不要被开发人员左右,更不要被他们牵着 “鼻子” 走! 呵呵!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2006-9-9 12:15:02 | 只看该作者
    实在不好意思拖了好久才回复,实在是公司事情太忙,昨晚加班到一点,请版主见谅!那个文件不是ObjectModelReference.chm而是GeneralHelp.chm,里面有内容包括:qtp user guide,qtp new feature guide,ObjectModelReference,VBScript Reference,大小大概21KB。以下是上传得文件。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    17#
    发表于 2006-9-11 09:24:46 | 只看该作者
    楼主辛苦呀,晚上都下班到一点。辛苦辛苦!谢谢楼主。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    18#
    发表于 2006-9-11 16:59:59 | 只看该作者
    原帖由 lileo 于 2006-9-8 15:22 发表
    谢谢版主非常详细的解答!我非常喜欢你的最后一个回答!不管什么情况都使用括号,总不会错的!而且这样的话代码看起来很有条理!当然这是我的想法,毕竟自己是c/c++,java程序员啊,不用括号怎么看都不顺眼!
    再次 ...


    如果做过开发(c/c++或java),那么你肯定知道函数的参数需要用括号括起来。这与函数有没有返回值没有关系。“不自由成习惯了,你就自由,而不会有任何的不自由。” 现在的 VBscript的函数的参数可以不需要用括号括起来,开始是一点也不习惯。如果让我选择,我宁愿要  C 或 Java 语言对语法的严格要求。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-2-16 04:34:12 | 只看该作者
    呵呵,我总是等等它报错了才...这下知道了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2007-5-24 00:33:27 | 只看该作者
    原帖由 walker1020 于 2006-9-11 16:59 发表


    如果做过开发(c/c++或java),那么你肯定知道函数的参数需要用括号括起来。这与函数有没有返回值没有关系。“不自由成习惯了,你就自由,而不会有任何的不自由。” 现在的 VBscript的函数的参数可以不需要 ...



    sdlkfj5 赞同

    要养成良好的编程习惯,最好都加括号

    java的编程习惯,个人认为是最好的,从QB到C到C++到TCL最后到VB,JAVA的无论是命名约定,还是编程风格,都认为是极好的。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-20 20:35 , Processed in 0.078875 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表