Estoy tratando de desplazar mi ventana hacia arriba en un entorno de prueba automatizado, pero esto simplemente no funciona (tampoco hay errores en la consola):
public void ScrollToTheTop() { if (this.driver is RemoteWebDriver remoteDriver) { IJavaScriptExecutor jex = remoteDriver; jex.ExecuteScript("window.scrollTo(0,0)"); } } Ahora, si intento ejecutar jex.ExecuteScript("alert('Something')") , funciona bien, lo que significa que js se ejecuta correctamente. Pero, por alguna razón, las operaciones de desplazamiento no funcionan (también probé scrollBy() ).
¿Alguien sabe cómo ejecutar scripts de desplazamiento? Gracias.
Si desea desplazarse en C#, utilizando ExecuteScript, utilice el siguiente código:
((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollTo(0, Y)"); Donde Y debería ser el eje vertical.
para desplazarse hacia abajo:
((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollTo(0, 200)");o para desplazarse hacia arriba:
((IJavaScriptExecutor)Driver).ExecuteScript("window.scrollTo(0, -200)");Para pasar a un elemento web específico en los enlaces de C#-Selenium :
IWebElement e = Driver.FindElement(By.XPath(xpath of the web element)); ((IJavaScriptExecutor)Driver).ExecuteScript("arguments[0].scrollIntoView(true);", e);para moverse hasta el final de la página:
((IJavaScriptExecutor)Driver).ExecuteScript("var scrollingElement = (document.scrollingElement || document.body);scrollingElement.scrollTop = scrollingElement.scrollHeight;");