C# 在Selenium中将页面滚动至接近末尾

C# 在Selenium中将页面滚动至接近末尾,c#,selenium,C#,Selenium,我需要scrool在硒页面几乎到页面的结尾(150像素,直到底部)。但是我的代码不起作用。滚动到底部。如何修复 IWebElement element = (IWebElement)((IJavaScriptExecutor)driver).ExecuteScript("javascript:window.scrollBy(0,document.body.scrollHeight-150)"); 试试这个: ((IJavaScriptExecutor)driver).ExecuteScript

我需要scrool在硒页面几乎到页面的结尾(150像素,直到底部)。但是我的代码不起作用。滚动到底部。如何修复

IWebElement element = (IWebElement)((IJavaScriptExecutor)driver).ExecuteScript("javascript:window.scrollBy(0,document.body.scrollHeight-150)");
试试这个:

((IJavaScriptExecutor)driver).ExecuteScript("window.scrollTo(0, document.body.scrollHeight - 150)");
请注意:

  • 您正在执行一个滚动命令,该命令不会返回
    IWebElement
    ,因此不需要使用
    IWebElement=
    部分
  • 您也不需要
    javascript:
    部分
  • 由于您希望滚动到绝对位置,因此更适合

您可以使用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()) + ");");
}

这对我来说很有用:)


回答得好,因为我发现它对我的场景很有用,谢谢
  public IWebElement ScrollTo(IWebElement element)
            {
                ((IJavaScriptExecutor)Driver).ExecuteScript("arguments[0].scrollIntoView(true);", element);
                return element;
            }