Cómo detener el tiempo de espera de una página de actualización si el elemento no es visible C# y playwright.net

programación


Tengo una secuencia de comandos a continuación que actualiza la página automáticamente si un elemento no está visible usando una secuencia de comandos de automatización, y esto funciona, pero quiero que deje de actualizarse después de un período de tiempo, por ejemplo, 20 segundos o varias veces si el elemento no está visible. la prueba fallará y, por lo tanto, no terminará siendo infinitamente refrescante. El siguiente código funciona si el elemento es visible, pero si no lo es, se actualiza infinitamente. ¿Alguna idea de cómo solucionarlo, por favor? Gracias

C#
do {
await Page.ReloadAsync(new PageReloadOptions() { Timeout = 5000 }); } 
while (!await Page.IsVisibleAsync("input[name='elementname']"))

Lo que he probado:

Probé el siguiente código, pero se actualiza infinitamente si el elemento no está visible:

C#
do {
await Page.ReloadAsync(new PageReloadOptions() { Timeout = 5000 }); } 
while (!await Page.IsVisibleAsync("input[name='elementname']"))

Solución 1

En primer lugar, si esto sucede con frecuencia, podría considerar aumentar el tiempo de espera para que la recarga tenga más tiempo para completarse por intento.
En respuesta a su pregunta, agregue un recuento incremental y utilícelo para activar la salida después de una cierta cantidad de bucles, algo como esto:

C#
int refreshCount = 0;
do {
    await Page.ReloadAsync(new PageReloadOptions() { Timeout = 5000 });
    refreshCount++;
} 
while (!await Page.IsVisibleAsync("input[name='elementname']") && refreshCount < 5)

コメント

タイトルとURLをコピーしました