单击C#中的geckoWebBrowser中的一个链接

时间:2019-09-22 06:10:10

标签: c# web-crawler

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

这是我的代码:

const getObject = items => JSON.stringify(items.map(item => ({ [item.name]: item.props })));

// JSON Object  
var items = [{
    name: "item 1",
    id: 2,
    props: {
      a: "a prop1",
      b: "b prop1",
    },
    values: [1, 2, 3],
  },
  {
    name: "item 2",
    id: 3,
    props: {
      a: "a prop2",
      b: "b prop2",
    },
    values: [6, 1, 2, 3, 4],
  },
  {
    name: "item 3",
    id: 4,
    props: {
      a: "a prop3",
      c: "c prop3",
    },
    values: [10, 1, 2, 3, 4, 5],
  },
];


console.log(getObject(items));

我想单击一个链接:

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");    
}

有人可以帮助我吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

我只是在一个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;