软件测试自动化中selenium中截图怎么封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试自动化中selenium中截图怎么封装相关的知识,希望对你有一定的参考价值。

参考技术A 前景不错,每个开发出来的软件都需要严格的测试。所有测试工程师的工作是很重要的。薪水自然不用说。如果是游戏软件的话,那测试工程师可是一个很让人羡慕的工作了。。。 参考技术B 前景不错,每个开发出来的软件都需要严格的测试。所有测试工程师的工作是很重要的。薪水自然不用说。如果是游戏软件的话,那测试工程师可是一个很让人羡慕的工作了。。。

截图-----Selenium快速入门

  在自动化测试过程中,截图是常见的操作,因为有时候单靠程序无法判断是否已得到期望的结果,所以需要截图判断。又或者截图是作为判断的存证。Selenium的截图操作也是非常简单,而且自带了一个文件操作类FileHandler,所以截图并保存到硬盘的操作,在Selenium是非常简单的。

  ChromeDriver等各类浏览器的driver都继承自RemoteWebDriver,而RemoteWebDriver实现了TakesScreenshot接口,换言之,我们常用的各种driver,ChromeDriverEdgeDriverFirefoxDriverInternetExplorerDriverOperaDriverSafariDriver,既实现了WebDriver接口,也实现了TakesScreenshot接口,因此我们可以像使用WebDriver接口一样,使用TakesScreenshot。而TakesScreenshot接口只有一个方法:

<X> X getScreenshotAs(OutputType<X> target) throws WebDriverException

  因此,我们可以这样使用: 

//截图作为文件保存
File screenshotFile =((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
 
//将图片存为base64
String screenshotBase64 = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BASE64);

  而FileHandler,提供了一些静态方法,满足我们常用的文件操作需要,例如

//将一个文件复制到另一个地方
static void copy(java.io.File from, java.io.File to) 

  结合上面两个方法,我们就可以简单的实现截图,并将图片保存到指定位置。

  以下是相关的代码:

     System.setProperty("webdriver.chrome.driver", "D:/WorkSpace/SeleniumTest/tools/chromedriver.exe");
        WebDriver driver=new ChromeDriver();
        
        driver.get("http://www.cnblogs.com");
        
        WebDriverWait wait=new WebDriverWait(driver, 5);
        wait.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("沪ICP备09004260号")));
        
        File screenShot = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        
        //如果保存的文件夹不存在,则建立
        File saveDir=new File("D:\\\\temp");
        if(!saveDir.exists())
            FileHandler.createDir(saveDir);
        
        //保存路径
        File savePath=new File("D:\\\\temp\\\\screenshot.png");
        //如果没有写权限,则增加写权限
        FileHandler.makeWritable(savePath);
        //复制到指定路径
        FileHandler.copy(screenShot, savePath);
        

  打开我们的文件夹,看看结果,确实截图成功,但只截到本屏幕,并不会将整个页面截取下来,下面是截到的图片

  

 

以上是关于软件测试自动化中selenium中截图怎么封装的主要内容,如果未能解决你的问题,请参考以下文章

Selenium自动截图怎么总是上个页面

python+selenium自动化软件测试:装饰器之用例失败后截图

selenium python怎么封装方法

selenium 截图

自动化测试框架

UI自动化中Selenium WebDriver如何截图?这里有答案!