有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用SeleniumWebDriver(又称Selenium2.0)JAVA向下滚动鼠标

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

我的要求: 我有一个包含一组数据的合并表,这些记录是从页面底部显示的一组值中显示出来的

我正在验证这两个值是否相等,因此我需要完全滚动页面以计算相同的值

我使用了以下代码:

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

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

建议请


共 (3) 个答案

  1. # 1 楼答案

    我们可以使用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;
    

    让我知道这是否有用

  2. # 2 楼答案

    另一件对我有效的事情是浏览器可访问性和选项卡按钮。正如您所知,通过发送标签,您可以在页面中导航,直到您知道需要执行多少次才能到达您想要的位置。您还可以尝试单击上/下箭头:

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