Java 含硒元素的屏幕截图
注意:我知道这个问题以前被问过好几次,但是我有一个其他人似乎没有的问题 尽管我似乎正确地获得了元素的点及其宽度和高度,但最终的裁剪是不正确的。这就像我正在拍摄的截图对网页有不同的维度。我正在使用Chrome驱动程序 这是我尝试获取谷歌徽标图像截图的代码:Java 含硒元素的屏幕截图,java,selenium,screenshot,selenium-chromedriver,Java,Selenium,Screenshot,Selenium Chromedriver,注意:我知道这个问题以前被问过好几次,但是我有一个其他人似乎没有的问题 尽管我似乎正确地获得了元素的点及其宽度和高度,但最终的裁剪是不正确的。这就像我正在拍摄的截图对网页有不同的维度。我正在使用Chrome驱动程序 这是我尝试获取谷歌徽标图像截图的代码: WebDriver driver = new ChromeDriver(); driver.get("http://www.google.com"); WebElement ele = driver.findElement(By.id("hpl
WebDriver driver = new ChromeDriver();
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 = null;
try {
fullImg = ImageIO.read(screenshot);
} catch (IOException e) {
}
//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);
try {
ImageIO.write(eleScreenshot, "png", screenshot);
} catch (IOException e) {
}
//Copy the element screenshot to disk
File screenshotLocation = new File("/Users/M/Desktop/stuff/logo.png");
try{
FileUtils.copyFile(screenshot, screenshotLocation);
}catch(IOException e){
}
以下是我的最终徽标图像:
以下是它应该得到的(就像png而不是gif):
有人知道可能发生了什么吗?检查您的操作系统是否有自定义缩放功能。在windows上使用125%的缩放比例时,我也遇到了同样的问题。有关详细信息,请参阅下面的屏幕截图 转到您的系统设置>搜索显示>将“使所有内容变大”下拉列表的值更改为100%。然后再次运行代码,这对您来说很好
您确定您的图像有误吗。因为对我来说,代码工作得很完美是的,我在问题中发布了图片。我也试过几种不同的元素。这真让我困惑。你用的是Chrome驱动程序吗?您使用的是什么版本的Selenium@MadhanIt的宽度和高度似乎都很合适,但它就像是放大了屏幕截图一样?这就像屏幕截图的点、宽度和高度与网页不一样。使用Windows7、Java1.7.101、Selenium 2.53、ChromeDriver 2.21、Chrome51