51Testing软件测试论坛

标题: 关于不同用户设置不同权限的问题 [打印本页]

作者: ghx    时间: 2007-1-18 16:35
标题: 关于不同用户设置不同权限的问题
我遇到这样一个问题,系统管理员给不同的人设置不同的权限时,用到复选框,我想通过自动化的工具来实现,也看到过类似的帖子,但还是没有解决,完整的代码如下:
Browser("XX").Page("XX").Sync
Browser("XX").Page("XX").WebEdit("edtUserName").Set "admin"
Browser("XX").Page("XX").WebEdit("edtPassword").SetSecure "45af2f667bf9dccf"
Browser("XX").Page("XX").WebButton("登 录").Click
Browser("XX").Page("YY").Frame("heading").Link("系统管理").Click
Browser("XX").Page("YY_2").Frame("menu").Link("用户管理").Click
Browser("XX").Page("YY_2").Frame("text").Image("userpm").FireEvent "onmouseover"
Browser("XX").Page("YY_2").Frame("text").Image("userpm").Click
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_2").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_3").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_4").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_5").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_6").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_7").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_8").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_9").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_10").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_11").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_12").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_12").Set "OFF"
Browser("XX").Page("YY_2").Frame("text_2").WebCheckBox("SelMark_13").Set "ON"
Browser("XX").Page("YY_2").Frame("text_2").WebButton("保 存").Click
Browser("XX").Page("YY_2").Sync
作者: ghx    时间: 2007-1-18 16:38
选择的内容如下:
作者: ghx    时间: 2007-1-18 16:48
我希望实现如下:
用户名        栏目名称        权限
用户A        公司通知         添加权限;修改权限;删除权限
用户B        行政制度         添加权限;删除权限
用户C        行政制度         添加权限;修改权限;发布权限
作者: kevin_swpi    时间: 2007-1-18 16:48
http://blog.51testing.com/?73325 ... ce_itemid_3134.html

你看下这个文章
里面有相关说明的:)
作者: kevin_swpi    时间: 2007-1-18 16:50
上面的这个只是提供了对webcheckbox的一些处理的方法

具体到了你的这个环境下的话
应该有所变化的
作者: ghx    时间: 2007-1-18 17:59
我还是不太清楚,怎样得到webcheckbox的属性,假如我希望选择公司通知下的 添加权限;修改权限;删除权限,怎样才能使想呢?
作者: ghx    时间: 2007-1-22 11:43
To :kevin_swpi

按照你的说法,我可以实现选中所有的,但我不能实现选择其中的一部份,假如:我要选择:公司通知下的         添加权限;修改权限;删除权限

我觉得目前遇到的问题是,怎样知道选择的webcheckbox的value属性,即:当我勾中添加权限前面的复选框时,怎样知道选中的这个复选框的

值是:”添加权限“。
作者: Coffey111111    时间: 2007-1-22 16:56
可以不用循环,直接用描述性语言来控制要选哪个,估计这样要写的脚本就会冗余点,你试试看~~sdlkfj2
作者: ghx    时间: 2007-1-23 10:36
To : Coffey111111

谢谢你的答复!
用"描述性语言来控制要选哪个",怎样来用描述性语言来写呢?能给点建议或者实例吗?
作者: 风过无息    时间: 2007-1-23 10:45
需要实际例子的话,在论坛里面搜一下。
你的情况相对特殊一点:
步骤
1、你创建一个对象,用description.create()
2、把webcheckbox的属性放进去。
3、参数你要选择的webcheckbox

Set m_webcheckbox=Description.Create()
      m_webcheckbox("****").Value="webcheckbox"
      set All_webcheckbox=Window("").Dialog("").Childobject(m_webcheckbox)
      n=All_webcheckbox.Count()
       i=datatable.value("","")
      All_webcheckbox(i).Set "ON"
作者: ghx    时间: 2007-1-24 10:14
Dim i
set m_WebCheckBox = Description.Create()
        m_WebCheckBox("type").Value="checkbox"
   set All_WebCheckBox=Browser("XX").Page("YY").Frame("text_2").ChildObjects(m_WebCheckBox)
   n=All_WebCheckBox.Count()
  msgbox(n)
   for i=0 to n-1
   All_WebCheckBox(i).Set "ON"
   next
我用这样的的语句来实现的是选择所有的checkbox,
想问下i=datatable.value("","")中的value("","")参数是什么呢?
作者: Coffey111111    时间: 2007-1-24 10:39
请问风过无息 :  i=datatable.value("","")这句话是什么意思啊?是取要选的checkbox的Index 吗?我也没有弄懂你这句话,学习~~sdlkfj5
作者: miniyal    时间: 2007-1-24 11:05
i=datatable.value("","")是表格单元取值的吧~
作者: Coffey111111    时间: 2007-1-24 13:01
知道了,首先将你要选的checkbox的Index 输入到datatable中,然后通过i=datatable.value("","")来取其中的你要选的值,就可以选种你要选的checkbox,或者也可以通过随机函数来随机选择~~  sdlkfj3     想通了,学习~~
作者: 风过无息    时间: 2007-1-24 13:31
不好意思写错了,取值的话应该
i=DataTable.RawValue ("ParameterID ", "SheetID")
~~~~~~~~~~~~~~~~~~~~
datatable.value("","")是往datatable里面附值用的,抱歉了。
作者: kevin_swpi    时间: 2007-1-24 14:13
风过无息

顶一下
学过
这是对webcheckbox的一个深化的例子  呵呵
作者: Coffey111111    时间: 2007-1-24 14:56
恩,学习~~  sdlkfj3
作者: ghx    时间: 2007-1-24 16:55
标题: 回复 #10 风过无息 的帖子
set All_webcheckbox=Window("").Dialog("").Childobject(m_webcheckbox)时,总是出现错误啊,和这句:Browser("XX").Page("YY").Frame("text_2").ChildObjects(m_WebCheckBox)有什么不同呢?
作者: Coffey111111    时间: 2007-1-25 09:02
前一个是找出Window界面上的checkbox的总个数,而后一个是找出一个网页上的所有的checkbox的总个数,只是测试的对象不一样,但是意思是一样的~~sdlkfj2
作者: ghx    时间: 2007-1-26 16:43
i=DataTable.RawValue ("ParameterID ", "SheetID") 的意思是:取得某一行具体值,是从SheetID中取得ParameterID 行的值

吧?但是SheetID从哪儿来的呢?又怎样知道我所选择的ParameterID 是第几行呢?

[ 本帖最后由 ghx 于 2007-1-26 16:44 编辑 ]
作者: m_2    时间: 2007-1-26 17:23
标题: 回复 #20 ghx 的帖子
这个DataTable指的是QTP自带的DataTable,ParameterID就是指的是Column,而SheetID指的是那个表 比如:GlobalSheet。
你可事先在DataTable中输入你要选的CheckBox的值,然后再用代码实现。




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