¡Buen día a todos!
Tengo una página web con carga diferida habilitada y me gustaría desplazarme hasta la parte inferior de la página, pero con una espera, para que se puedan ver los nuevos componentes en la página.
En este momento, estoy probando JavaScript, pero simplemente se desplaza hasta la parte inferior de la página, lo que no revela ningún elemento nuevo y, como resultado, mis pruebas fallan.
¿Podría alguien por favor ayudarme?
A continuación se muestra el código para ScrollToBottom
public static void ScrollToBottom(this IWebDriver Driver) { Driver.ExecuteJavaScript("window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' })"); }Y el código completo para ScrollUntilNoLazyLoad
public static void ScrollUntilNoLazyLoad(this IWebDriver Driver, string locator = null) { ThreadHelper.VoidWait(() => { var before = Driver.PageSource; Driver.ScrollToBottom(); Thread.Sleep(2000); var after = Driver.PageSource; if (!before.Equals(after)) Driver.ExecuteJavaScript("window.scrollBy(0, -250)"); Thread.Sleep(2000); var after2 = Driver.PageSource; if (locator.IsNullOrEmpty()) { if (!before.Equals(after2)) throw new ArgumentException("due to lazy load new items have been added, scrolling will continue."); } else { if (Driver.TryFind(locator, IWebElementState.Displayed, 500).IsNull()) throw new ArgumentException("Element is not yet displayed!"); } }, false); }