码迷,mamicode.com
首页 > 编程语言 > 详细

Selenium+java - 截图操作

时间:2020-12-04 11:10:01      阅读:4      评论:0      收藏:0      [点我收藏+]

标签:int   default   str   操作   执行   out   catch   ebe   htm   

Selenium+java - 截图操作

写在前面
自动化测试过程中,运行失败截图可以很好的帮我们定位问题,因此,截图操作也是我们自动化测试中的一个重要环节。

截图方法
1、通过截图类TakeScreenshout实现截图

特点:截取浏览器窗体内的内容,不包括浏览器的菜单和桌面的任务栏区域

具体示例代码如下:

public void testScreenshoutByTakesScreenshot() {
        driver.manage().window().maximize();
        driver.get("https://www.cnblogs.com/longronglang");
        driver.manage().window().maximize();
        //执行屏幕截图操作
        File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
        //通过FileUtils中的copyFile()方法保存getScreenshotAs()返回的文件;"屏幕截图"即时保存截图的文件夹
        try {
            FileUtils.copyFile(srcFile, new File("D:\\screenshot\\通过TakesScreenshot截图.jpg"));
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

2、通过Robot对象截屏

特点:截取浏览器窗体内的内容及浏览器的菜单和桌面的任务栏区域

具体示例代码如下:

/**
     * 通过Robot实现实现截图
     */
    @Test
    public void testScreenshoutByRobot() {
        driver.manage().window().maximize();
        driver.get("https://www.cnblogs.com/longronglang");
        driver.manage().window().maximize();
        //调用截图方法
        BufferedImage img = null;
        try {
            img = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));
            ImageIO.write(img, "jpg", new File("D:\\screenshot\\通过Robot截图.jpg"));
        } catch (AWTException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }
    }

3、截取目标区域图片

特点:可指定元素及区域大小截图

具体示例代码如下:

 /**
     * 通过指定元素及区域大小截图
     */
    @Test
    public void testScreenshoutByElement() {
        driver.get("https://www.cnblogs.com/longronglang");
        //获取页面看板娘元素
        WebElement element = driver.findElement(By.cssSelector("[width=‘180px‘]"));
        try {
            FileUtils.copyFile(captureElement(element), new File("D:\\screenshot\\通过element元素及区域大小截图.jpg"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

效果如下
技术图片

以上就是关于截图的常用方法,仅供参考,如果觉得好,可以关注我哦!

EOF

本文作者:久曲建的测试窝
本文链接:https://www.cnblogs.com/longronglang/p/11332194.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
优秀不够,你是否无可替代

软件测试交流QQ群:721256703,期待你的加入!!

欢迎关注我的微信公众号:软件测试君

技术图片

Selenium+java - 截图操作

标签:int   default   str   操作   执行   out   catch   ebe   htm   

原文地址:https://blog.51cto.com/15009374/2556942

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!