案例:本文主要描述如何截取民航快递查询页面屏幕图片并保存至本地
解决问题:截图的同时,可对网页内容进行交互(使用代码在后台输入快递号及验证码),并且验证码不刷新(因为是同一个页面),用来解决破解验证码时的刷新问题
环境准备: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();
}
}
三、运行结果