51Testing软件测试论坛

标题: 请问可以为radio button 设置参数么? [打印本页]

作者: keaneping    时间: 2007-3-23 10:42
标题: 请问可以为radio button 设置参数么?
想使得每次循环依次点击3个不同的radio button 可是好象不能象list那样设置data table
作者: 风过无息    时间: 2007-3-23 11:03
可以用描述性编程,在论坛里搜索一下,有问题再提问吧。

比如:
Set m_WinCheck=Description.Create()
      m_WinCheck("nativeclass").Value="Button"
      set All_WinCheck=Window("").Dialog("").Childobject(m_WinCheck)
      n=All_WinCheck.Count()
     for i=0 to n-1
      All_WinCheck(i).Set "ON"
     next

[ 本帖最后由 风过无息 于 2007-3-23 11:05 编辑 ]
作者: keaneping    时间: 2007-3-23 11:11
恩 好的 可是我还没有开始学习编程方面的东西 请问可以在keyview窗口中设置么? 谢谢
作者: 风过无息    时间: 2007-3-23 11:17
在专家视图里面操作的
作者: keaneping    时间: 2007-3-23 12:50
标题: 初学描述性编成 有问题 请指教
我想通过三个按钮的windows id的属性 识别 分别进行点击 比如三个按钮的windows id 分别为 1,2,3

程序描述中:。。。。。。WinRadioButton("window id=?")  使用常数是可以的 请问怎么使用变量呢?谢谢
作者: 桃花劫    时间: 2007-3-23 13:35
。。。。。。WinRadioButton("window id="&n) n是变量
作者: keaneping    时间: 2007-3-23 13:47
赫赫 解决了 请问window id这个属性的值是固定的么 对于同一个软件来说
作者: 桃花劫    时间: 2007-3-23 14:02
一般不是固定值,用index属性好了
作者: 玉月亭苇    时间: 2008-3-7 14:34
原帖由 风过无息 于 2007-3-23 11:03 发表
可以用描述性编程,在论坛里搜索一下,有问题再提问吧。

比如:
Set m_WinCheck=Description.Create()
      m_WinCheck("nativeclass").Value="Button"
      set All_WinCheck=Window("").Dialog("").Childo ...


对于要求在每次循环里选择不同的Radiobutton,我按照你提供的方法,写了下面的脚本:
Set d_RadioCheck=Description.Create()
         d_RadioCheck("html tag").Value="INPUT"
  Set all_RadioCheck=Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebRadioGroup("outFlight").ChildObjects(d_RadioCheck)
                 n=All_RadioCheck.Count()
                 For i=0 to n-1
                          All_RadioCheck(i).Set"ON"
                          
                 Next
运行发现一个问题,每次循环的时候它总是选择第一个Radiobutton。问一下楼上的这脚本应该不适用于RadioButton吧?
如果真的要求每次循环都选择不同的RadioButton,应该怎么改呢?可不可以利用一个全局变量来控制呢?? 等待ing~~~
作者: hsjzfling    时间: 2008-3-7 15:10
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebRadioGroup("outFlight").ChildObjects(d_RadioCheck)
这句应改为Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").ChildObjects(d_RadioCheck)
另外描述的属性最好斟酌下,确保描述属性能够把想要找的对象筛选出来
作者: 玉月亭苇    时间: 2008-3-7 15:57
标题: 回复 10# 的帖子
谢谢楼上的提醒,现在我把属性改了,最终脚本为:
Set d_RadioCheck=Description.Create()
         d_RadioCheck("name").Value="outFlight"
Set all_RadioCheck=Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").ChildObjects(d_RadioCheck)
                 n=all_RadioCheck.Count()
                 For i=0 to n-1
                       all_RadioCheck(i).Set "ON"
                          
                 Next

现在出现了另一个问题,当运行到第二次循环,执行这段脚本时出现了Run Error,具体错误提示为:
Object doesn't support this property or method: 'all_RadioCheck(...).Set'
Line (19): "all_RadioCheck(i).Set "ON"".
这又是什么原因呢?麻烦继续指教~~~~
作者: hsjzfling    时间: 2008-3-7 16:51
标题: 回复 11# 的帖子
还是描述属性的问题。。。
如果你是要获得该页面下的所有WebRadioGroup的话,建议使用
d_RadioCheck("micclass").Value="WebRadioGroup"
来描述
作者: 玉月亭苇    时间: 2008-3-7 17:04
标题: 回复 12# 的帖子
以前试过,虽然不会出现Run Error,但是并不是想要的结果,它每次循环的时候都是选择第一个RadioButton。我觉得这段脚本是把所有的RadioButton都尝试set"ON"吧,并不是每一次循环时它会依次选择不同的RadioButton.。不知道是不是这样?
  如果是这样的话,那么如何才能让它每次循环时能依次选择那一组RadioButton呢??
作者: caodongjian    时间: 2008-3-7 17:10
可以把radiobuttion的值.SPY出.用table来写出.读取吗?
作者: 玉月亭苇    时间: 2008-3-7 17:18
标题: 回复 14# 的帖子
那样做的话应该可以,但是脚本应该是可以控制的。现在就是找不到一种合适的方法。
麻烦各位高手指点一下了~~~
作者: hsjzfling    时间: 2008-3-7 18:23
脚本当然是可以控制的了~~但是需要知道你的详细需求,以及被测页面的详细信息~
作者: 玉月亭苇    时间: 2008-3-10 09:56
标题: 回复 16# 的帖子
我的需求就是在一个页面page1里有一个RadioGroup,包含三个Radiobutton,现在想每次循环时依次选择不同的RadioButton,具体的脚本应该怎么写呢?
作者: hsjzfling    时间: 2008-3-10 10:55
11楼+12楼不就已经给出答案了么。。。
以下脚本的功能是依次选择每一个RadioButton
Set d_RadioCheck=Description.Create()
         d_RadioCheck("micclass").Value="WebRadioGroup"
Set all_RadioCheck=Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").ChildObjects(d_RadioCheck)
                 n=all_RadioCheck.Count()
                 For i=0 to n-1
                       all_RadioCheck(i).Set "ON"
                          
                 Next
作者: 玉月亭苇    时间: 2008-3-10 12:05
标题: 回复 18# 的帖子
谢谢楼上耐心地指点。不过还是有个问题,不知道楼上的是不是误解了我的意思,我的意思是假设我的data table中有3 rows参数,那么我的脚本就可以执行三次,我想在这三次循环中都选择不同的radioButton,第一次选择第一个radiobutton,第二次选择第二个radiobutton……。
但是上面给出的脚本,它每次都是选择第一个radiobutton,就像我在13楼上所说的。
不知还是我其它地方出错了
作者: hsjzfling    时间: 2008-3-10 14:33
18楼的脚本是执行一次循环,在循环中依次选择每个button,要实现19楼的需求也很容易,参数化下属性值即可,描述性编程比较直观,示例如下
Browser("Welcome: Mercury Tours").Page("Select a Flight: Mercury").WebRadioGroup("index:="&DataTable(1,1))
all_RadioCheck(i).Set "ON"
其中DataTable(1,1)存放的是你要指定选择第几个button,在DataTable中依次写入0,1,2就可以~
作者: 玉月亭苇    时间: 2008-3-11 17:21
看到楼上说的用index,觉得是个不错的方法,但是我试了很多次,还是不行。最终用object spy查看那个radiobutton时发现,index是RadioButtonGroup的属性,而对于单个Radiobutton不存在这种属性,所以
最终没有办法,只能用笨方法将radioButtonGroup所有item的value存在dataTable中,一个一个调用 了。




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