天天看点

Java+Selenium+Chromedriver网页截图并保存至本地

案例:本文主要描述如何截取民航快递查询页面屏幕图片并保存至本地

解决问题:截图的同时,可对网页内容进行交互(使用代码在后台输入快递号及验证码),并且验证码不刷新(因为是同一个页面),用来解决破解验证码时的刷新问题

环境准备:Chrome浏览器、Chrome浏览器驱动文件(chromedriver.exe)

注:chromedriver.exe下载地址:http://chromedriver.storage.googleapis.com/index.html

一、首先创建一个maven工程,配置依赖包

<dependencies>
        <!-- selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.44.0</version>
        </dependency>
    </dependencies>
           

二、开始写入自动化测试代码

public class Test {

    public static void main(String[] args) throws InterruptedException {
        //1.获取网页的浏览器driver
        //(1)定义url
        String url="http://www.cae.com.cn/webfunction/ExpressQuery/default.aspx";
        //(2)设置driver驱动chromedriver.exe(版本:2.39)路径
        System.setProperty("webdriver.chrome.driver","D:\\chromedriver_win32\\2.39\\chromedriver.exe");        //(3)设置chrome选项(取消浏览器弹窗)
        ChromeOptions options = new ChromeOptions();
        //(3)建立selenium 驱动
        WebDriver driver = new ChromeDriver();
        //(4)设置窗口最大化及网页等待时间
        driver.manage().window().maximize();  //窗口最大化
        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        //(5)启动driver浏览网页
        driver.get(url);  //输入网址

        //2.设置等待时间
        Thread.sleep(1000);

        //3.当前页面截图并存储到本地(原图片)
        File srcfile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        try {
            FileUtils.copyFile(srcfile, new File("D:/data_dev/source.png"));
        } catch (IOException e) {
            e.printStackTrace();
        }

        //4.关闭驱动
        driver.close();
    }
}
           

三、运行结果

Java+Selenium+Chromedriver网页截图并保存至本地