查找没有ID的较低级别List Item

本文关键字:List Item 较低级 ID 查找 | 更新日期: 2023-09-27 18:13:56

我正在使用c#试验CodedUI,并且遇到了一些麻烦。我有一个包含ID的<div>,然后是一个非唯一标识的<ul>,带有几个<li>标签,如下所示:

<div id="uniqueIdValue" class"long_class" activetabindex="0" sfwtabcontainer="true">
   <ul class="long_class2">::before
      <li class="sharedListItemClass" sfwtabheader="true">...</li>
      <li class="sharedListItemClass" sfwtabheader="true">
           <a href="#someValue">History</a>
      </li>
      <li class="sharedListItemClass" sfwtabheader="true">...</li>
      ::after
   </ul>

我如何在包含我的<a>标记的第二个列表项(或<a>内)上设置Mouse.Click(...)与"历史"的测试?

我已经尝试了我能想到的每一个组合来指定这个标签本身,一直到指定父节点,并试图获得"TagInstance":

var container = new HtmlControl(_bw);
HtmlDiv nameForDiv = new HtmlDiv(container);
nameForDiv.SearchProperties[HtmlDiv.PropertyNames.Id] = "uniqueDivIdentifier";
nameForDiv.SearchProperties[HtmlDiv.PropertyNames.Class] = "long Multiple_Classes";
var historyTab = new HtmlHyperlink(nameForDiv);
historyTab.SearchProperties[HtmlHyperlink.PropertyNames.Href] = "#someValue";
historyTab.SearchProperties[HtmlHyperlink.PropertyNames.TagInstance] = "2";
Mouse.Click(historyTab)
无法找到导致控件的

。有人能帮我一下吗?

查找没有ID的较低级别List Item

像这样:

    var browser = BrowserWindow.Launch("url");
    private void ClickLink()
    {
        var parent = GetPaneID(browser, "uniqueIdValue");
        var child = parent.GetChildren()[0];
        var child2 = child.GetChildren()[1];
        var child3 = child2.GetChildren()[0];
        Mouse.Click(child3);       
    }

方法GetPaneId()如下所示:

    public HtmlDiv GetPaneID(UITestControl parent, string id)
    {
        var gpane = new HtmlDiv(parent);
        gpane.SearchProperties.Add(HtmlDiv.PropertyNames.Id, id);
        return gpane;
    }
相关文章: