51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2222|回复: 7
打印 上一主题 下一主题

[求助] 调用函数失败

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-11-12 13:07:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了一个函数,用来找到webtable中第3列的值是test1的行号,然后勾选该行前面的复选框, 然后调用该函数,可是执行后,并没有勾选任何复选框。但是不用函数,却可以勾选到要找的复选框。请各位帮忙看看。
Function  findtext(text)
Dim  i,rows,pages,m,page
set objs=Browser("NYBOSS系统登陆").Page("NYBOSS系统").Frame("result_6").WebTable("产品编码")
rows=Browser("NYBOSS系统登陆").Page("NYBOSS系统").Frame("result_6").WebTable("产品编码").rowcount
page=Browser("NYBOSS系统登陆").Page("NYBOSS系统").Frame("result_6").WebTable("1页/2页 共39条").GetROProperty("innertext")
pages=Cint(mid(page,11,1))
For m=1 to pages
      For i=1 to rows
         If  trim(objs.getcelldata(i,3))= "text"  then   
                Browser("NYBOSS系统登陆").Page("NYBOSS系统").Frame("result_6").WebCheckBox("index:="&i-1).Set "ON"
            Exit for
       end if
       Next
Next
End Function
然后在脚本中调用该函数:  findtext("test1"),执行完这步后,并未勾选任何复选框;
但是如果函数里的text不用参数表示,直接把test1写到函数里面,改为:If  trim(objs.getcelldata(i,3))= "test1"  then,
然后调用函数时写为: findtext(), 这样却可以勾选上要找的复选框。不知什么原因?

[ 本帖最后由 marygao929 于 2007-11-12 13:09 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2007-11-12 13:25:58 | 只看该作者
    Replace  trim(objs.getcelldata(i,3))= "text"  with trim(objs.getcelldata(i,3))= text first and then try it again
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2007-11-12 14:00:52 | 只看该作者
    楼主可以把下面的代码直接复制到 QTP 的 Expert View里面,然后运行:

    Function   find(text)
          a = "2"
       If   a = "text"  Then
           Msgbox(" 1")
       Else
         Msgbox("2")
       End If
    End Function

    find("2")
    ==================================
    运行 find("2")  后,输出结果是  2
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2007-11-12 14:01:15 | 只看该作者
    楼主可以把下面的代码直接复制到 QTP 的 Expert View里面,然后运行:

    Function   find(text)
          a = "2"
       If   a = text Then
           Msgbox(" 1")
       Else
         Msgbox("2")
       End If
    End Function

    find("2")
    ==================================
    运行 find("2")  后,输出结果是  1

    [ 本帖最后由 walker1020 于 2007-11-12 14:23 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2007-11-12 14:48:29 | 只看该作者
    你这个函数中,text是参数,不需要加引号
    另外没有翻页的操作,如果出现在第2页也还是勾不上
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-11-12 14:54:01 | 只看该作者
    还有
    Browser("NYBOSS系统登陆").Page("NYBOSS系统").Frame("result_6").WebCheckBox("index:="&i-1).Set "ON"

    这样的方式很不好
    最好用
    set chkBx=objs.childitem(i,3,"WebCheckBox",0)
    chkBx.set "ON"
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
     楼主| 发表于 2007-11-12 18:21:56 | 只看该作者
    改了:1)set obj= Browser("NYBOSS系统登陆").Page("NYBOSS系统").Frame("result_6").WebCheckBox("index:="&i-1)
               obj.Set "ON"
    2)If  trim(objs.getcelldata(i,3))=text then
    最后还是用findtext("test1")对了
    多谢两位

    [ 本帖最后由 marygao929 于 2007-11-12 18:27 编辑 ]
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2007-11-12 21:14:06 | 只看该作者
    建议楼主去做一段时间的开发,这样有许多问题就会避免了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-27 02:26 , Processed in 0.073847 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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