鼠标向下滚动使用Selenium WebDriver(a.k.a。Selenium 2.0) - JAVA

时间:2014-08-18 12:13:01

标签: java selenium-webdriver

我正在尝试在自动化测试(selenium webdriver)中进行鼠标滚动。我的页面有大量数据,需要时间来加载所有数据。

我的要求: 我有一个带有基准集的统一表,其中这些记录显示在我的页面底部显示的值集中。

我正在验证两个值是否相等,因为我需要完全滚动页面来评估它们。

我使用了以下代码:

Javascript jse = (Javascript)driver;
jse.executescript("scroll(0, 9000)");

这并不能帮助它只滚动一半的数据,所以我的测试失败了。

建议请...

3 个答案:

答案 0 :(得分:2)

我们可以使用 JavascriptExecutor 来实现这一目标。以下示例将从上到下滚动此页面:

WebDriver driver = new ChromeDriver();
driver.get("http://stackoverflow.com/questions/25363023/mouse-scroll-down-using-selenium-webdriver-2-0-java");

JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("window.scrollTo(0,document.body.scrollHeight);");

要使用上面的代码,请导入以下实用程序:

import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

Lemme知道这是否有帮助!

答案 1 :(得分:1)

//鼠标向下滚动

JavascriptExecutor Scrool = (JavascriptExecutor) driver;
Scrool.executeScript("window.scrollBy(0,300)", "");
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

您可以在滚动

后找到元素
driver.findElement(By.xpath(""));

//鼠标向上滚动

JavascriptExecutor Scrool = (JavascriptExecutor) driver;
Scrool.executeScript("window.scrollBy(0,-300)", "");

//要使用上述代码,请导入以下实用程序

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.WebDriver;

答案 2 :(得分:0)

另一件对我有用的是浏览器辅助功能和 TAB 按钮。正如您所知,通过发送TAB,您可以浏览该页面,只要您知道需要执行多少次就可以到达您想要的位置。您也可以尝试点击箭头向上/向下:

 1.Element.SendKeys(OpenQA.Selenium.Keys.ArrowUp);
 2. char u = '\uE013'; // ASCII code for ArrowUp
    char d = '\u0x50'; // code for ArrowDown
    Element.SendKeys(Convert.ToString(u));