51Testing软件测试论坛

标题: 设置日期 [打印本页]

作者: zhuyuancan    时间: 2007-11-5 14:47
标题: 设置日期
有一个编辑框(不能有set或其他语句给其赋值),点击之后会弹出一日期选择控件(图1),那spy去查询年份位置的对象类为webelement。点击2007后日期控件如图2所示,年份位置会变成一选择列表,然后可以选择年份!!
用qtp录制的脚本如下:
Browser("鳌拜").Page("鳌拜").Frame("main").WebEdit("beginTime").Click
Browser("鳌拜").Page("鳌拜").Frame("meizzCalendarIframe").WebElement("WebTable").Click
Browser("鳌拜").Page("鳌拜").Frame("meizzCalendarIframe").WebList("tmpYearSelect").Select "2008"
Browser("鳌拜").Page("鳌拜").Frame("meizzCalendarIframe").WebElement("WebTable_2").Click
执行回放时却提示:(图3所示)

并且对象库中有此对象存在!

不知道大家有碰到这个情况的没有,怎么个解决法
作者: walker1020    时间: 2007-11-5 15:17
软件是用什么语言开发的? 加载相应的插件后试试
作者: zhuyuancan    时间: 2007-11-5 16:08
加上java插件后,对象库能加入页面中所有对象,但是对其进行录制时,expert view未录制到任何信息!!!问:原因为何?是插件装的有问题?(qtp9.2配qtp9.1的java插件)
作者: zhuyuancan    时间: 2007-11-5 17:05
加上插件后录制情况跟原来一样?如上上问?
作者: hsjzfling    时间: 2007-11-5 17:15
直接录制不上但能添加对象到对象库时,可以使用Step Generator单步添加操作

因为你的日期是变化的,则点击的日期对象也是会变化的,所以你要在对象库中将会变化的对象的相应属性值进行参数化,确保能动态识别对象

另外对于某日期控件的处理我在
http://bbs.51testing.com/viewthr ... 81&page=1#pid773911
中给出了一点处理方法,楼主可以参考下

[ 本帖最后由 hsjzfling 于 2007-11-5 17:20 编辑 ]
作者: pxwcypx    时间: 2007-11-5 17:51
关于日期的问题还真多啊哈哈,兄弟我给那个问题搞了几天嘿嘿,现在终于解决了你的问题和我的差不多啊,多亏hsjzfling老大帮忙啊,学这东西真累问题永远让你头疼。一起努力吧
作者: zhuyuancan    时间: 2007-11-5 18:25
呵呵!!要得要得!!多多沟通,多多研究
作者: zhuyuancan    时间: 2007-11-7 14:11
browser("abc").Page("abc").Frame("abc").WebEdit("beginTime").Click
Set oDesc = Description.Create()
oDesc("Class Name").Value = "WebElement"
oDesc("class").Value = "out"
Set WECollection = browser("abc").Page("abc").Frame("abc").WebTable("28").ChildObjects(oDesc)
当执行到最后一句时系统报general run error的错误!!!问题还真多!
作者: hsjzfling    时间: 2007-11-7 14:54
标题: 回复 8# 的帖子
oDesc("Class Name").Value = "WebElement" 改为oDesc("micclass").Value = "WebElement"
作者: zhuyuancan    时间: 2007-11-7 15:39
得到结果了!!凶悍啊!!!!但是有个疑问:我用object spy查询到这个日期控件中没有micclass这个属性!!!为什么在脚本就要这么设置呢?
作者: 看雪时节    时间: 2007-11-7 16:19
呵呵,和我的问题大同小异。
作者: hsjzfling    时间: 2007-11-7 16:26
标题: 回复 10# 的帖子
1、对象是没有一个叫"Class Name"的属性的,所以你使用它肯定得不到结果

2、个人理解:micclass属性是web中大多数对象的默认的主要识别属性之一,但是该属性是不会显示出来的,它的值就是对应对象的类名,比如WebTable,WebEdit,Link等等

PS: 还是你上道呀,这么长时间来只有你一个人记得送花~
作者: zhuyuancan    时间: 2007-11-7 16:29
呵呵!!做人要厚道嘛!!知识是无价的,一朵花算的了啥哦!!
作者: zhuyuancan    时间: 2007-11-7 16:36
接着问:
以前研究的都是如何去设置日期中哪天,,,这个好像只要是把所有对象都放入对象库就能解决了,,,现在的问题是:如何解决年和月?????还是如本帖所问,看大侠提供的其他帖子也不是很懂啊!!!
browser("abc").Page("abc").Frame("abc").WebEdit("beginTime").Click
Set oDesc = Description.Create()
oDesc("micclass").Value = "WebList"
oDesc("name").Value = "tmpMonthSelect"
Set WECollection = browser("default.jsp").Page("default.jsp").Frame("meizzCalendarIframe").ChildObjects(oDesc)
msgbox WECollection.count   '提示为1,就是说存在一个名为tmpMonthSelect"的weblist
那如何去选择相关的年份呢???比如我现在要选择的年份为2010年
作者: hsjzfling    时间: 2007-11-7 18:40
原帖由 zhuyuancan 于 2007-11-7 16:36 发表
那如何去选择相关的年份呢???比如我现在要选择的年份为2010年
browser ...


如果让你选择年份为2010年你在页面上是如何操作的呢,若有多种方式选择就都列出来一下
作者: pxwcypx    时间: 2007-11-8 09:44
是啊,老大帮我那么多次,一次花都没献过
BS下自己哈哈
作者: zhuyuancan    时间: 2007-11-8 09:46
只有一种方式:点击编辑框(webedit)就会弹出一日期选择控件,点击年份处,就会显示一下拉框!!然后选择年份!!!月份也是如此!!!(如本帖的贴图)
作者: hsjzfling    时间: 2007-11-8 10:09
既然操作步骤明确,对象又都可以识别,那就按部就班咯~
你的前几句都通过了,目前问题在WebList("tmpYearSelect")的选项识别出错,你确定WebList中的选项为"2008"??

然后就是将对象库中 WebList("tmpYearSelect")的部分属性的值参数化,比如包含"2007"等值的属性~
作者: danmy    时间: 2007-11-8 10:13
对于不能set 的日期编辑框可以直接赋值,注意赋值格式

Browser("鳌拜").Page("鳌拜").Frame("main").WebEdit("beginTime").object.value = "2007-11-8"

[ 本帖最后由 danmy 于 2007-11-8 10:14 编辑 ]
作者: zhuyuancan    时间: 2007-11-9 09:57
受益非浅啊!!再次表示感谢!!
作者: hxf    时间: 2007-11-15 10:35
你把这个弹出对话框中的所有的元素都得手动添加到对象库中,因为,没个元素就是一个对象。如果不添加进去,在回放的时候就会出错。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2