廢話不多說嗷,直接上代碼,這個是在借鑒的基礎上改的,找不到原版了,所以此處就不@了 首先準備下載工具 chromedriver.exe 此處是一定要跟自己的goole版本對應嗷,我這谷歌版本是最新
廢話不多說嗷,直接上代碼,這個是在借鑒的基礎上改的,找不到原版了,所以此處就不@了
首先準備下載工具chromedriver.exe此處是一定要跟自己的goole版本對應嗷,我這谷歌版本是最新的,所以下載是118版本的
chromedriver.exe 大概就是下面這個東西
引入maven依賴:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.0-jre</version>
</dependency>
下邊就開始貼代碼:
第一步一定要成功,不然后續你沒法測試效果,我在這就卡了一會。
System.setProperty("webdriver.chrome.driver", "d:\\chromedriver-win64\\chromedriver.exe");
//下邊這一步一定要成功,不然很無厘頭,其實主要就是版本的問題
ChromeDriver driver = new ChromeDriver(options);
第二部設置ChromeOptions 放入到第一步的ChromeDriver中
ChromeOptions options = new ChromeOptions();
//ssl證書支持
options.setCapability("acceptSslCerts", true);
//截屏支持
options.setCapability("takesScreenshot", true);
//css搜索支持
options.setCapability("cssSelectorsEnabled", true);
//設置瀏覽器參數
options.addArguments("--headless");
options.addArguments("--no-sandbox");
options.addArguments("--disable-gpu");
options.addArguments("--disable-dev-shm-usage");
options.setHeadless(true);
第三步開始設置超時以及獲取網頁URL部分了
//設置超時,避免有些內容加載過慢導致截不到圖
driver.manage().timeouts().pageLoadTimeout(1, TimeUnit.MINUTES);
driver.manage().timeouts().implicitlyWait(1, TimeUnit.MINUTES);
driver.manage().timeouts().setScriptTimeout(1, TimeUnit.MINUTES);
driver.get("https://www.gov.cn");
第四步獲取網頁寬度,這里我這個方法不太好用所以我把寬度設置成固定寬度 1920
int maxWidth = 1920;
//獲取頁面高度這塊是有點小難度,需要有點前端經驗,此處不清楚可以評論留言
long pageHeight =(long)jsExecutor.executeScript("return Math.max(document.body.scrollHeight,
document.body.offsetHeight,
document.documentElement.clientHeight,
document.documentElement.scrollHeight,
document.documentElement.offsetHeight );")
//此處獲取的基本是網頁當前高度,這邊寫了一個適配各種網頁的js方法來獲取網頁的滾動高度效果如下,
上邊代碼實現不了下邊圖片的效果,有需要請留言評論。
第五步設置窗口高度進行截圖處理
//設置窗口寬高,設置后才能截全
driver.manage().window().setSize(new Dimension(maxWidth, Integer.parseInt(pageHeight+"")));
// 創建長截圖
File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenshotFile, new File("D:/html.png"));
第六步關閉瀏覽器即可
driver.quit();
以上就是獲取網頁長截圖的方法,親測有效。歡迎咨詢!感謝各位留言點贊。
聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。