我遇到了问题,因为我需要向下滚动页面,
所以我决定使用IJavaScriptExecutor
IJavaScriptExecutor js = (IJavaScriptExecutor) driver;
js.executeScript("window.scrollBy(0,1000)");
我也尝试过
js.ExecuteScript("arguments[0].scrollIntoView();", invite);
js.ExecuteScript("window.scrollTo(0, document.body.scrollHeight)");
但这不起作用。
答案 0 :(得分:0)
在尝试向下滚动页面之前,请确保DOM Tree已完全呈现。 在这里您可以找到详细的讨论How can I make sure if some HTML elements are loaded for Selenium + Python?
完成页面加载后,您可以按以下方式调用scroll()
方法:
向下滚动250个像素:
IJavaScriptExecutor js = (IJavaScriptExecutor) driver;
js.ExecuteScript("window.scrollBy(0,250)", "");
要向下滚动整个页面:
IJavaScriptExecutor js = (IJavaScriptExecutor) driver;
js.ExecuteScript("window.scrollTo(0, document.body.scrollHeight)");
要将元素滚动到视图中:
IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementIsVisible(By.CssSelector("css_element")));
IJavaScriptExecutor js = (IJavaScriptExecutor) driver;
js.ExecuteScript("arguments[0].scrollIntoView(true);",element);
答案 1 :(得分:0)