DevComponents.AdvTree node上的操作问题(已解决)
想在DevComponents.AdvTree 的某个node上点击一下鼠标,请问各位大侠,QTP如何写脚本?[ 本帖最后由 tongxj80 于 2010-5-12 17:43 编辑 ] DevComponents.AdvTree 是.NET的控件吧? 是的,是DotNetBar控件。 可以参考这里描述的一些思路看能不能解决:
http://blog.csdn.net/Testing_is_believing/archive/2010/03/13/5377441.aspx
http://blog.csdn.net/Testing_is_believing/archive/2010/03/13/5377341.aspx
谢谢TIB
谢谢。另外下面这段代码,为啥执行完后一点反应都没有?是不是有地方弄错了?
Set TestTree=SwfWindow(" ").SwfWindow(" ").SwfObject("advTree1").Object
TestTree.SelectedNodeTestTree.Nodes.Item(0),Mouse 是不是应该这样:
Set TestTree=SwfWindow(" ").SwfWindow(" ").SwfObject("advTree1").Object
TestTree.SelectedNode= TestTree.Nodes.Item(0) 这样写法仍是一点反应都没有,总感觉哪里不对劲。我要做的事情是在item(0)上点击一下。
selectedNode是dotnetbar控件支持的方法:Public Sub SelectedNode( _
ByVal node As Node, _
ByVal action As eTreeAction _
)
Public Enum eTreeAction
Inherits Enum
Member Description
Keyboard The event was caused by a keystroke.
Mouse The event was caused by a mouse operation.
Collapse The event was caused by the Node collapsing.
Expand The event was caused by the Node expanding.
Code The event is caused programmatically from user code. 改成这样呢?
TestTree.SelectedNodeTestTree.Nodes.Item(0),Code
如果这样也不行,我估计是SelectedNode只是将焦点设置在item上而已,要触发它,模拟用户的点击,可能还需要按一下空格键或回车键 这样写仍是没用,应该是Code这个字段识别不到,eTreeAction是.net里的枚举,在VB/QTP中找不到。
另外,如果我将焦点设置在Item(0)上,那么“需要按一下空格键或回车键”,这个怎么做呢?最好能给出代码,谢谢!
[ 本帖最后由 tongxj80 于 2010-4-27 09:20 编辑 ]
回复 9# 的帖子
可以用DeviceReplay来发送个按键出去参考:
http://blog.csdn.net/Testing_is_believing/archive/2008/06/02/2504745.aspx
回复 10# 的帖子
谢谢。最近在忙别的事情,若有问题,会再向您请教,谢谢。解决方法
今天在陈能技老师的帮助下,解决了这个问题:SwfWindow("Form1").Activate
NodeCount = SwfWindow("Form1").SwfObject("advTree1").Object.Nodes.Count
For I = 0 to NodeCount - 1 ' 访问第一层的所有Node
NodeBounds =SwfWindow("Form1").SwfObject("advTree1").Object.Nodes.Item(i).Bounds
arrBounds = Split(NodeBounds,",")
xPos = Split(arrBounds(0),"=")
' Print xPos(1)
x =xPos(1)
yPos = Split(arrBounds(1),"=")
' Print yPos(1)
y = yPos(1)
SwfWindow("Form1").SwfObject("advTree1").Click x,y ' 真正执行点击操作
Next
页:
[1]