我正在使用 Microsoft 自动化 UI 框架来开发我的自动化测试用例。我面临的问题与与静态文本控件的交互有关。我只是想获取控件的文本。当我在本地机器上运行测试时,测试工作完美。问题是当我通过测试控制器在(无论哪个)测试代理上运行测试时。出现的错误是找不到静态控件文本。
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)。但从我的角度来看,问题不在于虚拟机,因为除了验证静态文本控件内容的测试之外,所有测试都在虚拟机上执行,没有任何问题。我 100% 确定执行测试的 VM 的桌面是活动的,因为我可以使用 VMWare 远程控制台查看它。
在远程机器上执行测试方面,我使用的是 Visual Studio 附带的测试控制器和测试代理。