whmbboy 发表于 2009-6-2 16:33:15

刚学QTP就碰到个麻烦的问题~~继续请教中~

当我在这个页面选中 aanew w2这一项时,录下的脚本是这个
Dialog("Select Project to Login").WinTreeView("Open issues owned by anewa ").Select "aanew W2"
但回放时说不能识别
我想是不是因为这个WinTreeView的控件名不固定造成的? 因为它后面还跟着登录的时间 请看图
请问,那我应该怎么做才能正确回放?
http://p0.images22.51img1.com/6000/whmbboy/04e984c007efdc65fb3e82c2f4222b22.jpg

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

[ 本帖最后由 whmbboy 于 2009-6-4 08:49 编辑 ]

dreamever 发表于 2009-6-2 17:28:53

你脚本中的那个WinTreeView对象是哪个?我怎么看着应该是下面的那个下拉列表框啊,和上面你标红线的地方貌似没什么关系。
winTreeView控件如果提供了双击事件,那么它应该是支持的。如果说不支持的解决方法,还得麻烦楼主把你的脚本、错误提示、截图贴出来,不是给你找麻烦,没有这些信息的话让别人怎么分析啊?

saryzhang 发表于 2009-6-2 17:41:26

我觉得WinTreeView 读的ms 是 “Open issues owned by anewa anewa (Date and Time), 因为时间和日期是在变化的,所以你运行的时候,QTP 有可能读出的属性是不正确的,所以出了问题。如果想让QTP 认出来的话,建议你把Date and time) 那块用变量代替,然后变量的值是当前日期和时间。

jifeng 发表于 2009-6-2 17:56:38

看一下你语句中两个对象是不是和时间有关系,不能单纯用界面上的去判断的。

1楼正解

liuxl 发表于 2009-6-2 18:17:41

用别的工具很多,不知道这里可不可以用通配符

Eric2515 发表于 2009-6-2 19:59:16

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:59

试试描述性编程

whmbboy 发表于 2009-6-3 09:12:33

原帖由 dreamever 于 2009-6-2 17:28 发表 http://bbs.51testing.com/images/common/back.gif
你脚本中的那个WinTreeView对象是哪个?我怎么看着应该是下面的那个下拉列表框啊,和上面你标红线的地方貌似没什么关系。
winTreeView控件如果提供了双击事件,那么它应该是支持的。如果说不支持的解决方法,还得麻 ...


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

2. 不好意思,附上脚本的出错信息
http://p6.images22.51img1.com/6000/whmbboy/67f004c6e6cb95fece5a64c957c9ca18.jpg
Object SPY 查看这个控件属性如图
http://p4.images22.51img1.com/6000/whmbboy/45058656a4bb95a289e92f4f82429acb.jpg


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

[ 本帖最后由 whmbboy 于 2009-6-3 09:16 编辑 ]

saryzhang 发表于 2009-6-3 17:38:21

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:26

不要用attached text来识别那个下拉列表了,用Class Name吧,毕竟你的那个界面只有一个下拉列表,即使用Class Name应该会只识别出一个对象来,不会混淆。

whmbboy 发表于 2009-6-3 20:38:29

刚运行了 saryzhang大哥的脚本,还是不能通过。。。
偶是菜鸟啊。。。啥是正则表达式都不知道~~呵呵

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

saryzhang 发表于 2009-6-4 15:19:23

声明一下我不是大哥,是个girl,呵呵。
你的不过报的错和以前是一样的吗?

intothestorm 发表于 2009-6-4 18:22:30

看不到图。。。如果控件名称是变化的,在对象仓库里将控件名参数化。

blizzardlyk 发表于 2009-6-5 09:24:25

原帖由 saryzhang 于 2009-6-3 17:38 发表 http://bbs.51testing.com/images/common/back.gif
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:34

还是有缺陷,当月份和日期为小于10的时候,返回是"X"而不是"0X",所以还是要加上判断再做处理.
是否可以尝试用其他属性去描述,因为时间这个不确定因素太大,也许系统处理时间有间隔,导致返回值和实际对象属性之间产生偏差.

ziheng198688 发表于 2009-6-5 15:59:50

原帖由 blizzardlyk 于 2009-6-5 09:27 发表 http://bbs.51testing.com/images/common/back.gif
还是有缺陷,当月份和日期为小于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:11

回复 12# 的帖子

Ho..
Sorry...

谢谢大家
看来真遇到个麻烦问题。。呵呵。。。:victory:

onlonely 发表于 2009-6-7 15:24:54

还的确挺菜的菜鸟,
正则表达匹配是常用的功能了.
这样,你看我附件中的图片,设置attached text属性值的正则表达式,并且吧多余的属性删除就可以了.记住,那个勾也是必须勾上的.
最简单的正则就是吧不确定的都匹配掉,就不用考虑格式问题. .
页: [1]
查看完整版本: 刚学QTP就碰到个麻烦的问题~~继续请教中~