Java 使用无头Chrome拍摄视频截图时出现异常
我正在尝试使用Selenium和Java拍摄视频截图。当我使用headed Chrome时,它可以正常工作,但是当我想使它无头时,会抛出一个“java.awt.image.RasterFormatException:(y+height)在光栅之外”Java 使用无头Chrome拍摄视频截图时出现异常,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我正在尝试使用Selenium和Java拍摄视频截图。当我使用headed Chrome时,它可以正常工作,但是当我想使它无头时,会抛出一个“java.awt.image.RasterFormatException:(y+height)在光栅之外” getSubimage(point.getX(), point.getY(), eleWidth, eleHeight); 代码如下: ChromeOptions chromeOptions = new ChromeOptions(
getSubimage(point.getX(), point.getY(), eleWidth, eleHeight);
代码如下:
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(chromeOptions);
// Get URL and find image
driver.get("https://www.webcamtaxi.com/en/netherlands/north-holland/purmerend-traffic-cam.html");
Thread.sleep(5000);
while (true) {
WebElement ele = driver.findElement(By.id("insideCam"));
// Get entire page screenshot
File screenshot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
BufferedImage fullImg = ImageIO.read(screenshot);
// Get the location of element on the page
Point point = ele.getLocation();
// Get width and height of the element
int eleWidth = ele.getSize().getWidth();
int eleHeight = ele.getSize().getHeight();
// Crop the entire page screenshot to get only element screenshot
BufferedImage eleScreenshot = fullImg.getSubimage(point.getX(), point.getY(), eleWidth, eleHeight);
ImageIO.write(eleScreenshot, "png", screenshot);
}
有人知道如何解决这个问题吗?我不确定是否有办法解决这个问题。我接管了一个在无头浏览器中运行的测试套件,当我试图添加用于调试的屏幕截图时,我所能捕获的只是黑屏。必须移动到selenium网格,并在节点上引导浏览器以获取屏幕截图。