在虚拟机上执行测试时找不到静态文本控件

时间:2012-08-28 08:03:49

标签: testing ui-automation coded-ui-tests

我正在使用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。

0 个答案:

没有答案