我需要在Selenium中滚动页面几乎到页面末尾(150px直到底部)。但我的代码不起作用。它滚动到底部。它是如何解决的?
IWebElement element = (IWebElement)((IJavaScriptExecutor)driver).ExecuteScript("javascript:window.scrollBy(0,document.body.scrollHeight-150)");
答案 0 :(得分:15)
试试这个:
((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight - 150)");
一些注意事项:
IWebElement
,因此不需要IWebElement element =
部分。javascript:
部分答案 1 :(得分:1)
您可以使用javascript的scrollTo方法滚动到所需的位置。
public void scrollToElement(By by) {
Locatable element = (Locatable) selenium.findElement(by);
Point p= element.getCoordinates().getLocationOnScreen();
JavascriptExecutor js = (JavascriptExecutor) selenium;
js.executeScript("window.scrollTo(" + p.getX() + "," + (p.getY()) + ");");
}
答案 2 :(得分:0)
这对我有用:)
public IWebElement ScrollTo(IWebElement element)
{
((IJavaScriptExecutor)Driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);
return element;
}