zoukankan      html  css  js  c++  java
  • 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();
            }
        }

    效果如下

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

  • 相关阅读:
    批量修改mp3文件播放速度
    尝试了一下alsa录音播放的编程。
    最快速获取天气的方法
    乒乓Buffer
    GCC编译选项和环境变量
    Linux发行版本
    memcpy 和 memmove
    自动定位android ndk的路径
    记一下,安装和使用Ubuntu过程中遇到的问题
    Android API 和Android 版本对照
  • 原文地址:https://www.cnblogs.com/longronglang/p/11332194.html
Copyright © 2011-2022 走看看