51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2789|回复: 11
打印 上一主题 下一主题

[原创] 关于勾选固定checkbox的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-12-9 11:59:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


比如说建了项目QTP,在审核时通过比对项目名称QTP来勾选checkbox,而不是通过checkbox的属性来勾选,请教应该怎么写代码?谢谢

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-12-9 12:51:16 | 只看该作者
GetRowWithCellText
Description
Returns the number of the first row found that contains a cell with the specified text.
Syntax
object.GetRowWithCellText (Text, [Column], [StartFromRow])
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2008-12-9 12:55:37 | 只看该作者
    先使用 WebTable 的 GetRowWithCellText  得到你要点击的行数,然后点击此行的 checkbox 即可。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2008-12-9 12:57:36 | 只看该作者
    其实只要能得到 你要点击的行数,然后点击此行的任何Webelement 也可以实现点击此行的 checkbox 的效果。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2008-12-9 13:28:03 | 只看该作者
    谢谢两位,代码是
    Dim Row
    set Row = Description.Create()
    Row = Browser("上海市电力公司工程招投标管理系统工程招投标管理系统").Page("上海电力公司--工程招标管理系统").Frame("mainboard_2").WebTable("name:=projectID").GetRowWithCellText("WIN")
    Msgbox Row
    Browser("上海市电力公司工程招投标管理系统工程招投标管理系统").Page("上海电力公司--工程招标管理系统").Frame("mainboard_2").WebCheckBox("html id:=projectID_"&Row-1).Set "ON"

    可以找到指定的checkbox了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2008-12-9 13:59:41 | 只看该作者
    还有个问题,为什么常量用参数代替时,得到的行数会出错,比如
    .WebTable("name:=projectID").GetRowWithCellText("WIN")  得到WIN项目所在行数为2
    而用const Project ="WIN"
    .WebTable("name:=projectID").GetRowWithCellText(Project )   得到WIN项目所在行数为3?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2008-12-9 15:02:05 | 只看该作者
    原帖由 shuishixingyu 于 2008-12-9 13:59 发表
    还有个问题,为什么常量用参数代替时,得到的行数会出错,比如
    .WebTable("name:=projectID").GetRowWithCellText("WIN")  得到WIN项目所在行数为2
    而用const Project ="WIN"
    .WebTable("name:=projectID").GetRo ...


    我尝试了你说的Const定义的方法,没有发现行数和之前不一样的情况.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2008-12-9 15:08:40 | 只看该作者
    好像是前面代码写的有问题,我试了好多遍,得出的行数都比正确行数多了1,固定值也这样,能不能帮我代码看下,哪错了?谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-12-9 15:50:13 | 只看该作者
    像你那表,行和列肯定是从表头开始算的~~也就是你所谓的第一行其实是:图片中的那几个标题(项目编号...),有时候甚至提示的那个什么下表就开始算第一行了~~~你试着按这样算就OK了。。其他列应该不变。。。

    [ 本帖最后由 鹭岛 于 2008-12-9 15:56 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
    发表于 2008-12-9 15:53:07 | 只看该作者
    通常一个WebTable的实际结构跟看到的结构是不一样的。例如你看到“WIN”是在这个WebTable的第二行,但实际上“WIN”是在第三行。如果对GetRowWithCellText得到的行数有怀疑,可以GetCellData来验证一下。用GetCellData可以到某个单元格里面的内容。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
     楼主| 发表于 2008-12-9 16:32:48 | 只看该作者
    确实是这样,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-12-19 23:02:59 | 只看该作者
    思路是先遍历table找到QTP所在的行,记为i,在check对应的checkbox
    totalRowNumber=Browser().Page().Frame().WebTable().RowCount
    For i=0 to totalRowNumber
    if Browser().Page().Frame().WebTable().childitem(i,3,"WebElement",0)="QTP" Then
    Browser().Page().Frame().WebTable().childitem(i,1,"WebCheckBox",0).Set “on”
    else
    end if
    Next

    [ 本帖最后由 郝宁 于 2008-12-20 21:53 编辑 ]
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-15 02:16 , Processed in 0.075924 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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