


How to convert HTML pages of different heights into images in full using Java and Selenium?
Java and Selenium: Completely intercept HTML pages of any height
This article details how to use Java and Selenium libraries to overcome height limitations, completely intercept HTML pages and convert them into images. Traditional methods are prone to missing content when dealing with high pages. This article provides a solution for segmented screenshots and splicing. We will demonstrate using JDK 8 and Selenium-Java (3.141.59).
Challenge: The puzzle of high page screenshots
For shorter pages, just take a screenshot. But higher pages are not. Simply using window.scrollby(0, x)
to scroll and take screenshots often lead to some content loss, for example, the content of some line numbers may not be fully displayed.
Solution: Segmented screenshots, perfect stitching
Our strategy is to split the page into multiple parts, take screenshots separately, and finally splice these pictures into a complete long picture. The key is that the height of each scroll is slightly smaller than the height of the screenshot, ensuring that some pictures overlap and avoiding content loss.
Steps detailed explanation:
-
Environment configuration: Set the ChromeDriver path and configure Chrome options, enable headless mode to improve efficiency, and set the window size.
String chromepath = "d:\\htmltoimg\\selenium\\chromedriver-win64\\chromedriver.exe"; System.setProperty("webdriver.chrome.driver", chromepath); ChromeOptions options = new ChromeOptions(); options.addArguments("--headless"); options.addArguments("--window-size=2160,1440"); WebDriver driver = new ChromeDriver(options);
Copy after login -
Page Loading and Waiting: Loading HTML files and using explicit waits to ensure that the page is fully loaded.
driver.get("file:///d:/htmltoimg/test.html"); WebDriverWait wait = new WebDriverWait(driver, 15); wait.until(ExpectedConditions.visibilityOfElementLocated(By.tagName("body")));
Copy after login -
Calculate the number of screenshots: Use JavaScript to get the total height of the page and calculate the number of screenshots required based on the height of each screenshot.
JavascriptExecutor js = (JavascriptExecutor) driver; long pageHeight = (long) js.executeScript("return document.body.scrollHeight;"); int captureHeight = 5000; // height of each intercept int numberOfScreenshots = (int) Math.ceil((double) pageHeight / captureHeight);
Copy after login -
Segmented screenshots and scrolling: Looping screenshots, after each screenshot, use JavaScript to scroll the page. The scroll distance is slightly smaller than the screenshot height, ensuring overlap.
int totalHeight = 0; List<file> files = new ArrayList(); for (int i = 0; i </file>
Copy after login -
Image stitching: Read all temporary images, calculate the total width, and draw the image into a new
BufferedImage
object.int width = 0; for (File file : files) { BufferedImage img = ImageIO.read(file); width = Math.max(img.getWidth(), width); } BufferedImage combinedImage = new BufferedImage(width, totalHeight, BufferedImage.TYPE_INT_ARGB); Graphics2D g = combinedImage.createGraphics(); int nowYIndex = 0; for (File file : files) { BufferedImage img = ImageIO.read(file); g.drawImage(img, 0, nowYIndex, null); nowYIndex = img.getHeight(); } g.dispose(); ImageIO.write(combinedImage, "PNG", new File("D:\\htmlToImg\\Selenium\\output\\merge.png"));
Copy after login
Through the above steps, you can completely capture HTML pages of any height and generate a complete picture. Remember to add screenshots and file deletion code, as well as necessary exception handling. This method is efficient and reliable, solving the problem of missing content encountered by traditional methods when taking screenshots of high pages.
The above is the detailed content of How to convert HTML pages of different heights into images in full using Java and Selenium?. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











The Ouyi Exchange app supports downloading of Apple mobile phones, visit the official website, click the "Apple Mobile" option, obtain and install it in the App Store, register or log in to conduct cryptocurrency trading.

Bitcoin’s price ranges from $20,000 to $30,000. 1. Bitcoin’s price has fluctuated dramatically since 2009, reaching nearly $20,000 in 2017 and nearly $60,000 in 2021. 2. Prices are affected by factors such as market demand, supply, and macroeconomic environment. 3. Get real-time prices through exchanges, mobile apps and websites. 4. Bitcoin price is highly volatile, driven by market sentiment and external factors. 5. It has a certain relationship with traditional financial markets and is affected by global stock markets, the strength of the US dollar, etc. 6. The long-term trend is bullish, but risks need to be assessed with caution.

The top ten digital currency exchanges such as Binance, OKX, gate.io have improved their systems, efficient diversified transactions and strict security measures.

The top ten cryptocurrency trading platforms in the world include Binance, OKX, Gate.io, Coinbase, Kraken, Huobi Global, Bitfinex, Bittrex, KuCoin and Poloniex, all of which provide a variety of trading methods and powerful security measures.

Recommended reliable digital currency trading platforms: 1. OKX, 2. Binance, 3. Coinbase, 4. Kraken, 5. Huobi, 6. KuCoin, 7. Bitfinex, 8. Gemini, 9. Bitstamp, 10. Poloniex, these platforms are known for their security, user experience and diverse functions, suitable for users at different levels of digital currency transactions

MeMebox 2.0 redefines crypto asset management through innovative architecture and performance breakthroughs. 1) It solves three major pain points: asset silos, income decay and paradox of security and convenience. 2) Through intelligent asset hubs, dynamic risk management and return enhancement engines, cross-chain transfer speed, average yield rate and security incident response speed are improved. 3) Provide users with asset visualization, policy automation and governance integration, realizing user value reconstruction. 4) Through ecological collaboration and compliance innovation, the overall effectiveness of the platform has been enhanced. 5) In the future, smart contract insurance pools, forecast market integration and AI-driven asset allocation will be launched to continue to lead the development of the industry.

The top ten cryptocurrency exchanges in the world in 2025 include Binance, OKX, Gate.io, Coinbase, Kraken, Huobi, Bitfinex, KuCoin, Bittrex and Poloniex, all of which are known for their high trading volume and security.

Currently ranked among the top ten virtual currency exchanges: 1. Binance, 2. OKX, 3. Gate.io, 4. Coin library, 5. Siren, 6. Huobi Global Station, 7. Bybit, 8. Kucoin, 9. Bitcoin, 10. bit stamp.
