(function () { const wait = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); async function continueInput() { await wait(3000); console.log("Type continue after 1 second"); const textarea = document.querySelector("#prompt-textarea"); textarea.value = "继续" textarea.click(); console.log("Press Enter after 1 second"); await wait(1000); let event = new InputEvent("input", { bubbles: true }); // dispatch the event on some DOM element textarea.dispatchEvent(event); console.log("Press Send after 1 second"); await wait(1000); document.querySelector("button[data-testid=send-button]").click(); console.log("Done"); } const observer = new MutationObserver(() => { // Find the button of 'Regenerate' [...document.querySelectorAll("button.btn")].forEach((btn) => { if (btn.innerText.includes("Regenerate")) { continueInput(); } if (btn.innerText.includes("Continue generating")) { console.log("Found the button of 'Continue generating'"); setTimeout(() => { console.log("Clicked it to continue generating after 1 second"); btn.click(); }, 3000); } }); }); // Start observing the dom change of the form observer.observe(document.forms[0], { attributes: false, childList: true, subtree: true, }); })();