首页 > 解决方案 > 在 C# 中单击 geckoWebBrowser 中的一个链接

问题描述

我想点击一页中的一个链接。

这是我的代码:

private void Button1_Click(object sender, EventArgs e)//GO
{
    if (!Xpcom.IsInitialized) Xpcom.Initialize("Firefox");
    geckoWebBrowser1.Navigate("http://www.tsetmc.com/loader.aspx?ParTree=151311&i=67126881188552864");    
}

我想点击一个链接:

<a href="#" class="violet" onclick="ii.ShowTab(6)">حقیقی-حقوقی</a>

有谁能够帮我?谢谢。

标签: c#web-crawler

解决方案


我刚刚查找了一个 Gecko 项目,我在其中单击了链接,虽然以下可能不是最优雅的方式,但同样的技术应该适合你:

private void geckoWebBrowser1_DocumentCompleted(object sender, EventArgs e)
{
    var elements = geckoWebBrowser1.Document.GetElementsByTagName("a");
    foreach (GeckoHtmlElement element in elements)
    {
        if (element.ClassName == "violet")
        {
            element.ScrollIntoView(false);
            element.Click();
        }
     }
}

我认为ScrollIntoView实际上不需要调用,我只是这样做,因为它是一个动画按钮,我想看看它是否有效。但是您需要等到文档加载完毕后再单击,所以我已将其放入DocumentCompleted事件中,所以在Navigate不要忘记添加之前:

geckoWebBrowser1.DocumentCompleted += geckoWebBrowser1_DocumentCompleted;

推荐阅读