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,执行在屏幕上不可见。