UI自动化:如何触发树项的双击事件?

时间:2017-11-07 13:36:48

标签: .net ui-automation

我喜欢使用Microsoft UI Automation测试应用程序,但我却陷入触发树项目的双击事件。

Dim parent As AutomationElement
Dim child As AutomationElement

parent = <Code to retrieve parent element>

'expand the parent item
DirectCast(parent.GetCurrentPattern(ExpandCollapsePattern.Pattern), ExpandCollapsePattern).Expand()

'retrieve the child
child = parent.FindFirst(TreeScope.Descendants, New PropertyCondition(AutomationElement.NameProperty, <Name of the child element>))

这个child对象是有问题的树项目,但它只提供ExpandCollapsePatternSelectionItemPattern,它们都无助于触发双击事件

我试图扩展这个项目,以便可能以这种方式触发双击事件,但我只是告诉我扩展是不可能的。

那么,我错过了什么?

非常感谢你。

1 个答案:

答案 0 :(得分:0)

我已经通过免费的Microsoft.TestAPI库(通过此问题找到了该库)做到了这一点。

Given an Automation Element how do i simulate a single left click on it

            using Microsoft.Test.Input;

            var p = myTreeNode.GetClickablePoint();
            Mouse.MoveTo(new Point((int)p.X, (int)p.Y));
            Mouse.DoubleClick(MouseButton.Left);

从Windows.Point转换为Drawing.Point可能是更好的方法,但是上面的方法对我有用。