La página nunca termina de cargar, sea cual sea el tiempo de espera
Diez segundos: falla. Cuarenta y cinco segundos: el mismo fallo. El destino no es lento — nunca va a terminar, y ningún tiempo de espera lo cambiará.
El síntoma. TimeoutError en la navegación inicial. Sube --timeout de
10 s a 45 s. Vuelve a fallar, exactamente igual.
Ese fallo idéntico es el diagnóstico: no es un problema de duración.
Lo que Diwall espera
Por defecto, la navegación termina con networkidle — 500 ms de silencio de
red. Es un buen valor por defecto: significa que la página se ha asentado de
verdad, que los scripts se han ejecutado, que el contenido ha llegado.
Algunos destinos nunca se callan. Un panel de control que refresca contadores, un panel de estadísticas en directo, la interfaz de administración de un router que consulta su propio estado — hablan con la red sin parar, por diseño. No hay ningún momento de calma que esperar, así que Diwall espera hasta agotar el tiempo, cada vez, sea cual sea la duración.
Cambiar la condición, no la duración
diwall-shot --url http://target.local/ --wait-until load --som --a11y \
--guide-version 1.3
--wait-until load termina cuando se dispara el evento de carga de la propia
página, sin exigir silencio de red. La misma opción existe en diwall-rpa, que
la transmite.
Un escenario puede llevarla como propiedad de primer nivel, para ser autosuficiente — quien reutilice su escenario no tiene que conocer la manía del destino:
{"url": "http://target.local/", "wait_until": "load", "actions": [...]}
La línea de comandos prevalece sobre el escenario A diferencia de las opciones booleanas, que se combinan, esta lleva un valor — y dos valores no se suman. Si ambos están definidos, decide la opción de la línea de comandos.
Qué valor usar
| Valor | Termina con | Úselo cuando |
|---|---|---|
networkidle | 500 ms de silencio de red | es el valor por defecto — manténgalo mientras funcione |
load | el evento de carga de la página | el destino consulta la red sin parar |
domcontentloaded | el HTML analizado, subrecursos pendientes | necesita la vista más temprana posible |
No recurra a load por precaución. El valor por defecto le da una página que ha
terminado de llegar; cambiarlo supone aceptar que parte del contenido siga en
camino en el momento de la captura. Cámbielo cuando el valor por defecto falle,
no antes.
Cómo distinguirlo de una página lenta
Una página lenta acaba funcionando si se espera lo suficiente — subir el tiempo de espera cambia el resultado. Una página que nunca se calla falla igual con cualquier duración.
La prueba sale barata: ejecútelo dos veces, una con el tiempo por defecto y otra con uno mucho mayor. ¿Mismo fallo, misma rapidez? Cambie la condición. ¿Comportamiento distinto? Tiene un destino corriente y lento, y el tiempo de espera es el mando correcto.
En resumen
- Fallo idéntico a 10 s y a 45 s = condición equivocada, no duración equivocada.
--wait-until loadpara destinos que consultan la red sin parar.- Póngalo en el escenario para que viaje con el destino.
- Mantenga
networkidleen todo lo demás.