Windows Mobile Test Framework Automation test
Hi,大家好!我现在在做一个mobile上的自动化测试,用的工具是微软的Windows Mobile Test Framework ,由于项目开发语言是c#的,另外这个项目中的很多控件都是非标准的控件,再加上关于Mobile Test Framework 工具本身不是的不成熟,我在使用这个工具的过程中困难重重。还好,我解决了一些比较困难的问题,也在网络上帮别人解决了一些关键的问题。现在我需要你们的帮助,希望看到我这篇文章的朋友,有想法的告诉我我可能出错在什么地方,或者指点一下我该怎么去做。
我先描述一下我出问题的原因:就是当界面上有两个窗体时,点击父窗体某个控件,弹出一个子窗体,当子窗体可见时,父窗体所有的控件都disabled。
点击如下图1中红色框中的扫描码部分,将弹出如下图2的子窗体:
(图1) (图2)
由于图一中扫描条形码是个有Click事件的图片控件,所以在代码中无法绑定该控件,只好通过鼠标与键盘事件模拟这个点击与扫描的动作。我在代码中加入了如下的测试代码:
public override void ScanStore()
{
if (SmartSellingUial.SmartSellingApp.VisitOutLetDialog.MainForm.Visible)
{
label1:
if (SmartSellingUial.SmartSellingApp.VisitOutLetDialog.LastWeekOrderLabel.Visible)
{
x = MyRandom.Next(130, 235);
y = MyRandom.Next(176, 189);
Datk.Mouse.Click(x, y, Datk.Mouse.CoordinateSystem.Absolute); //点击扫描条形码图片。
}
else
{
SmartSellingUial.SmartSellingApp.VisitOutLetDialog.SalesHistoryToolBar.Click();
goto label1;
}
Datk.KeyBoard.SendKey(Datk.KeyBoard.Key.Enter); //置焦点给弹出框combobox。
Datk.KeyBoard.SendKey(Datk.KeyBoard.Key.Down); //选择combobox dropdownlist的一个期望值。
SmartSellingUial.SmartSellingApp.VisitOutLetDialog.BubbleDialogCancelButton.Click();
}
}
上面这段代码中红色字体的部分就是调试过程中出现问题的地方,我这里说的问题并不是说报错,我执行的过程中不会出现任何错误但是三面三句红色字体的代码,当独立执行时,每个动作都能执行,但调试一直处于等待状态,不会执行下面的语句。如我执行到:Datk.Mouse.Click(x, y, Datk.Mouse.CoordinateSystem.Absolute); 点击扫描条形码的动作能够成功,但是断点一直是停留在这句代码上而不会switch到下一个断点。(这个动作如果不认为干涉的话,将一直处于这种状态),我点击弹出框的取消或确定按钮,断点将自动switch到下一个断点。 Datk.KeyBoard.SendKey(Datk.KeyBoard.Key.Enter)与 Datk.KeyBoard.SendKey(Datk.KeyBoard.Key.Down)有同样的问题,但确定与取消的点击动作不会引起这种现象。
下面我再归纳一下问题的几个关键字:父子窗体同时出现,最上层窗体enable,底层窗体将disabled。鼠标与键盘事件。
有能提供建议或看出我问题所在的朋友请留言或联系我,在技术的领域里,让我们携手前进。非常感谢!