Win App Driver 中的 MoveByOffset 操作:如何查看或减慢它的速度?
Actions MoveByOffset in Win App Driver: How can I see it or slow it down?
我有下面的代码,它确实可以从一个位置拖放到另一个位置,但位置不完全正确。我怎样才能减慢它的速度或查看它在做什么?我在 CodedUI 和 Mouse.StartDragging 等中使用了 Mouse.Move,您可以设置速度并查看它们在做什么,并在需要时进行更正。它用于将 canvas 上的内容拖到 canvas 上的另一个项目,因此它与位置有关。
我知道我会在某个时候到达那里,PMeter 是一个很好的工具,可以在这里帮助你,但我希望能够看到我有时正在做什么来调试。
Actions builder = new Actions(session);
builder.MoveByOffset(100, -85);
builder.ClickAndHold();
builder.MoveByOffset(gridPos2.X - gridPos1.X, gridPos2.Y - gridPos1.Y);
builder.Release();
builder.Perform();
如果你想知道鼠标指向哪里,只需在 Inspection 程序中 select 'show highlight rectangle' 即可。在所附图片中,您会发现选项已被标注。
我创建了一个方法来显示光标以您选择的颜色闪烁...
/// <summary>
/// This method is useful for seeing what the cursor is doing. **Call it like this...**
/// CommonMethods.HighlightCursor(new System.Drawing.Pen(System.Drawing.Color.Red));
/// </summary>
/// <param name="colour"></param>
public static void HighlightCursor(Pen colour)
{
for (int i = 0; i < 10; i++)
{
Point pt = Cursor.Position; // Get the mouse cursor in screen coordinates
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
g.DrawEllipse(colour, pt.X - 5, pt.Y - 5, 10+i, 10+i);
}
Thread.Sleep(150);
}
}
我有下面的代码,它确实可以从一个位置拖放到另一个位置,但位置不完全正确。我怎样才能减慢它的速度或查看它在做什么?我在 CodedUI 和 Mouse.StartDragging 等中使用了 Mouse.Move,您可以设置速度并查看它们在做什么,并在需要时进行更正。它用于将 canvas 上的内容拖到 canvas 上的另一个项目,因此它与位置有关。
我知道我会在某个时候到达那里,PMeter 是一个很好的工具,可以在这里帮助你,但我希望能够看到我有时正在做什么来调试。
Actions builder = new Actions(session);
builder.MoveByOffset(100, -85);
builder.ClickAndHold();
builder.MoveByOffset(gridPos2.X - gridPos1.X, gridPos2.Y - gridPos1.Y);
builder.Release();
builder.Perform();
如果你想知道鼠标指向哪里,只需在 Inspection 程序中 select 'show highlight rectangle' 即可。在所附图片中,您会发现选项已被标注。
我创建了一个方法来显示光标以您选择的颜色闪烁...
/// <summary>
/// This method is useful for seeing what the cursor is doing. **Call it like this...**
/// CommonMethods.HighlightCursor(new System.Drawing.Pen(System.Drawing.Color.Red));
/// </summary>
/// <param name="colour"></param>
public static void HighlightCursor(Pen colour)
{
for (int i = 0; i < 10; i++)
{
Point pt = Cursor.Position; // Get the mouse cursor in screen coordinates
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero))
{
g.DrawEllipse(colour, pt.X - 5, pt.Y - 5, 10+i, 10+i);
}
Thread.Sleep(150);
}
}