当我们使用 SilkTest时,你可能会发现无法捕捉 AUT的 GUI上面的 radio list控件。其实,这并不是 silktest的问题,而是你的silktest 设置 agent将 radio list当作一个整体来进行捕捉了,所以你会捕捉到类似下面的对话框定义(我们以notepad为例,你可以打开记事本,然后随便输入字符串,再选择菜单里面的 edit->find next)
[+] window DialogBox Find
[ ] tag “Find”
[+] parent Notepad
[+] StaticText FindWhatText
[+] multitag “Find what:”
[ ] “$65535”
[+] TextField FindWhat
[+] multitag “Find what:”
[ ] “$1152”
[+] CheckBox MatchCase
[+] multitag “Match case”
[ ] “$1041”
[+] StaticText DirectionText
[+] multitag “Direction”
[ ] “$1072”
[+] RadioList Direction
[+] multitag “Direction”
[ ] “$1056”
[+] PushButton FindNext
[+] multitag “Find Next”
[ ] “$1”
[+] PushButton Cancel
[+] multitag “Cancel”
[ ] “$2”
这个时候我们如果想要控制查找的方向的话,必须用如下的脚本来控制 silktest:
Notepad.Find.Direction.Select(“Up”)
Notepad.Find.Direction.Select(“Down”)
其实,我们可以方便地更改 silktest agent的这个设置,你可以设置silktest 菜单中的 Options->agent->Compatibility页,选中 “Don’t group
radio buttons into a list”,这个时候你再次捕捉刚才的对话框,就会得到如下的定义。
然后你就可以用 Notepad.Find. Up.Click()和 Notepad.Find.Down.Click()来控制 notepad的 查找方向了。
这里还有一点可能需要引起你的注意,如果 GUI上的 radio list控件经常变化的话,还是第一种方法较好,因为这样你只需要更改测试脚本,而不需要重新捕捉和修改 inc文件中的定义。
[+] window DialogBox Find
[ ] tag “Find”
[+] parent Notepad
[+] StaticText FindWhatText
[+] multitag “Find what:”
[ ] “$65535”
[+] TextField FindWhat
[+] multitag “Find what:”
[ ] “$1152”
[+] CheckBox MatchCase
[+] multitag “Match case”
[ ] “$1041”
[+] StaticText DirectionText
[+] multitag “Direction”
[ ] “$1072”
[+] RadioButton Up
[+] multitag “Up”
[ ] “$1056”
[+] RadioButton Down
[+] multitag “Down”
[ ] “$1057”
[+] PushButton FindNext
[+] multitag “Find Next”
[ ] “$1”
[+] PushButton Cancel
[+] multitag “Cancel”
[ ] “$2”