2013-09-16 3 views
3

Мне нужна страница scrool в Selenium почти до конца страницы (150 пикселей до дна). Но мой код не работает. Это прокрутка вниз. Как это исправить?Прокрутите страницу до конца в 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

Вы можете прокручивать до нужного места с помощью метода scrollTo в JavaScript.

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

хороший ответ, потому что я нашел его полезным для своего сценария, спасибо –

Смежные вопросы