12

質問

AutomationProperties.NameプロパティがXAMLでプログラム的および宣言的にどのように使用されるかを誰かが(できればコード例で)説明できますか?

説明

たとえば、VisualStudio2010のCodedUIBuilderは、ウィンドウの名前をSearchPropertyとして使用することを理解しています。

ウィンドウの名前が変更されたため、コード化されたUIテストが信頼できる一定のSearchPropertyが必要です。

以下のコード例では、ウィンドウのタイトルが「パイプ1のプロパティ」としてハードコーディングされないようにします。

コード例

[GeneratedCode("Coded UITest Builder", "10.0.30319.1")]
public class UIListViewPropertiesTable1 : WpfTable
{
    
    public UIListViewPropertiesTable1(UITestControl searchLimitContainer) : 
            base(searchLimitContainer)
    {
        #region Search Criteria
        this.SearchProperties[WpfTable.PropertyNames.AutomationId] = "listViewProperties";
        this.WindowTitles.Add("Properties of Pipe 1");
        #endregion
    }
    
    #region Properties
    public WpfText NameOfComponent
    {
        get
        {
            if ((this.mNameOfComponent == null))
            {
                this.mNameOfComponent = new WpfText(this);
                #region Search Criteria
                this.mNameOfComponent.SearchProperties[WpfText.PropertyNames.Name] = "Pipe 1";
                this.mNameOfComponent.WindowTitles.Add("Properties of Pipe 1");
                #endregion
            }
            return this.mNameOfComponent;
        }
    }
    #endregion
    
    #region Fields
    private WpfText mNameOfComponent;
    #endregion
}

リンク

次に例を示します。方法:データバインドされたWPFリストまたはコンボボックスで自動化を適切に機能させる。私はそれをウィンドウに適応させることができませんでした。

4

3 に答える 3

12

以下を使用して、XAML で添付プロパティAutomationProperties.Nameを変更できます。

AutomationProperties.Name = "新しい名前"

またはコードで次を使用します。

Button.SetValue(AutomationProperties.NameProperty, "新しい値");
または
AutomationProperties.SetName(Button, "新しい値");

于 2012-11-05T12:16:51.383 に答える
1

ウィンドウタイトルをパラメータとしてその親に渡し、初期化中にこのパラメータを設定できます。

私はこのようにして、うまく機能します。

于 2012-10-05T07:48:03.200 に答える
0

それを回避する方法はありますが、少し醜いです。

ウィンドウへの参照を含むプロパティがキャッシュされ、毎回検索されるわけではないという事実を使用します。

uimap クラスは部分クラスであり、uimap クラスの一部として数えられるコードを uimap.cs ファイルに含めることができます。

パラメータとしてウィンドウ タイトルを受け取り、検索を実行し、見つかったウィンドウを生成されたコードの UIListViewPropertiesTable1 プロパティに入れるメソッドをそこに追加します。

于 2012-08-28T01:15:18.260 に答える