AutomationElement child = walker.GetFirstChild(el);
使用Windows自动化如何我在模拟器上孩子留下单一的点击?
AutomationElement child = walker.GetFirstChild(el);
使用Windows自动化如何我在模拟器上孩子留下单一的点击?
尝试:
AutomationElement child = walker.GetFirstChild(el);
System.Windows.Point p = child.GetClickablePoint();
Mouse.Move((int)p.X, (int)p.Y);
Mouse.Click(MouseButton.Left);
链接:
AutomationElement.GetClickablePoint方法
模拟鼠标输入/移动/ WPF的控制离开,没有真正的使用鼠标
编辑发表评论
看到这个链接:
Mouse.cs
NativeMethods.cs
简介TestApi -第1部分:输入注入的API
而不是发送鼠标事件,你可以Invoke
通过它InvokePattern
像这样:
public void InvokeAutomationElement(AutomationElement automationElement)
{
var invokePattern = automationElement.GetCurrentPattern(InvokePattern.Pattern) as InvokePattern;
invokePattern.Invoke();
}
如果控制有一个“ClickablePoint”您可以使用此代码
System.Windows.Point p = theButton.GetClickablePoint();
AutoItX3Lib.AutoItX3Class au3;
au3 = new AutoItX3Lib.AutoItX3Class();
au3.AutoItSetOption("MouseCoordMode", 0);
au3.MouseClick("LEFT", (int)p.X, (int)p.Y, 1, -1);
其中AutoItX3Lib是AutoIt的C#的API