51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1540|回复: 6
打印 上一主题 下一主题

[原创] 脚本代码如何实现:不管上层菜单如何变化,总能选中最下层菜单

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-7-16 10:17:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
脚本如下:
Browser("首页").Page("首页_2").WebElement("系统菜单").Click
wait(5)
Browser("首页").Page("首页_2").Image("s").Click
wait(5)
Browser("首页").Page("首页_2").Image("s_2").Click
wait(5)
Browser("首页").Page("首页_2").Image("s_3").Click
wait(5)
Browser("首页").Page("首页_2").Link("按群组授权").Click
Browser("首页").Page("首页_2").WebElement("WebElement_2").Click
Browser("首页").Page("首页_2").WebButton("授权").Click

其中脚本Browser("首页").Page("首页_2").Image("s").Click表示展现根菜单
录制脚本时为点击根菜单前面的+号,是个image对象
Browser("首页").Page("首页_2").Image("s_2").Click为打开下一级菜单
...
按群组授权是最下层菜单
脚本代码如何实现,能直接选中按群组授权这个link
因为它的上级菜单可以增加个,也可以减少个,一旦增加或减少后,那下次再回放这段脚本就出错了的,因为那些image对象,s,s_2,s_3就变化了的
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-7-16 10:42:12 | 只看该作者
Function menuSelect(menuName)
        Set curPage=Browser("creationtime:=0").Page("index:=0")
        menu=split(menuName,"-")
        curPage.WebElement("innerhtml:="&menu(0)).Click
For i= 1 to UBound(menu)
        Set menuDesc = description.Create()
        menuDesc("text").Value=menu(i)
        menuDesc("micclass").Value = "Link"
        if curPage.Exist(1) then
                label = 0
                While(label = 0)
                        Set menuLists = curPage.ChildObjects(menuDesc)        
                        NumberOfLists = menuLists.Count()
                        If NumberOfLists=1 Then
                                menu(i)=menuLists.Item(0).GetROProperty("html id")
                                label = label + 1
                        elseif NumberOfLists>1 then
                                For j=0 to NumberOfLists
                                        tempText=menuLists.Item(j).GetROProperty("html id")
                                        If instr(tempText,menu(i-1))>0 Then
                                                menu(i)=tempText
                                                label = label + 1
                                                Exit For
                                        End If
                                Next               
                        End If
                Wend
                curPage.Link("html id:="&menu(i)).Click
        end if
        Set menuLists = nothing
        Set menuDesc = nothing
Next
        Set curPage = nothing
End function
菜单格式为:一级—二级—三级 等
你只要把最下级的菜单路径输入进去就可以了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-7-16 15:22:40 | 只看该作者

回复 2# 的帖子

代码这样写的:
Dim menuName
menuName="按群组授权"

        Set curPage=Browser("首页").Page("首页_2")
        menu=split(menuName,"-")
        curPage.WebElement("innerhtml:="&menu(0)).Click
For i= 1 to UBound(menu)
        Set menuDesc = description.Create()
        menuDesc("text").Value=menu(i)
        menuDesc("micclass").Value = "Link"
        if curPage.Exist(1) then
                label = 0
                While(label = 0)
                        Set menuLists = curPage.ChildObjects(menuDesc)         
                        NumberOfLists = menuLists.Count()
                        If NumberOfLists=1 Then
                                menu(i)=menuLists.Item(0).GetROProperty("html id")
                                label = label + 1
                        elseif NumberOfLists>1 then
                                For j=0 to NumberOfLists
                                        tempText=menuLists.Item(j).GetROProperty("html id")
                                        If instr(tempText,menu(i-1))>0 Then
                                                menu(i)=tempText
                                                label = label + 1
                                                Exit For
                                        End If
                                Next               
                        End If
                Wend
                curPage.Link("html id:="&menu(i)).Click
        end if
        Set menuLists = nothing
        Set menuDesc = nothing
Next
        Set curPage = nothing


刚才尝试了下,好像不行,我的页面是这样的
首先打开一个下拉框,点击系统菜单
页面出现3个根菜单:系统管理控制台,即席查询系统,内容管理系统
点击根菜单:系统管理控制台,一级菜单打开,再点击其下面的子菜单:统一权限管理,二级菜单打开
最后再点击按群组授权这第三级菜单,选中
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-7-16 16:29:15 | 只看该作者

回复 3# 的帖子

既然是多级,为什么写成menuName="按群组授权"?
应该是“系统管理控制台-统一权限管理-按群组授权”
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-7-16 16:56:19 | 只看该作者

回复 4# 的帖子

现在设置了menuName="系统管理控制台-统一权限管理-按群组授权"
但是代码运行到while语句时,一直在运行,感觉是个死循环
我debug代码时跑到那也是不断的在跑while语句



[ 本帖最后由 ylm77ojn 于 2008-7-16 17:05 编辑 ]

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-7-16 17:21:14 | 只看该作者
在我的web系统里是正常的,你可以根据自己需求改动,应该是没问题的
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-7-16 22:07:46 | 只看该作者

回复 6# 的帖子

不太明白你代码中这句curPage.WebElement("innerhtml:="&menu(0)).Click在系统中是什么操作
curPage.Link("html id:="&menu(i)).Click又是什么操作
  menuDesc("text").Value=menu(i)
        menuDesc("micclass").Value = "Link"
menu(i)=menuLists.Item(0).GetROProperty("html id")
  tempText=menuLists.Item(j).GetROProperty("html id")
这上面4句也不是很明白
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 20:13 , Processed in 0.077038 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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