在ItemTemplate中找到Border的自动化ID的麻烦

时间:2014-07-01 14:11:50

标签: wpf datatemplate coded-ui-tests

对于遵循以下层次结构

的类,我有 DataTemplate

enter image description here

我已经为每个控件提供了 AutomationId 。 当我尝试使用编码的UI测试构建器检测突出显示的边框时,我无法找到它。而我直接将Checkbox放在其中一个子控件中。

由于此问题,我无法自动执行此父控件(Border)。 如果我放置 GroupBox 而不是Border,我可以获得此控件。

发布了实际的datatemplate Here

请帮忙。

1 个答案:

答案 0 :(得分:1)

您应该能够使用Coded UI Test Builder的十字准线来达到关卡。只需用十字线指向它,当它指向复选框时,使用箭头导航树。

Coded UI Test Builder snapshot

另一个建议是使用C#手动将其添加到地图中。这可以通过为控件指定标识属性来完成。但是,我认为您可能无法使用AutomationProperties.NameAutomationProperties.AutomationId。您可以更好地添加Name property to the border并使用该功能识别控件。

所以:

public HtmlControl BorderOrangeBorder
{
    get
    {
        HtmlControl target = new HtmlControl([browser]);
        target.SearchProperties["name"] = "OrangeBorder";
        return target;
    }
}