我正在尝试从网页捕获某个元素的屏幕截图,并希望将捕获的屏幕截图写入 Excel 工作表的单元格。
请找到下面的代码。我无法决定为 Label 的第三个参数传递什么内容
WebDriver driver;
String baseUrl = "http://www.google.com";
@Test
public void test() throws IOException, BiffException, RowsExceededException, WriteException {
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("D:\\GoogleLogo_screenshot.png");
FileUtils.copyFile(screenshot, screenshotLocation);
String excelPath = "D:\\" + appName + ".xls";
File file = new File(excelPath);
WritableWorkbook wbook = Workbook.createWorkbook(file);
WritableSheet wsheet = wbook.createSheet("Seeds", 0);
**Label lab = new Label(0, 0, );**
wsheet.addCell(lab);
wbook.write();
wbook.close();
}
}
最佳答案
您应该使用以下方法:
// **Label lab = new Label(0, 0, );**
// wsheet.addCell(lab);
WritableImage image = new WritableImage(0, 0, 4, 6, screenshotLocation);
wsheet.addImage(image);
// Parameters:
// x - the column number at which to position the image
// y - the row number at which to position the image
// width - the number of columns cells which the image spans
// height - the number of rows which the image spans
// image - the source image file
您应该将这两个参数“4、6”替换为实际大小。
关于java - 使用 selenium 将图像添加到 Excel 工作表的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39593180/