51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3746|回复: 18
打印 上一主题 下一主题

[原创] 参数化下拉列表框

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-9-26 19:15:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
情况:
        系统的下拉列表框不是正规的select标记的那种,而是这样(input标记的)
       <th class="LABEL" style="width:15%"><span class="LABEL" id="dto(alc021_in)_label"><font color=red><b>*</b></font>伤害程度:</span></th><td class="LABEL" style="width:15%" nowrap><table style='border:1px gray solid' width=100% border=0 cellspacing=0 cellpadding=0><tr><td><input type="text" name="descdto(alc021_in)" value="" codeFieldId="dto_alc021_in" data="0,死亡|1,重伤|2,轻伤|3,其它|" onfocus="fnTabIt1()" style="border:0px" isRequired="true" showMode="1" collection="ALC021" id="dto_alc021_indesc" style="behavior:url(/yhcp2/resource/javascript/slct.htc);" class="LABEL"></td><td style='width:13px' onclick="dto_alc021_indesc.click()"><span style="overflow:hidden;cursor:default;font-family:webdings;font-size:18px;color:#483D8B;text-align:center;">6</span></td></tr></table><input type="hidden" name="dto(alc021_in)" value="" id="dto_alc021_in"></td><td width="1%">&nbsp</td>
录制脚本的时候按照录制的情况选择 “3 其它”这个选项:
1 点击下拉列表的向下的箭头→鼠标停在“3”的位置点击(选择3 其它)
Browser("欢迎光临银海协同平台").Page("成都社保二版系统").Frame("mainFrame_2").WebElement("6").Click
Page("Page").WebElement("3").Click
2 点击下拉列表的向下的箭头→鼠标停在“其它” 的位置点击(选择3 其它)
Browser("欢迎光临银海协同平台").Page("成都社保二版系统").Frame("mainFrame_2").WebElement("6").Click
Page("Page").WebElement("其它").Click

请教高手们怎么参数化这个下拉列表框?回放的时候可以选择下拉框其它的值
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-9-27 08:52:18 | 只看该作者
把那个参数放到表格中,然后写个循环读表格的数据吧.
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2006-9-27 09:04:07 | 只看该作者
WebElement("其它").Click这边用描述性编程表示,然后就可以参数化了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-9-27 11:12:40 | 只看该作者
按照xiaonan和麦子华华的帮助做法实验了两种企图参数化的方法
均在使用描述性编程之后,提示信息:对象不支持属性或方法
1 数据库表
我在当前的action的数据表中添加了字段:txt
语句是:page("Page").WebElement("html tag=TD", "innertext=" & DataTable("txt", dtLocalSheet)).Click

2 action参数
action properties > Parameters >Input parameters中增加一个参数:txt(不知道这里怎么设置它的value,怎么只有一行呢?)
语句:Page("Page").WebElement("html tag=TD", "innertext=" & Parameter("txt")).Click

但是两种方法都提示是:对象不支持属性或方法
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2006-9-27 11:39:41 | 只看该作者
把对象库里面“其他”这个对象的图片传上来

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-9-27 11:50:05 | 只看该作者
page("Page").WebElement("html tag=TD", "innertext=" & DataTable("txt", dtLocalSheet)).Click

晕,你能不能不要这么直接把DataTable("txt", dtLocalSheet)这样的取值也写进去啊?不能分开写的啊?先放在一个变量里,再附给它.你这样怎么去调试问题啊?最简单朴实的程序是最稳定的.
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-9-27 17:31:11 | 只看该作者
已经修改了脚本

现在的是:
txt =  DataTable("degree", dtLocalSheet)
page("Page").WebElement("html tag=TD", "innertext=" & txt).Click

但是还是提示:对象不支持此方法或属性

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2006-9-27 17:33:05 | 只看该作者
我已经在Action localsheet添加了相关字段的值
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2006-9-27 17:53:41 | 只看该作者
编程规范的问题不影响结果啊。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2006-9-27 19:52:04 | 只看该作者
汗...貌似我也是这样解决的,把下拉的值,放到sheet里,再读出来
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2006-9-28 09:32:41 | 只看该作者
你先直接弄个固定的值给它看看,
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2006-9-28 10:24:31 | 只看该作者
page("Page").WebElement("html tag=TD", "innertext=" & DataTable("txt", dtLocalSheet)).Click

= 前面怎么都没 "  :  "
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2006-9-28 10:34:04 | 只看该作者
呵呵,恩  skyzhu  比较细心啊,不愧为从51出来的啊
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2006-9-28 17:38:55 | 只看该作者
首先要感谢xiaonan和skyzhu
现在在“=”前面都加上了“:”
错误信息:(图)

由于我才使用QTP5天。好多地方需要大家帮忙
谢谢了~~

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2006-9-28 19:57:29 | 只看该作者
提示对象找不到,说明对象的描述还是有问题。
先直接把对象add到对象库,在对象库中highlight该对象,看能否找到这个对象;
如果能,改成描述方式,用固定值试试,看能否找到这个对象;
如果能,再改成参数试试。

一步一步逼近成功,我就不信搞不定它!
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2006-9-28 20:13:03 | 只看该作者
点retry..不行的话,add对象。。。
回复 支持 反对

使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    17#
    发表于 2006-9-29 10:52:24 | 只看该作者

    To feitotti

    找不到对象是在运行脚本的过程中最常见的错误。你到对象库里面看看WebElement 这个对象的属性和它实际运行时的属性有什么不同,是不是对象库中识别此对象的属性的属性值在运行时有了变化,还是有什么别的原因?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
     楼主| 发表于 2006-9-30 16:34:37 | 只看该作者
    谢谢walker1020
    现在的情况是如果用固定值
    Page("Page").WebElement("其它").Click
    这样是可以回放成功的。但是我就是不知道怎么参数话这个地方
    对象库里面找不到webelement这个对象
    我企图将这个webelement加到对象库中间却怎么都加不进去
    我添加这个对象的方法是先在应用程序中点下拉列表框,出现了下拉的选项(图1)
    然后QTP中Add Object,再Alt+Tab切换到应用程序界面,单击其中一个选项。
    出现的对话框(图2),但是就是添加不能把这个对象添加到对象库里去
    另外我用object spy,在下拉出现的page中1 重伤的位置点一下,其属性(图3)
    其它的对应   2 轻伤-webelement2,
                           3 其它-webelement3,
                           0 死亡-webelement0
    在下拉page的下面空白处spy,属性(图4),webelement
    我比较迷茫的就是:1 怎么添加不了这个下拉动作后出现page这个对象到对象库中间
                                        2 如果参数化(回放的时候可以选择不同值进行click)是添加对象应该是webelement(?)

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.1]测试小兵

    19#
    发表于 2006-10-12 21:51:52 | 只看该作者
    1, 下拉动作的对象都是webelement 这一个对象,无论是 2 轻伤-webelement2, 3 其它-webelement3,还是 0 死亡-webelement0

    2,你需要对表示webelement 是重伤、轻伤还是死亡的属性进行参数化。 在论坛上有不少关于参数化的帖子,请自己搜索一下。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-25 23:21 , Processed in 0.077708 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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