假设我们在HTML文档中有以下列表:
<ul id="menu">
<li><a href="/">Home</a></li>
<li><a href="/Page">Page</a></li>
</ul>
如何以简洁的方式验证WatiN“菜单”是否包含这些超链接?
答案 0 :(得分:0)
您可以查找带有菜单ID的UL,然后检查其后代,看看是否有链接指向您所期望的链接。这将是这些方面的事情(如果我没有正确的方法名称,请原谅我。)
var menuDiv = Browser.Current.Div(Find.ById("menu"));
Assert.That(menuDiv.Find.By("href", "/Page").Exists);
答案 1 :(得分:0)
我最终得到了这个解决方案,这是我能想到的最好的解决方案:
private static void CheckMenu(string title)
{
Browser browser = WebBrowser.Current;
// Verify menu
WatiN.Core.List menu = browser.List("menu");
var links = menu.OwnListItems.Select(item => item.Links[0]).ToList();
Assert.That(links.Count, Is.EqualTo(2));
CheckLink(links[0], "/", "Home");
CheckLink(links[1], "/Page", "Page");
}
private static void CheckLink(Link link, string path, string text)
{
// The href value is translated to an absolute URL, gah :/
Assert.That(link.GetAttributeValue("href"), Is.StringMatching(
string.Format("[^:]+://[^/]+{0}", path)));
Assert.That(link.Text, Is.EqualTo(text));
}
基本上,我确认有两个列表项,并且它们包含指向“/”的链接“Home”和指向“/ Page”的链接“Page”。