我有一个 telerik控件(Telerik.WinControls.UI.RadToggleSwitch),它用于在状态1和状态2之间切换“点击并拖动(左或右)“使切换效果。我想进行手动编码的UI测试来选择状态并继续进行。我需要一个类来调用该控件(我假设它是 WinClient )。
我需要正确的代码来执行切换操作。提前谢谢。
答案 0 :(得分:1)
您可以手动编码您的编码UI测试,但手动编码您的UIControls真的很麻烦,因为您永远无法确定您添加的控件是否真正找到并且您所做的一切都是正确的。 更好的选择是使用UIMap通过Coded UI Test Builder手动添加控件。它还节省了大量时间。 编码的UI测试生成器打开后,您可以将鼠标悬停在控件上并键入" Control + I"获取有关该特定控件的信息。如果你现在点击<<在打开的信息框上,你可以看到你的UIMap和你做的控制" Control + I"在左边添加了。但控制权尚未永久增加。从这里,您可以通过单击带绿色加号的方块永久添加它。 Add Button Icon
或者,简单的方法是将鼠标悬停在控件上并按下" Control + Shift + I"。
另请参阅:https://docs.microsoft.com/en-us/visualstudio/test/use-ui-automation-to-test-your-code
将特定控件添加到UIMap后,您可以通过引用UIMap来使用它。在UIMaps的* .cs文件中编码时,你可以通过" this"来引用它。言。
例如:
this.UIWindow.UITitleBar.UICloseButton;
当你想在UIMap的文件之外使用它时,你必须创建一个UIMap类的对象,然后像上面那样通过重新调用"这个"用对象引用。
例如:
MyUIMapClass uIMapObject = new MyUIMapClass();
uIMapObject.UIWindow.UITitleBar.UICloseButton;
如果您编码的文件不在同一名称空间中,则必须为UIMap的名称空间添加using语句(名称空间在UIMap中每个文件的开头定义)。
因此,为了您的控制,我认为您需要的是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应该没问题。
我希望我帮了一下。 :)