从子元素获取文档

时间:2015-02-09 17:51:16

标签: coded-ui-tests

在Web应用程序上下文中,是否可以,如果是,如何让DocumentUIMap中获得某个子元素的句柄? 例如,我的UIMap就是这样的 enter image description here

例如,Link_Logout处理,我需要进入树中并获得Document。提前谢谢。

为了澄清一下,我在许多网页上都有一个Telerik组合框控件,所以我决定创建一个简单的自定义类来处理控件。首先,我实现了它传递两个参数:UITestControl和字符串id:

    private UITestControl mDocument;
    private string mElementId;
    private HtmlDiv mDropDown;
    private HtmlEdit mEditBox;

    public TelerikComboBox(UITestControl document, String elementId)
    {
        mDocument = document;
        mElementId = elementId;

        mDropDown = new HtmlDiv(document);
        mDropDown.SearchProperties.Add(HtmlDiv.PropertyNames.Id, mElementId + "_DropDown", PropertyExpressionOperator.Contains);

        mEditBox = new HtmlEdit(document);
        mEditBox.SearchProperties.Add(HtmlEdit.PropertyNames.Id, mElementId + "_Input", PropertyExpressionOperator.Contains);

        mArrow = new HtmlHyperlink(document);
        mArrow.SearchProperties.Add(HtmlEdit.PropertyNames.Id, mElementId + "_Arrow", PropertyExpressionOperator.Contains);
    }

要初始化它,我必须致电

public static TelerikComboBox comboBox
{
    get { return new TelerikComboBox(new MainMenuMap().Window.Document, "ctl00_comonHeader_list"); }
}

在优化方面,我想传递一个参数 - 根div元素,存储在UIMap中:

public static TelerikComboBox myCombo
{
    get { return new TelerikComboBox(new MainMenuUIMap().Window.Document.MyTelerikCombo); }
}

。 。

public TelerikComboBox(HtmlDiv element)
    {
        mElementId = element.Id;
        mDropDown = new HtmlDiv(element);
        mDropDown.SearchProperties.Add(HtmlDiv.PropertyNames.Id, mElementId + "_DropDown", PropertyExpressionOperator.Contains);

        mEditBox = new HtmlEdit(element);
        mEditBox.SearchProperties.Add(HtmlEdit.PropertyNames.Id, mElementId  + "_Input", PropertyExpressionOperator.Contains);

        mArrow = new HtmlHyperlink(element);
        mArrow.SearchProperties.Add(HtmlEdit.PropertyNames.Id, mElementId + "_Arrow", PropertyExpressionOperator.Contains);
    }

问题是虽然“_Input”和“_Arrow”位于控件的根目录中,但“_DropDown”部分放在HTML之外,导致Failed to find any control that matched the search condition异常。所以我想也许我可以以某种方式上升树并检索UITestControl Document以避免将多个参数传递给该方法。

0 个答案:

没有答案