如何循环单击按钮
本文关键字:单击 按钮 循环 何循环 | 更新日期: 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