使用JavaScript点击按钮或鼠标的当前位置,使Google Colab笔记本保持活力



即使我出去一段时间,我也在努力让谷歌Colab笔记本保持几个小时的活力。不知道的人只应该知道,如果你不手动干预,那么流程就会停止,你的所有工作都会丢失。

我希望我的鼠标以15分钟的间隔在当前位置持续点击12小时。这对我来说是最好的情况。如果我能在不影响鼠标位置的情况下添加一点上下滚动,那就太好了。显然,我不知道如何做到这一点,所以我选择了其他选项,比如选择一个可点击的元素并点击一段时间。如果是Python和Selenium,我会这么做的,但不知怎么的,我可以选择一个位置并编写一个代码:

run_buttons = document.getElementsByTagName('colab-run-button')
for (i = 0; i < 50; i++) {setTimeout(() => { run_buttons[run_buttons.length-1].click() ; }, 100);
}

问题是它的点击速度太快,没有时间间隔。我如何应用Python风格的time.sleep(),以便控制台内的代码每隔20分钟点击按钮12小时。

首先,您不需要等待给定的超时完成,然后再排队等待下一个超时。您将需要正确地处理超时的异步行为来实现您想要的。

相反,您可以使用setInterval而不是setTimeout,注意这两个函数都以ms毫秒而非s秒为单位。setInterval在指定的ms之后重复调用给定的callback。因此:

var keepAliveInterval = setInterval(() => { play_buttons[43].click() ; }, 15 * 60 * 1000); // 15 * 60 * 1000 = 15 minutes in milliseconds

要停止此间隔,您可以有一个单一的超时:

setTimeout(() => { clearInterval(keepAliveInterval) }, 24 * 60 * 60 * 1000); // 24 * 60 * 60 * 1000 = 24 hours in milliseconds

最新更新