Нажатие кнопки или в текущем положении мыши с использованием JavaScript, чтобы сохранить блокнот Google Colab. - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь сохранить записную книжку Google Colab на несколько часов, даже если go отключусь на некоторое время. Люди, которые ничего не знают, должны знать только, что если вы не вмешаетесь вручную, процессы остановятся и вся ваша работа будет потеряна.

Я хочу, чтобы моя мышь продолжала щелкать по текущему положение 12 часов с интервалом 15 минут. Для меня это был бы лучший случай. Также, ЕСЛИ я могу добавить немного прокрутки вверх и вниз, не затрагивая положение моей мыши, было бы неплохо. Очевидно, я не знал, как это сделать, поэтому выбрал другие параметры, например, выделил элемент, на который можно щелкнуть, и щелкнул по нему в течение некоторого времени. Если бы это было 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(), чтобы код внутри консоли нажимал кнопку в течение 12 часов с интервалом в 20 минут.

1 Ответ

1 голос
/ 09 июля 2020

Прежде всего, вы не ждете завершения заданного тайм-аута перед постановкой в ​​очередь следующего тайм-аута. Вам нужно будет правильно обработать асинхронное поведение тайм-аутов, чтобы выполнить sh то, что вы хотите.

Вместо этого вы можете использовать setInterval вместо setTimeout и заметить, что обе эти функции занимают время в ms миллисекунды, а не s секунд. setInterval вызывает данное callback после указанного ms повторно . Итак:

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
...