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 だと思います)。しかし、私の見解では、静的テキスト コントロールの内容を検証するものを除いて、すべてのテストが VM 上で問題なく実行されるため、問題は仮想マシンにはありません。VMWare リモート コンソールを使用して確認できるため、テストが実行される VM のデスクトップがアクティブであることは 100% 確信しています。

リモート マシンでのテストの実行に関しては、Visual Studio に付属のテスト コントローラーとテスト エージェントを使用しています。

4

0 に答える 0