Tengo una pequeña extensión de Chrome como proyecto para principiantes y tengo la siguiente situación.
Supongamos que tengo un sitio web con un botón de búsqueda. Cuando se presiona el botón, pueden aparecer dos opciones:
Esta es la parte relevante del código que tengo:
mouseEventClick('#search'); // Search btn await sleep(250); // hard coded sleep timer // here I need a way to wait for the #buy button is clickable. try { mouseEventClick('#buy'); // click buy btn } catch { await sleep(750); mouseEventClick('#back'); // no result - go back to search mask } En lugar de await sleep(250) , me gustaría que sea de esa manera que la aplicación esté esperando hasta que el botón #buy se cargue en el DOM y se pueda hacer clic en él. Entonces debería ir al bloque de código de try .
Pero no quiero que espere para siempre. Me gustaría dejarlo esperar max. 1 segundo y si #buy btn no aparece después de ese 1 segundo, aún debe intentarlo.
Entonces, lo que quiero lograr es un temporizador de suspensión flexible entre hacer clic #search y el resultado de la búsqueda que espera exactamente hasta que se puede hacer clic en el elemento, pero no más de 1 segundo.