作为一个测试套件的一部分,我需要为一个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(例如滚动时页面的平滑度)时是不合适的。
5条答案
按热度按时间oo7oh9g91#
解决方案比预期的要简单得多。我没有使用基于时间的循环条件,而是尝试了以下方法:
这很好用,有一个小的缺点,我不能指定滚动的长度(在时间上),只能指定要滚动的实际像素。
6kkfgxo02#
两种方法scrollDown和scrollUp,希望对你有帮助。:)
u5i3ibmn3#
u1ehiz5o4#
这是一个使用Python的Selenium版本-
vs3odd8k5#
我的朋友。我知道这个问题很老了,但是我最近也需要答案。所以我把肩膀先生的答案修改了一下。希望它对别人有用: