使用'WatiN'解析浏览器中的每个li标签

时间:2012-07-04 06:46:13

标签: c# watin

我正在使用watin dll浏览网页,点击li标记中的链接,转到下一页,获取一些数据,返回上一页并点击下一个链接{ {1}}标记。

我可以使用li标记中的一个链接执行此操作。我希望li下的所有li标记点击每个链接,然后执行上述步骤。如何获取所有ul <classname>并遍历每个页面?

页面的HTML代码如下:

li

3 个答案:

答案 0 :(得分:1)

您可以尝试使用此代码(Linq to XML)

var xdoc = XDocument.Load(yourFile);

var terms= from term in xdoc.Descendants("ul")
        select new
        {
              Class= term.Attribute("class").Value
        };

foreach(var li in terms)
{
   Console.Write(li.Class);
}

答案 1 :(得分:1)

试试这个:

LinkCollection links = ie.Links;
foreach (var link in links)
{
    link.Click();
    // Do something
    ie.Back();
}

答案 2 :(得分:1)

HTH!

private void CrawlSite()
{
    int idx = 0;
    do
    {
        idx = this.ClickLink(idx);
    }
    while (idx != -1);
}

private int ClickLink(int idx)
{
    WatiN.Core.Browser browser = GetBrowser();

    ListItemCollection listItems = browser.List("ul_classname").ListItems;
    if (idx > listItems.Count - 1)
        return -1;

    Link lnk = listItems[idx].Link(Find.ByClass("a class_name"));
    lnk.Click();

    //TODO: get your data

    browser.Back();

    return idx + 1;
}