51Testing软件测试论坛

标题: 如何判断菜单中的关于是否是可用的 [打印本页]

作者: xp20683    时间: 2007-2-4 17:04
标题: 如何判断菜单中的关于是否是可用的
如何判断菜单中的关于是否是可用的?就是是否变灰?代码如下,但是执行不通过
b= Dialog("VCM").WinMenu("ContextMenu").GetItemProperty("关于(A)","Enabled")
     If b="true" Then
           reporter.ReportEvent 1,"关于项应是不可用的","failed"
      End If
图如附件中,我已经一个星期没解决这个问题了,郁闷啊
作者: wssgily    时间: 2007-2-4 17:21
呵呵.点一下,判断:如果弹出对话框就是能用了.
怎么没有想到用SPY呢,其实能弹出背后还是属性在起作用!我继续得向风过无息学习!

[ 本帖最后由 wssgily 于 2007-2-4 22:29 编辑 ]
作者: 风过无息    时间: 2007-2-4 21:15
用SPY看一下关于(A)控件的属性,确认一下使用哪个属性。
你可以用GetROProperty来获取当前属性
作者: xp20683    时间: 2007-2-5 09:05
那也得获得关于那个对象才对,用spy抓的是menu对象,组名看关于的属性啊
作者: xp20683    时间: 2007-2-5 09:06
那也得获得关于那个对象才对,用spy抓的是menu对象,还怎么看关于的属性啊
作者: 风过无息    时间: 2007-2-5 09:10
这个楼主需要看一下帮助手册上怎么使用了SPY了。
另外楼主执行不过的错误信息是什么呢?
作者: walker1020    时间: 2007-2-5 10:28
请参考 http://bbs.51testing.com/viewthread.php?tid=39063
作者: hehemeimei    时间: 2007-2-5 11:01
弱弱的问题,你是如何用SPY获得那个对象的属性的啊?我按住CTRL键后,松开CTRL后,抓不到这个关于的对象啊?
作者: walker1020    时间: 2007-2-5 13:02
原帖由 hehemeimei 于 2007-2-5 11:01 发表
弱弱的问题,你是如何用SPY获得那个对象的属性的啊?我按住CTRL键后,松开CTRL后,抓不到这个关于的对象啊?


首先打开要查看的对象所在的页面或者是使它成为当前窗口(如果已经打开的话),然后依次点击 QTP上的 Tools --> Object Spy...,然后再点击那个手形的按钮(这时会出现一个手形), 你把它放在你要查看的对象上面就可以了。这是查看对象的属性时常用的一个工具。
作者: xp20683    时间: 2007-2-5 13:29
你们说的都是知道的,但是你啊知道我用spy抓取menu抓取的对象windows对象,肯定是不对的,我用
b= Dialog("VCM").WinMenu("ContextMenu").GetItemProperty("关于(A)","Enabled")
     If b="true" Then
           reporter.ReportEvent 1,"关于项应是不可用的","failed"
      End If
又是不能通过
作者: xp20683    时间: 2007-2-5 13:30
我不是不会用spy,我会用的,但是抓出来的对象不对
作者: wawa133    时间: 2007-2-5 13:57
不行的话,就直接看能不能打开这个对话框啰.这个是最简单的. sdlkfj3
作者: hehemeimei    时间: 2007-2-6 16:54
sdlkfj1 我按照版主的做了,只能抓到菜单栏的对象,而抓不到“设置”选项的“关于”的对象的属性,不知道有没有别的办法拉sdlkfj1
作者: yhzmw    时间: 2007-2-6 17:17
我也是抓不到menu对象。spy大家都会用的。
作者: yhzmw    时间: 2007-2-8 15:14
继续关注此帖。我的问题还没解决呢。抓不到menu的属性
作者: rivermen    时间: 2007-2-8 15:51
//b= Dialog("VCM").WinMenu("ContextMenu").GetItemProperty("关于(A)","Enabled")

可不可以考虑用checkpoint来判断?
if Dialog("VCM").WinMenu("ContextMenu").check(checkpoint("关于(A)") then
......
else
end if
作者: xinxiachen    时间: 2007-2-13 13:44
标题: 回复 #1 xp20683 的帖子
按了关于之后应该会弹出一个对话框的吧,
如果会弹出的话那就用.exist来判断吧
作者: xp20683    时间: 2007-2-13 15:26
还有没其他的方法,我还不只有这一块考虑这个问题,,还有右键弹出菜单中也要判断啊?关注中
作者: miniyal    时间: 2007-2-13 15:29
b= Dialog("VCM").WinMenu("ContextMenu").GetItemProperty("关于(A)","Enabled")
     If b="True" Then
           reporter.ReportEvent 1,"关于项应是不可用的","failed"
      End If
     If b="True" Then???是false吧?
作者: xp20683    时间: 2007-2-13 17:12
不是的,现在是b= Dialog("VCM").WinMenu("ContextMenu").GetItemProperty("关于(A)","Enabled")
这句话通不过
作者: htot05    时间: 2007-2-14 10:53
刚刚我试了一下,因为LZ的WinMenu("ContextMenu")是合成了"用户(U),设置(S)",两个menu,QTP根本就找不到"关于(A)"这个子菜单中的选项,LZ可以用这种方法取到它的属性:

menupath = Dialog("VCM").WinMenu("ContextMenu").BuildMenuPath("设置(S)","关于(A)")
b= Dialog("VCM").WinMenu("ContextMenu").GetItemProperty(menupath,"Enabled")
msgbox b

经测试有效......
作者: wssgily    时间: 2007-2-14 11:10
原帖由 htot05 于 2007-2-14 10:53 发表
刚刚我试了一下,因为LZ的WinMenu("ContextMenu")是合成了"用户(U),设置(S)",两个menu,QTP根本就找不到"关于(A)"这个子菜单中的选项,LZ可以用这种方法取到它的属性:

menupath  ...

强!BuildMenuPath这个方法也能找到,看到看的够细致的!
作者: walker1020    时间: 2007-2-25 13:31
向htot05 学习!测试人员就应该要仔细认真、会利用各种方法和资源去解决问题。
作者: xp20683    时间: 2007-3-2 13:56
我试了一下,是可以通过,但是有个问提,如果是右键任务栏托盘区图标,也是弹出winmenu,我用
menupath= Dialog("VCM").WinMenu("ContextMenu").BuildMenuPath("恢复(R)")
b=Dialog("VCM").WinMenu("ContextMenu").GetItemProperty(menupath,"Enabled")
msgbox b
怎么到这边b=Dialog("VCM").WinMenu("ContextMenu").GetItemProperty(menupath,"Enabled")还是通不过啊
作者: xp20683    时间: 2007-3-2 17:23
我知道什么怎么原因了,不是说上面那程序不能通过,原因是
我的程序菜单设置(S)中有"关于(A)",点击后就弹出关于对话框,右键系统托盘区也有图标中的关于,此时就处于不能使用状态
Dialog("VCM").WinMenu("Menu").Select "设置(S);关于(A)"
r=Window("Window").WinToolbar("通知区域").GetItemsCount
for  i=1 to  r
        a=Window("Window").WinToolbar("通知区域").GetItemProperty(i,"name")
        If   a="VCM 上线: 192.168.0.100" Then
           Window("Window").WinToolbar("通知区域").Press i,micRightBtn  
            menupath= Dialog("VCM").WinMenu("ContextMenu_2").BuildMenuPath("关于(R)")
            b=Dialog("VCM").WinMenu("ContextMenu_2").GetItemProperty(menupath,"Enabled")
            msgbox b
            If b="true" Then
           reporter.ReportEvent 1,"关于项应是不可用的","failed"
         DataTable.GetSheet("result").GetParameter("pass").value=0
         DataTable.GetSheet("result").GetParameter("resultmsg").value="关于项应是不可用的"
            End If
               Exit for
      end if
做到 b=Dialog("VCM").WinMenu("ContextMenu_2").GetItemProperty(menupath,"Enabled")
就错误




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