使用java在Selenium WebDriver(Selenium 2)中向上或向下滚动页面

Rip*_*sim 58 java scroll selenium-rc selenium-webdriver

我在Selenium 1(又名Selenium RC)中编写了以下代码,用于使用java进行页面滚动:

selenium.getEval("scrollBy(0, 250)");
Run Code Online (Sandbox Code Playgroud)

Selenium 2(WebDriver)中的等效代码是什么?

Rip*_*sim 96

对于向下滚动:

WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,250)");
Run Code Online (Sandbox Code Playgroud)

或者,您可以执行以下操作:

jse.executeScript("scroll(0, 250);");
Run Code Online (Sandbox Code Playgroud)

对于向上滚动:

jse.executeScript("window.scrollBy(0,-250)");
OR,
jse.executeScript("scroll(0, -250);");
Run Code Online (Sandbox Code Playgroud)

  • 不 - 那将滚动到右边.向上滚动将是"滚动(0,-250)" (10认同)
  • 向上滚动(0,-250)是合乎逻辑的.我同意斯蒂芬的观点. (3认同)

小智 39

滚动到页面底部:

JavascriptExecutor js = ((JavascriptExecutor) driver);
js.executeScript("window.scrollTo(0, document.body.scrollHeight)");
Run Code Online (Sandbox Code Playgroud)


小智 13

在Selenium Webdriver中有很多方法可以向上和向下滚动我总是使用Java Script来做同样的事情.

如果我想向上或向下滚动,下面的代码总是对我有用

 // This  will scroll page 400 pixel vertical
  ((JavascriptExecutor)driver).executeScript("scroll(0,400)");
Run Code Online (Sandbox Code Playgroud)

您可以从Selenium的Scroll Page获取完整的代码

如果你想滚动一个元素,那么下面的代码将适合你.

je.executeScript("arguments[0].scrollIntoView(true);",element);
Run Code Online (Sandbox Code Playgroud)

您将在此处获取完整文档Scroll for specific Element


rs7*_*s79 10

这可能不是你问题的确切答案(就WebDriver而言),但我发现这个java.awt库比它更稳定selenium.Keys.因此,使用前者的向下翻页操作将是:

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_PAGE_DOWN);
robot.keyRelease(KeyEvent.VK_PAGE_DOWN);
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,以上代码对我不起作用 (2认同)

小智 5

JavascriptExecutor js = ((JavascriptExecutor) driver);
Run Code Online (Sandbox Code Playgroud)

向下滚动:

js.executeScript("window.scrollTo(0, document.body.scrollHeight);");
Run Code Online (Sandbox Code Playgroud)

向上滑动:

js.executeScript("window.scrollTo(0, -document.body.scrollHeight);");
Run Code Online (Sandbox Code Playgroud)