如何循环点击按钮

时间:2016-01-24 23:08:47

标签: c# regex

我正在使用GeckoFX和C#中的正则表达式来制作YouTube视频频道。我想获取所选频道中所有视频的网址。

我想使用GeckoFX(Firefox渲染引擎)转到视频部分,然后点击Load more按钮,直到每个视频显示。

我正在使用此代码一遍又一遍地点击Load more

javascript:(function() {

  var LoadButton, IntervalCLB;
  IntervalCLB = setInterval(_clickLoadButton, 100);

  function _clickLoadButton() {
    LoadButton = document.getElementsByClassName('load-more-button');
    if (LoadButton.length > 0) {
      LoadButton[0].click();
    }
    else {
      clearInterval(IntervalCLB);
      alert('Finished - Clicked all "Load More" Buttons.');
    }
  }
})();

我想在C#中写出类似的内容。

我的代码如下:

System.Threading.Thread.Sleep(1000);

GeckoDocument document = geckoWebBrowser1.Document;

GeckoHtmlElement Male = (GeckoHtmlElement)document.GetElementsByClassName("load-more-button")[0];

if ( Male != null ) {
    Male.Click();
}

但是,只需在一秒钟后点击Load more

如何在Load more按钮消失之前循环播放?

1 个答案:

答案 0 :(得分:-1)

  Timer timer = new Timer(1000);
  timer.Elapsed += ( sender, e ) => {

    GeckoDocument document = geckoWebBrowser1.Document;

    GeckoHtmlElement Male = (GeckoHtmlElement)document.GetElementsByClassName("load-more-button")[0];

    if ( Male != null ) {
        Male.Click();
    }
  };
  timer.Start();

但实际上,我建议您查看YouTube API:https://developers.google.com/youtube/v3/code_samples/dotnet