目前我正在尝试使用 Selenium WebDriver 捕获屏幕截图。但我只能获取整个页面的屏幕截图。然而,我想要的只是捕获页面的一部分,或者可能只是基于 ID 或任何特定元素定位器的特定元素。 (例如,我想捕获图像id =“蝴蝶”的图片)
有什么方法可以捕获所选项目或元素的屏幕截图吗?
最佳答案
我们可以通过裁剪整个页面截图来获取元素截图,如下所示:
driver.get("http://www.google.com");
WebElement ele = driver.findElement(By.id("hplogo"));
// 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);
// Copy the element screenshot to disk
File screenshotLocation = new File("C:\\images\\GoogleLogo_screenshot.png");
FileUtils.copyFile(screenshot, screenshotLocation);
关于selenium - 如何使用 Selenium Webdriver 捕获特定元素而不是整个页面的屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13832322/