我正在使用Microsoft Automation UI框架来开发我的自动化测试用例。我面临的问题与静态文本控件的交互有关。我只是想获取控件的文本。当我在本地机器上运行测试时,测试工作非常完美。问题是当我通过Test Controler在(无论哪个)Test Agent上运行测试时。出现的错误是无法找到静态控件文本。
Theis是我的代码的一部分,我正在尝试初始化我想要与之交互的控件:
private void Init(TreeScope treeScope, params Condition[] properties)
{
try
{
List<Condition> propertiesList = properties.ToList();
propertiesList.Add(Condition.TrueCondition);
bool controlFound = Wait.ForCondition(
() =>
{
try
{
TestControl = Parent.FindFirst(treeScope,
new System.Windows.Automation.AndCondition(propertiesList.ToArray()));
return !TestControl.Current.IsOffscreen;
}
catch
{
return false;
}
});
if (!controlFound)
{
throw new ElementNotAvailableException(DescriptiveName + "Control is NOT found");
}
this.GetItAsUITestControl().WaitForControlReady(Playback.PlaybackSettings.WaitForReadyTimeout);
if (TestControl.Current.IsKeyboardFocusable)
{
TestControl.SetFocus();
}
string controlFullName = this.TestControl.Current.ControlType.ProgrammaticName;
DescriptiveName = "< " + DescriptiveName + " " + controlFullName.Substring(controlFullName.LastIndexOf(".")) + " >";
}
catch (ElementNotAvailableException ex)
{
Report.Error(ex.Message);
}
catch (Exception ex)
{
Report.Error(ex.Message);
}
}
有什么想法吗?
我正在使用Microsoft System Center Virtual Machine Manager 2008 R2来管理我的虚拟机(我认为所有计算机都是vmware)。但是从我的角度来看,问题不在虚拟机中,因为除了验证静态文本控件内容之外,所有测试都在VM上执行而没有任何问题。我100%确定执行测试的VM的desctop是活动的,因为我可以使用VMWare远程控制台查看它。
在远程计算机上执行测试时,我使用Visual Studio附带的Test Controlers和Test Agents。