如何使用Selenium Java处理网页双垂直滚动条 实现内层滚动下滑
双滚动条场景内层滚动实现方案
原有代码调用window.scrollBy操作的是浏览器全局窗口的滚动条,因此只能触发生效外层滚动,需要单独操作内层可滚动的DOM节点才能实现内层滚动,具体实现方式如下:
- 首先定位到内层滚动区域的容器节点:
用浏览器控制台的元素选择器选中内层滚动区域,获取该容器的唯一选择器(id、class、xpath均可),示例假设该容器id为inner-scroll-area。 - 替换原有滚动代码:
// 定位内层滚动容器 WebElement innerContainer = driver.findElement(By.id("inner-scroll-area")); JavascriptExecutor js = (JavascriptExecutor) driver; // 相对当前位置向下滚动300像素,和原有滚动逻辑保持一致 js.executeScript("arguments[0].scrollBy(0, 300)", innerContainer); // 若需要直接滚动到内层最底部,可以使用以下写法 // js.executeScript("arguments[0].scrollTop = arguments[0].scrollHeight", innerContainer);
注意事项
- 确保定位的元素是承载滚动逻辑的父容器,而非容器内部的子内容节点,否则滚动代码不会生效
- 执行滚动操作前需确认内层容器已加载完成,避免抛出元素不存在的异常
内容的提问来源于stack exchange,提问作者Humair Ali
相关产品推荐
相关产品推荐

