Java 中的无头浏览器

HTMLUnitDriver

HTMLUnitDriver 是基于 HtmlUnit 的 Webdriver 的无头(GUI-less)浏览器的最轻量级实现。它模拟 HTML 文档,并提供一个 API,允许你调用页面,填写表单,单击链接等,就像在普通浏览器中一样。它支持 JavaScript 并与 AJAX 库一起使用。它用于测试和检索网站上的数据。

示例: 使用 HTMLUnitDriver 从 http://stackoverflow.com/获取问题列表。

import java.util.List;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
        
class testHeadlessDriver{
            private void getQuestions() {
                    WebDriver driver = new HtmlUnitDriver();
                    driver.get("http://stackoverflow.com/");
                    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
                    List<WebElement> questions = driver.findElements(By.className("question-hyperlink"));
                    questions.forEach((question) -> {
                        System.out.println(question.getText());
                    });
                   driver.close();
                }
    }

它与任何其他浏览器(Mozilla Firefox,谷歌浏览器,IE)相同,但它没有 GUI,执行在屏幕上不可见。