如何在网络浏览器C#

时间:2018-07-14 20:54:42

标签: c# .net winforms webbrowser-control

我想在Web浏览器控件中为div设置click事件,该div没有id,所以我按标题搜索它。 并像我使用按钮控件一样设置一个单击,但是它不起作用。 这是我的代码:

private void button3_Click(object sender, EventArgs e)
{
    var links = webBrowser1.Document.GetElementsByTagName("div");
    foreach (HtmlElement link in links)
    {
        if (link.GetAttribute("title").Equals("div_name"))
        {
            link.InvokeMember("click");
            return;
        }
    }
}

有什么想法吗? 并预先感谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试这个。

在这种情况下,我已经修改了现有的解决方案。添加脚本来做到这一点:

private void button3_Click(object sender, EventArgs e)
{
    var links = webBrowser1.Document.GetElementsByTagName("div");
    foreach (HtmlElement link in links)
    {
        if (link.GetAttribute("title").Equals("div_name"))
        {
            HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
            HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
            IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
            element.text = "function clickTitle() { document.getElementById('" + link.GetAttribute("id") + "').click(); }";
            head.AppendChild(scriptEl);
            webBrowser1.Document.InvokeScript("clickTitle");
        }
    }
}

它添加了一个JavaScript脚本来单击它,然后单击它。假定该元素具有ID。