2013-09-16 59 views
3

我需要Selenium中的scrool頁面,幾乎到頁面的末尾(150px直到底部)。但我的代碼不起作用。它滾動到底部。它如何修復?將頁面滾動到Selenium的末端

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

回答

11

試試這個:

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

的幾個注意事項:

  • 您正在執行一個命令來滾動,它不返回IWebElement,所以沒有需要有IWebElement element =部分。
  • 既然要滾動到一個絕對位置,您不需要javascript:部分無論是
  • scrollTo是一個更適合
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()) + ");"); 
} 
+0

很好的答案,因爲我發現它對於我的情況下是有用的,謝謝 –