假如我想在CODEDUI代码中按删除按钮9次,是否有快捷方式,或者我需要在代码中给键盘控制9次?
答案 0 :(得分:2)
您可以使用for循环循环点击控件9次:
for(var i = 0;i < 9;i++)
{
Mouse.Click(UiControl.DeleteButton);
}
您可以将它放在.UiMap文件或测试方法中的方法中。
一些未经提出的建议:如果你想点击删除9次,因为你有9个项目要从表或其他元素中删除9个项目,你可以尝试获取孩子的数量:
var deleteNum = UiControl.Table.GetChildren().Count;
for(var i = 0; i < deleteNum; i++ )
{
Mouse.Click(UiControl.DeleteButton);
}
这将有所帮助,因为您不会更多地使用控件,并且会确保您的测试方法对应用程序中的更改更加健壮。
答案 1 :(得分:0)
这是使用WinAPI的点击示例 - 因为它比控件识别更快。
public static class AppManager
{
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
[DllImport("user32.dll",
CharSet = CharSet.Auto,
CallingConvention = CallingConvention.StdCall)]
private static extern void mouse_event(long dwFlags,
long dx,
long dy,
long cButtons,
long dwExtraInfo);
public static void RapidClick(Point pt)
{
Cursor.Position = pt;
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, pt.X, pt.Y, 0, 0);
}
}
然后使用RapidClick,我这样做:
var point = new Point(control.Left+1, control.Top + 1);
for (int pos = 0; pos < totalClicks; pos++)
{
AppManager.RapidClick(point);
}
这样做的好处是表现速度快。这是因为您对控件执行一次查找以获得初始坐标,之后您可以快速地快速单击它。
这对我来说非常有用,也没有RDC或实验室环境的问题。