如何循环单击按钮

本文关键字:单击 按钮 循环 何循环 | 更新日期: 2023-09-27 18:31:38

我正在使用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按钮消失?

如何循环单击按钮

  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