Axe*_*xel 3 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)", "");
}
}
Run Code Online (Sandbox Code Playgroud)
这两种方法都无法实现它们的目的,因为它们都生成了逐步滚动,这在我同时想要测量 FPS(例如滚动时页面的平滑度)时不适合。
解决方案比预期的要简单得多。我没有为循环使用基于时间的条件,而是尝试了以下操作:
public void scrollSmooth(){
for(int i=0;i<6000;i++) {
((JavascriptExecutor) driver).executeScript("window.scrollBy(0,1)", "");
}
}
Run Code Online (Sandbox Code Playgroud)
这很有效,但有一个小缺点,即我无法指定滚动的长度(时间),只能指定要滚动的实际像素。
| 归档时间: |
|
| 查看次数: |
3655 次 |
| 最近记录: |