1、pom
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId></dependency>
2、脚本动态获取网页高度
// 设置驱动地址 System.setProperty("webdriver.chrome.driver", "D:\\apps\\headless\\chromedriver.exe"); ChromeOptions options = new ChromeOptions(); // 设置谷歌浏览器exe文件所在地址 options.setBinary("C:\\Users\\qizhan\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe"); // 这里是要执行的命令,如需修改截图页面的尺寸,修改--window-size的参数即可 options.addArguments("--headless", "--disable-gpu", "--window-size=1920,1200", "--ignore-certificate-errors"); ChromeDriver driver = new ChromeDriver(options); // 访问页面 driver.get("http://sina.com.cn"); //执行脚本 String js1 = "return document.body.clientHeight.toString()"; String js1_result = driver.executeScript(js1) + ""; int height = Integer.parseInt(js1_result); driver.manage().window().setSize(new Dimension(830, height + 100)); // 页面等待渲染时长,如果你的页面需要动态渲染数据的话一定要留出页面渲染的时间,单位默认是秒 Wait<WebDriver> wait = new WebDriverWait(driver, 3); wait.until(new ExpectedCondition<WebElement>() { public WebElement apply(WebDriver d) { // 等待前台页面中 id为“kw”的组件渲染完毕,后截图 // 若无需等待渲染,return true即可。 不同页面视情况设置id return d.findElement(By.id("app")); } }); // 获取到截图的文件 File screenshotFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); if ((screenshotFile != null) && screenshotFile.exists()) { // 截取到的图片存到本地 FileOutputStream out = null; FileInputStream in = null; try { in = new FileInputStream(screenshotFile); out = new FileOutputStream("D:\\apps\\headless\\cut1.png"); byte[] b = new byte[1024]; while (true) { int temp = in.read(b, 0, b.length); // 如果temp = -1的时候,说明读取完毕 if (temp == -1) { break; } out.write(b, 0, temp); } } catch (Exception e) { // TODO异常处理 } }