Estoy escribiendo un bot para mí que se supone que debe completar automáticamente los formularios de entrada y hacer clic en los botones de las páginas html.
El problema al que me enfrento es que en ciertas páginas, mi secuencia de comandos solo comienza a funcionar cuando hago clic manualmente en algún lugar dentro de esa página .
Sé que mi problema está relacionado con el evento de window focus , así que traté de agregar window.focus(); a la parte del código del bot que opera en la página en cuestión. Esto no da ningún error y solo funciona si hago clic manualmente en la página.
¿Existe la posibilidad de que la ventana con la que está luchando mi bot se limite de alguna manera a centrarse solo en el clic del usuario?
En cualquier caso quiero llegar a una idea de superarlo.
El flujo de trabajo de mi bot es un montón de piezas como esta:
let wait = setInterval(() => { if ($("#SOME_INPUT_ID").length) { clearInterval(wait); // window.focus() <--- does not work, and i still have to click somewhere on the page console.log('ready to fill SOME_INPUT_ID'); change("SOME_INPUT_ID", 'STRING_TO_FILL_SOME_INPUT_ID'); //...FIND A BUTTON TO PROCEED TO THE NEXT PAGE AND CLICK IT } }, 1000);Cambiar la función que uso para cambiar los valores de entrada:
const change = (el, value) => { var event = new Event('change', { bubbles: true }); var evnt = new Event('focus'); var evt = new Event('blur'); if (document.getElementById(el)) { var element = document.getElementById(el); if (element) { element.focus(); element.dispatchEvent(evnt); element.value = value; element.dispatchEvent(event); element.blur(); element.dispatchEvent(evt); } } }