Java+Selenium3方法篇30-Selenium中截图方法-TakeScreenshot【转载】

前面几篇介绍了Actions类中两种方法,本来打算介绍右键,然后类似点击向下箭头这样操作,但是在现在的firefox和chrome都不能正常实现,记得之前selenium2.53是可以在firefox上实现的。本篇介绍Selenium中截图类TakeScreenshout,这个类主要是获取浏览器窗体内的内容,不包括浏览器的菜单和桌面的任务栏区域,我们用百度首页来截图,看看截图效果。

       在包下新建一个TakeScreenshot.java文件,在你eclipse当前项目根目录,新建一个叫Screenshots的文件夹,用来保存我们的截图文件,写入如下代码。

[java] view plain copy
  1. package lessons;  
  2.   
  3. import java.io.File;  
  4. import java.io.IOException;  
  5. import java.util.concurrent.TimeUnit;  
  6.   
  7. import org.apache.commons.io.FileUtils;  
  8. import org.openqa.selenium.OutputType;  
  9. import org.openqa.selenium.TakesScreenshot;  
  10. import org.openqa.selenium.WebDriver;  
  11. import org.openqa.selenium.chrome.ChromeDriver;  
  12.   
  13. public class TakeScreenshot {  
  14.       
  15. public static void main(String[] args) throws Exception {    
  16.           
  17.         System.setProperty("webdriver.chrome.driver", ".\\Tools\\chromedriver.exe");    
  18.              
  19.         WebDriver driver = new ChromeDriver();    
  20.        
  21.         driver.manage().window().maximize();    
  22.          
  23.         driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);  
  24.             
  25.         driver.get("https://www.baidu.com");    
  26.          
  27.         Thread.sleep(1000);  
  28.           
  29.         // 调用截图方法  
  30.         File src= ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);  
  31.           
  32.         try {  
  33.             // 拷贝截图文件到我们项目./Screenshots  
  34.             FileUtils.copyFile(src, new File(".\\Screenshots\\screen.png"));  
  35.         }  
  36.            
  37.         catch (IOException e)  
  38.          {  
  39.             System.out.println(e.getMessage());  
  40.            
  41.          }  
  42.         
  43.       }  
  44.   

posted on 2018-05-02 11:21  okeymen  阅读(149)  评论(0)    收藏  举报

导航