首页 > 解决方案 > 使用 JavaScript 单击按钮或鼠标的当前位置以保持 Google Colab 笔记本处于活动状态

问题描述

即使我出去一段时间,我也试图让 Google 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 小时。

标签: javascriptjquerygoogle-chromegoogle-colaboratoryconsole.log

解决方案


首先,在排队下一个超时之前,您不需要等待给定的超时完成。您将需要正确处理超时的异步行为以完成您想要的。

相反,您可以使用setInterval代替setTimeout并注意这两个函数都需要ms毫秒而不是s秒。在指定后重复setInterval调用给定。所以:callbackms

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

推荐阅读