Selenium-webdriver / Javascript:如何滚动页面?

时间:2015-05-28 01:25:04

标签: javascript selenium-webdriver

我正在使用Javascript API来访问selenium-webdriver,我想在页面中慢慢滚动/向下移动以允许进行目视检查。

我知道以下内容会让我跳到页面末尾的链接:

  return driver.findElement({linkText: 'All rights reserved'}).click()

然而,我想回顾一下之间的内容,因为我看硒做了它。

是否可以逐页滚动页面? (例如10%,20%,30%等)。或者是否有另一种技术可以有效地进行“慢速滚动”?

1 个答案:

答案 0 :(得分:0)

这可以通过两种方式实现 - 1.以慢动作滚动页面 - 您可以根据需要在Thread.sleep中更改时间。

JavascriptExecutor js = (JavascriptExecutor)driver;
for (int i = 0;; i++) 
{
    if(i >=60)
    {
            break;
        }
 js.executeScript("window.scrollBy(0,800)", ""); //800 is Y coordinate. This can be changed
     Thread.sleep(3000);
}

2.在对其执行操作之前滚动到元素位置 -

Point p = driver.findElement(By.xpath("Value")).getLocation();//get element position
((JavascriptExecutor)driver).executeScript("window.scrollBy(0,"+(p.getY())+");");