简体   繁体   中英

Add images to cells of an excel sheet using selenium

I'm trying to capture the screenshot of an element from a webpage and want to write the captured screenshot to the cell of an excel sheet.

Please find below the code. I'm unable to decide what to pass for the third parameter for 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();

}

}

you should have used the method below:

    // **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

You should replace those two parameters "4, 6" for actual size.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM