使用Selenium WebDriver(又名Selenium 2.0)向下滚动鼠标 - JAVA

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

我的要求: 我有一个包含一组数据的汇总表,其中显示的记录来自底部显示的值集合。

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

我使用了以下代码:

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

这并没有帮助,因为它只滚动了数据的一半,所以我的测试失败了。
请提出建议...

请尝试我的解决方案 https://dev59.com/vZ3ha4cB1Zd3GeqPXqZE#66774605 - Sida Zhou
3个回答

3

使用以下导入:

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

鼠标向下滚动:

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)", "");

3
我们可以使用JavascriptExecutor来实现这个功能。以下是一个示例,将从顶部滚动此页面到底部:
WebDriver driver = new ChromeDriver();
driver.get("https://dev59.com/D4Lba4cB1Zd3GeqPgZXZ");

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;

如果这有帮助的话,请告诉我!


1

对我而言另外一个有用的东西是浏览器的可访问性以及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));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接