0

我正在使用 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 附带的测试控制器和测试代理。

4

0 回答 0