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();
            }
        }

    效果如下

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

  • 相关阅读:
    3、tensorflow变量运算,数学运算
    2、tensorflow 变量的初始化
    1、tensorflow 框架理解
    tensorflow 打印全部变量的一种方法
    0、tensorflow学习开始
    tensorflow 小记——如何对张量做任意行求和,得到新tensor(一种方法:列表生成式)
    SASRec 实践
    jupyterlab 增加新内核的方法ipykernel
    vivo 全球商城:架构演进之路
    jenkins安装 git免密ssh配置
  • 原文地址:https://www.cnblogs.com/longronglang/p/11332194.html
Copyright © 2011-2022 走看看