查找没有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)
无法找到导致控件的。有人能帮我一下吗?
像这样:
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;
}