C#webBrowser获取类中的元素

时间:2016-07-10 19:37:44

标签: c#

我试图点击课程中的链接。它无法搜索标签,ID或类似内容,因为程序正在刷新页面,直到有可用的票证。

html代码如下所示:

<div class="items available">
    <div class="item">
        <a href="link.com">
    </div>
    //more item classes
<div class="items sold">
    <div class="item">
        <a href="link.com">
    </div>
    //more item classes

我认为我需要&#34;可用项目中的内容&#34;,然后项目的内容,我需要点击一个元素(只有一个元素)。但我怎么能这样做?

这是我认为需要做的事情。

foreach (HtmlElement el in webBrowser1.Document.GetElementsByTagName("div"))
{
    if (el.GetAttribute("className") == "items available")
    {
        foreach (HtmlElement el2 in //get all elements within items available)
        {
            if (el2.GetAttribute("className") == "item")
            //i think it will get the first item class within items available    
           {
               foreach (HtmlElement el3 in //get all a elements within item)
               {
                    el3.InvokeMember("click");
                    break;
               }

            }
         }
     }
}

但这有可能吗?我希望如此!!

感谢!!!

1 个答案:

答案 0 :(得分:0)

您可以使用HtmlAgilityPack,这是从页面中提取元素的推荐方法。

使用Nuget安装HtmlAgilityPack。以下是可能是您的起点的样本。

HtmlDocument _doc = web.Load(url);
var myClasses = _doc.DocumentNode.Descendants("div").Where(d => 
    d.Attributes.Contains("items available")
);

然后你可以循环myClasses集合。