0

手書きのコード化されたコントロールを UIMap.cs (UIMap.Designer.cs ではなく) に追加したいと考えています。

たとえば、記録するとき: writing in a texBox、UIMap.Designer.cs で次のコードを取得します。

public class Recorded_Writing_In_forRecordParams
{
    public string UIForRecordEditText = "forRecord";
}

public class UIMainWindowWindow : WpfWindow
{
    public UIMainWindowWindow()
    {
        this.SearchProperties[WpfWindow.PropertyNames.Name] = "MainWindow";
        this.SearchProperties.Add(new PropertyExpression(WpfWindow.PropertyNames.ClassName, "HwndWrapper", PropertyExpressionOperator.Contains));
        this.WindowTitles.Add("MainWindow");
    }

    public WpfEdit UIForRecordEdit
    {
        get
        {
            if ((this.mUIForRecordEdit == null))
            {
                this.mUIForRecordEdit = new WpfEdit(this);
                this.mUIForRecordEdit.SearchProperties[WpfEdit.PropertyNames.AutomationId] = "forRecord";
                this.mUIForRecordEdit.WindowTitles.Add("MainWindow");
            }

            return this.mUIForRecordEdit;
        }
    }

    private WpfEdit mUIForRecordEdit;
}

でこのコントロールを使用したいCodedUITest。独自のコードTextBoxでを検索する方法、または で検索する方法はありますか? 最良の方法はどれですか?UIMap.csTestMethod

4

1 に答える 1

1

答えてくれてありがとう、しかし私は次の方法で自分の問題を解決しました:

UIMap.cs

public partial class TestLittleAppUIMap
{
    private MyWindow mMyWindow;
    public MyWindow MMyWindow
    {
        get
        {
            if (this.mMyWindow == null)
            {
                this.mMyWindow = new MyWindow();
            }
            return this.mMyWindow;
        }
    }
}

public class MyWindow : WpfWindow
{ 
    private WpfEdit mWpfEdit;

    public MyWindow()
    {
        this.SearchProperties[WpfWindow.PropertyNames.Name] = "MainWindow";
        this.SearchProperties.Add(new PropertyExpression(WpfWindow.PropertyNames.ClassName, "HwndWrapper", PropertyExpressionOperator.Contains));
        this.WindowTitles.Add("MainWindow");
    }

    public WpfEdit MWpfEdit
    {
        get
        {
            if ((this.mWpfEdit == null))
            {
                this.mWpfEdit = new WpfEdit(this);
                #region Search Criteria
                this.mWpfEdit.SearchProperties[WpfEdit.PropertyNames.AutomationId] = "forOwn";
                this.mWpfEdit.WindowTitles.Add("MainWindow");
                #endregion
            }
            return this.mWpfEdit;
        }
    }

CodedUI テスト

[TestMethod]
public void TestLittleAppOwnMap()
{
    this.UIMap.MMyWindow.MWpfEdit.DrawHighlight();
    Playback.Wait(2500);
}

これはほぼデザイナー クラスのコピーです。

で直接検索するには、次のTestMethodようにします。

[TestMethod]
public void TestLittleAppOwn()
{
    WpfWindow w = new WpfWindow();
    w.SearchProperties[WpfWindow.PropertyNames.Name] = "MainWindow";
    w.SearchProperties.Add(new PropertyExpression(WpfWindow.PropertyNames.ClassName, "HwndWrapper", PropertyExpressionOperator.Contains));
    w.DrawHighlight();

    WpfEdit e = new WpfEdit(w);
    e.SearchProperties[WpfEdit.PropertyNames.AutomationId] = "forOwn";
    e.SetProperty("Text","myText");
    e.DrawHighlight();
    Playback.Wait(2500);
}

ハイPlayback.Waitライトが表示されるまで少し待ちます。

于 2012-04-13T08:49:00.900 に答える