Telerik.WinControls.UI.RadToggleSwitch + 编码 ui 测试 + c#

Telerik.WinControls.UI.RadToggleSwitch + coded ui test + c#

我有一个 telerik 控件 (Telerik.WinControls.UI.RadToggleSwitch),它用于通过“单击并拖动(左)在状态 1 和状态 2 之间切换或 right)" 来制作切换效果。我想对 select 状态进行 手写 UI 测试 并继续进行。我需要一个 class 来调用该控件(我假设它是 WinClient)。

我需要正确的代码来执行切换操作。提前致谢。

您可以手动编码您的编码 UI 测试,但是手动编码您的 UI 控件确实很麻烦,因为您永远无法确定您添加的控件是否确实找到并且您所做的一切都是正确的. 更好的替代方法是使用 UIMap 通过编码 UI 测试生成器手动添加控件。它还可以节省很多时间。 当编码 UI 测试生成器打开时,您可以将鼠标悬停在控件上并键入 "Control+I" 以获取有关该特定控件的信息。如果您现在单击打开的信息框上的 <<,您会看到您的 UI地图以及您在左侧添加的 "Control+I" 控件。但该控件尚未永久添加。从这里您可以通过单击带有绿色加号的方块来永久添加它。 Add Button Icon

或者,简单的方法是将鼠标悬停在控件上并按下 "Control+Shift+I"。

另请参阅:https://docs.microsoft.com/en-us/visualstudio/test/use-ui-automation-to-test-your-code

将特定控件添加到UI地图后,您可以参考UI地图使用它。在 UIMaps 的 *.cs 文件中编码时,您可以通过 "this" 语句引用它。

例如:

this.UIWindow.UITitleBar.UICloseButton;

当您想在 UIMap 的文件之外使用它时,您必须创建 UIMap 的 class 的对象,然后才能像这样使用它通过用对象引用重新调整 "this" 以上。

例如:

MyUIMapClass uIMapObject = new MyUIMapClass();
uIMapObject.UIWindow.UITitleBar.UICloseButton;

如果您正在编码的文件不在同一个命名空间中,您必须为 UIMap 的命名空间添加一个 using 语句(命名空间在 UI地图).

所以为了您的控制,我认为您需要的是 Mouse.StartDragging() 和 Mouse.StopDragging()。

public static void StartDragging(UITestControl control);
public static void StopDragging(UITestControl control, int moveByX, int moveByY);

所以向左拖动将是:

Mouse.StartDragging(UIYourControl)
Mouse.StopDragging(UIYourControl, -20, 0);

向右:

Mouse.StartDragging(UIYourControl)
Mouse.StopDragging(UIYourControl, 20, 0);

您应该测试一下您需要在每个方向上拖动的量,以便将其注册为拖动,但我认为 -20 和 20 应该没问题。

希望对您有所帮助。 :)