javascript - 如何在 Java 中使用 Selenium WebDriver 和/或 Sikuli 平滑滚动

标签 javascript java selenium

作为为 Web 应用程序测量 FPS 的测试套件的一部分,我需要执行网页的平滑滚动。也就是说,与用户捕获滚动条并用鼠标移动它时的平滑度相同。

到目前为止,我已经尝试使用 sikuli 模拟按键,即多次按向上/向下箭头键来滚动整个页面。我也尝试过使用 Javascript 方法:

public void scrollSmooth(int durationOfScroll){
    long timeWhenStarting = System.currentTimeMillis() / 1000L;
while (System.currentTimeMillis() / 1000L - timeWhenStarting < durationOfScroll) {
    ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,10)", "");
    }
}

这两种方法都无法实现其目的,因为它们都会生成逐步滚动,当我同时想要测量 FPS(例如滚动时页面的平滑度)时,这不适合。

最佳答案

解决方案比预期的要简单得多。我没有使用基于时间的循环条件,而是尝试了以下操作:

public void scrollSmooth(){
    for(int i=0;i<6000;i++) {
        ((JavascriptExecutor) driver).executeScript("window.scrollBy(0,1)", "");
    }
}

这很好用,我无法指定滚动的长度(及时),只有要滚动的实际像素。

关于javascript - 如何在 Java 中使用 Selenium WebDriver 和/或 Sikuli 平滑滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31051226/

相关文章:

javascript - typescript /Angular : Filter array of objects

javascript - 在没有 var 关键字的情况下创建全局变量时的意外行为

java - 按纬度和经度的 hibernate 条件

selenium - 无法抑制文件下载的 Firefox 弹出窗口

java - 安装 TestNG 后,Eclipse Kepler 出现 : "Compute launch button tooltip". java.lang.IllegalArgumentException 期间发生内部错误

JavaScript 显示日期

javascript - 数据表警告 : invalid JSON response when there are no records in the table

java - 什么是 NullPointerException,我该如何解决?

java - Spring Data JPA - 使用现有的嵌套子对象保留新对象

selenium - Visual Studio Web 测试与 Selenium