如何使用webDriver(java)逐屏截取并将其粘贴到word文件中

时间:2016-03-08 20:16:30

标签: java selenium webdriver

我能够截取((TakesScreenshot)驱动程序).getScreenshotAs(OutputType.FILE);

在我的应用程序中,我必须为每个页面截取屏幕截图,因此我想将多个屏幕截图逐个保存到单个.doc文件中。 有没有API?

任何想法? 请帮忙......

2 个答案:

答案 0 :(得分:2)

最简单的方法 - 截取屏幕截图,将其放入PNG / JPEG文件,读取,在MS-Word中添加,删除文件,简单。这里有一个随时可以使用的代码.... BINGO ...... !!

import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.concurrent.TimeUnit;
import javax.imageio.ImageIO;
import org.apache.poi.util.Units;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFRun;

public class TakeScreenshots {

    public static void main(String[] args) {
        try {

            XWPFDocument docx = new XWPFDocument();
            XWPFRun run = docx.createParagraph().createRun();
            FileOutputStream out = new FileOutputStream("d:/xyz/doc1.docx");

            for (int counter = 1; counter <= 5; counter++) {
                captureScreenShot(docx, run, out);
                TimeUnit.SECONDS.sleep(1);
            }

            docx.write(out);
            out.flush();
            out.close();
            docx.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void captureScreenShot(XWPFDocument docx, XWPFRun run, FileOutputStream out) throws Exception {

        String screenshot_name = System.currentTimeMillis() + ".png";
        BufferedImage image = new Robot()
                .createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
        File file = new File("d:/xyz/" + screenshot_name);
        ImageIO.write(image, "png", file);
        InputStream pic = new FileInputStream("d:/xyz/" + screenshot_name);
        run.addBreak();
        run.addPicture(pic, XWPFDocument.PICTURE_TYPE_PNG, screenshot_name, Units.toEMU(350), Units.toEMU(350));
        pic.close();
        file.delete();
    }

}

答案 1 :(得分:0)

Selenium Webdriver不提供任何在word文件中添加快照的功能。 为此,您需要使用第三方库。

请参阅以下内容: -

how to insert image into word document using java

How can I add an Image to MSWord document using Java

您还可以使用记者

在TestNG输出文件中添加图像文件

请参阅以下内容: -

http://www.automationtesting.co.in/2010/07/testng-take-screenshot-of-failed-test.html

希望它会对你有所帮助:)。