一、模拟滚动到最底层
1.1 使用 JavaScript 执行
java
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class ScrollToBottom {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path_to_chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("your_url_here");
// 使用 JavaScript 滚动到页面底部
((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight);");
}
}
1.2 循环滚动直到页面底部
java
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class ScrollToBottom {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path_to_chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("your_url_here");
long lastHeight = (long) ((JavascriptExecutor) driver).executeScript("return document.body.scrollHeight");
while (true) {
((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight);");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
long newHeight = (long) ((JavascriptExecutor) driver).executeScript("return document.body.scrollHeight");
if (newHeight == lastHeight) {
break;
}
lastHeight = newHeight;
}
}
}
1.3 使用 Actions 类模拟滚动(效果可能因浏览器而异)
java
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
public class ScrollToBottom {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path_to_chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("your_url_here");
Actions actions = new Actions(driver);
actions.sendKeys(Keys.PAGE_DOWN).perform();
actions.sendKeys(Keys.PAGE_DOWN).perform();
// 可以多次重复 PAGE_DOWN 操作,或者结合其他操作模拟滚动到底部
}
}
二、模拟少量滚动
2.1 使用 Actions 类模拟少量滚动
java
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.interactions.Actions;
public class PartialScroll {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path_to_chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("your_url_here");
Actions actions = new Actions(driver);
actions.sendKeys(Keys.PAGE_DOWN).perform();
// 这是一次模拟按下 Page Down 键进行滚动
// 可以根据需要再次执行少量滚动操作
actions.sendKeys(Keys.ARROW_DOWN).perform();
}
}
2.2 使用 JavaScript 进行部分滚动
java
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class PartialScroll {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path_to_chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("your_url_here");
// 使用 JavaScript 滚动一小段距离
((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 200);");
}
}