我目前正在使用以下代码双击鼠标按钮。
[DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
public static void DoubleClick(AutomationElement element)
{
Point p = element.GetClickablePoint();
Cursor.Position = new System.Drawing.Point((int)p.X, (int)p.Y);
mouse_event(0x02 | 0x04, (uint)p.X, (uint)p.Y, 0, 0);
mouse_event(0x02 | 0x04, (uint)p.X, (uint)p.Y, 0, 0);
}
但是,我认为这会让资源处于打开状态,导致我的自动化测试无法彻底退出,从而导致崩溃。此外,它要求鼠标实际上位于可点击点上,如果测试人员在错误的时间移动鼠标,则可能会导致问题。这样做有好处吗?