selenium 滚动条操作,JavaScript操作

一般我们想到的必须使用滚动条的场景是:注册时的法律条文的阅读。判断用户是否阅读完的标准是:滚动条是否拉到页面底部。当然,有时候为使操作更接近用户行为也会使用滚动条,例如用户要操作的元素在页面的第二屏,一般用户不会对看不到的元素进行操作,那么就需要先将滚动条拖动到页面的第二屏再进行操作。

window.scrollTo(x,y)方法用于设置浏览器窗口滚动条的水平和垂直位置。方法的第一个参数x表示水平的左间距,第二个参数y表示垂直的上边距。

一般浏览器自带的滚动条会随着操作的页面元素所在位置而移动滚动条,特殊情况可采用以下方法操作滚动条。

代码如下:

public static void main(String[] args) throws InterruptedException {
    System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe");
    ChromeOptions Options = new ChromeOptions();
    Options.addArguments("user-data-dir=C:\\Users\\happy\\AppData\\Local\\Google\\Chrome\\User Data");
    WebDriver driver = new ChromeDriver(Options);
    //设置窗口大小  
    driver.manage().window().setSize(new Dimension(700, 600));
    driver.get("https://www.baidu.com");
    driver.findElement(By.id("kw")).sendKeys("webdriver api");
    driver.findElement(By.id("su")).click();
    Thread.sleep(2000);
    //将页面滚动条拖到底部
    ((JavascriptExecutor)driver).executeScript("window.scrollTo(500,450);");
    //滚动条的左侧边距是500 像素    长侧边距450像素
    Thread.sleep(3000);
    driver.close();
    driver.quit();
}