51Testing软件测试论坛

标题: 刚学QTP就碰到个麻烦的问题~~继续请教中~ [打印本页]

作者: whmbboy    时间: 2009-6-2 16:33
标题: 刚学QTP就碰到个麻烦的问题~~继续请教中~
当我在这个页面选中 aanew w2这一项时,录下的脚本是这个
Dialog("Select Project to Login").WinTreeView("Open issues owned by anewa ").Select "aanew W2"
但回放时说不能识别
我想是不是因为这个WinTreeView的控件名不固定造成的? 因为它后面还跟着登录的时间 请看图
请问,那我应该怎么做才能正确回放?


顺便问问,像这种winTreeView里的双击事件貌似回放时也不支持,有什么办法解决么?继续

[ 本帖最后由 whmbboy 于 2009-6-4 08:49 编辑 ]
作者: dreamever    时间: 2009-6-2 17:28
你脚本中的那个WinTreeView对象是哪个?我怎么看着应该是下面的那个下拉列表框啊,和上面你标红线的地方貌似没什么关系。
winTreeView控件如果提供了双击事件,那么它应该是支持的。如果说不支持的解决方法,还得麻烦楼主把你的脚本、错误提示、截图贴出来,不是给你找麻烦,没有这些信息的话让别人怎么分析啊?
作者: saryzhang    时间: 2009-6-2 17:41
我觉得WinTreeView 读的ms 是 “Open issues owned by anewa anewa (Date and Time), 因为时间和日期是在变化的,所以你运行的时候,QTP 有可能读出的属性是不正确的,所以出了问题。如果想让QTP 认出来的话,建议你把Date and time) 那块用变量代替,然后变量的值是当前日期和时间。
作者: jifeng    时间: 2009-6-2 17:56
看一下你语句中两个对象是不是和时间有关系,不能单纯用界面上的去判断的。

1楼正解
作者: liuxl    时间: 2009-6-2 18:17
用别的工具很多,不知道这里可不可以用通配符
作者: Eric2515    时间: 2009-6-2 19:59
Dialog("Select Project to Login").WinTreeView("Open issues owned by anewa ").Select "aanew W2"
1.如果 WinTreeView的控件名是动态的话,使用正则表达式.
2.确定你的对象值是aanew W2;是实际代码中的值,而不是界面上的。可以用SPY来检查。
作者: peterz    时间: 2009-6-2 21:27
试试描述性编程
作者: whmbboy    时间: 2009-6-3 09:12
原帖由 dreamever 于 2009-6-2 17:28 发表
你脚本中的那个WinTreeView对象是哪个?我怎么看着应该是下面的那个下拉列表框啊,和上面你标红线的地方貌似没什么关系。
winTreeView控件如果提供了双击事件,那么它应该是支持的。如果说不支持的解决方法,还得麻 ...



1. 我录的那个脚本是在执行选择那个item时的,下面的下拉框的脚本是这个
Dialog("Select Project to Login").WinComboBox("Select Project:").Select "aanew W2" 能正常回放

2. 不好意思,附上脚本的出错信息

Object SPY 查看这个控件属性如图



3.描述性程序还不大会,还望大大们指点啊·

[ 本帖最后由 whmbboy 于 2009-6-3 09:16 编辑 ]
作者: saryzhang    时间: 2009-6-3 17:38
Dim a, b
a=Date()
b=Time()
Dialog("Select Project to Login").WinTreeView("attached text:=Open issues owned by anewa anewa (" &a &" " &b &")").Select "aanew W2" 不晓得这样可不可以。
我正则表达式也不是很熟,目前只想到这个比较笨的办法。如果正则表达式比较熟悉的话,应该是最有效的方法了。
作者: dreamever    时间: 2009-6-3 18:06
不要用attached text来识别那个下拉列表了,用Class Name吧,毕竟你的那个界面只有一个下拉列表,即使用Class Name应该会只识别出一个对象来,不会混淆。
作者: whmbboy    时间: 2009-6-3 20:38
刚运行了 saryzhang大哥的脚本,还是不能通过。。。
偶是菜鸟啊。。。啥是正则表达式都不知道~~呵呵

还有啊,请教下dreamever,用Class Name 我应该怎么做?

作者: saryzhang    时间: 2009-6-4 15:19
声明一下我不是大哥,是个girl,呵呵。
你的不过报的错和以前是一样的吗?
作者: intothestorm    时间: 2009-6-4 18:22
看不到图。。。如果控件名称是变化的,在对象仓库里将控件名参数化。
作者: blizzardlyk    时间: 2009-6-5 09:24
原帖由 saryzhang 于 2009-6-3 17:38 发表
Dim a, b
a=Date()
b=Time()
Dialog("Select Project to Login").WinTreeView("attached text:=Open issues owned by anewa anewa (" &a &" " &b &")").Select "aanew W2" 不晓得这样可不可以。
我正则表达式也不 ...

问题出在a=Date(),b=Time()获取的时间格式和 对象属性描述的时间格式不一致:  一个是YYYY-MM-DD,另外一个是YY/MM/DD,所以无法识别到对象,后面的hh:mm:ss 也要做修改,最后还有个上午,下午的判定
应该将 DATE和TIME获取的时间函数做字符喘处理:
a=mid(year(date),3,2)&"/"&month(date)&"/"&day(date),抛砖引玉,后面的相信LZ可以自己做相应修改了吧.
作者: blizzardlyk    时间: 2009-6-5 09:27
还是有缺陷,当月份和日期为小于10的时候,返回是"X"而不是"0X",所以还是要加上判断再做处理.
是否可以尝试用其他属性去描述,因为时间这个不确定因素太大,也许系统处理时间有间隔,导致返回值和实际对象属性之间产生偏差.
作者: ziheng198688    时间: 2009-6-5 15:59
原帖由 blizzardlyk 于 2009-6-5 09:27 发表
还是有缺陷,当月份和日期为小于10的时候,返回是"X"而不是"0X",所以还是要加上判断再做处理.
是否可以尝试用其他属性去描述,因为时间这个不确定因素太大,也许系统处理时间有间隔,导致返回值和实际对象属性之间产生偏 ...

大家可以尝试使用如下代码来格式化系统时间
Set objTime=DotNetFactory.CreateInstance("System.DateTime")
objTime.Now.toString("MM/dd/yyyy h:mm:ss tt")
作者: whmbboy    时间: 2009-6-7 12:15
标题: 回复 12# 的帖子
Ho..
Sorry...

谢谢大家
看来真遇到个麻烦问题。。呵呵。。。
作者: onlonely    时间: 2009-6-7 15:24
还的确挺菜的菜鸟,
正则表达匹配是常用的功能了.
这样,你看我附件中的图片,设置attached text属性值的正则表达式,并且吧多余的属性删除就可以了.记住,那个勾也是必须勾上的.
最简单的正则就是吧不确定的都匹配掉,就不用考虑格式问题. .




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