如何调用div标签子元素中的onclick事件

时间:2014-07-15 17:56:14

标签: c# .net webbrowser-control

需要从没有ID或名称的div标签的子元素调用onclick方法。在我的网站上有很多div标签。我想遍历具有类名的特定div标签,并获取其子元素一个标签,该标签也具有id并调用其中包含的onclick方法。 HTML:

  新事件

我在c#中使用了Web浏览器控件,但由于很多div标签都存在,因此无法访问该标签并调用该方法。 PS没有htmlagilitypack。它是一个安全的环境,我无法下载这些包。

2 个答案:

答案 0 :(得分:0)

如果您不想使用HtmlAgilityPack,可以使用C#XPath API。它的功能完全相同。除了Regex之外,这可能是最简单的方法。

答案 1 :(得分:0)

如果子元素'确实有id'那么这个id在HTML文档中应该是唯一的,然后点击'在C#代码的子元素上可以实现如下:

        var doc = webBrowser1.Document;
        string childTagId = "{{type your child tag id here}}";

        doc.GetElementById(childTagId).InvokeMember("click");

但是,如果子标记的ID在HTML文档中不是唯一的,并且DIV的类名是唯一的(根据您的描述进行假设),那么C#代码将变为:

        var doc = webBrowser1.Document;
        string childTagId = "{{type your child tag id here}}";
        string className = "{{type your test className here}}";
        string childTagName = "{{type your child tag name here}}";

        doc.GetElementsByTagName("div").OfType<System.Windows.Forms.HtmlElement>()
                 .Where(x => x.GetAttribute("className") == className).First()
                 .All.OfType<System.Windows.Forms.HtmlElement>()
                 .Where(x => string.Compare(x.TagName, childTagName, true) == 0 &&
                             x.GetAttribute("id") == childTagId)
                 .First()
                 .InvokeMember("click");