使用AShot进行网页全页截图
import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import ru.yandex.qatools.ashot.AShot; import ru.yandex.qatools.ashot.shooting.ShootingStrategies; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class DemoApplicationTests { @Test public void contextLoads() throws InterruptedException, IOException { System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe"); ChromeOptions chromeOptions = new ChromeOptions(); //设置为 headless 模式 (必须) //chromeOptions.addArguments("--headless"); final WebDriver driver = new ChromeDriver(chromeOptions); driver.manage().window().maximize(); driver.get("https://autohome.com.cn/"); // Let the user actually see something! Thread.sleep(5000); BufferedImage bi = new AShot() .shootingStrategy(ShootingStrategies.viewportPasting(100)) .takeScreenshot(driver).getImage(); ImageIO.write(bi, "png", new File("C:/test.png")); driver.quit(); } }
<dependency> <groupId>ru.yandex.qatools.ashot</groupId> <artifactId>ashot</artifactId> <version>1.5.2</version> </dependency>