You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过Selenium 3.4.0启动HtmlUnitDriver的问题求助

解决HtmlUnitDriver启动失败的问题

Hey,我来帮你排查这个HtmlUnitDriver启动失败的问题~首先得理清一个关键点:HtmlUnitDriver是基于HtmlUnit的无头浏览器实现,它是模拟Chrome的行为逻辑,而非直接调用你本地安装的Chrome 64.0浏览器。如果你的目标是启动真实的Chrome,应该改用ChromeDriver而非HtmlUnitDriver。不过如果确实需要使用HtmlUnitDriver模拟Chrome,咱们来一步步解决:

1. 先检查依赖是否正确引入

Selenium 3.0之后,HtmlUnitDriver不再包含在默认的Selenium核心依赖包里了,你得单独添加对应的依赖:

如果用Maven管理项目,在pom.xml里加这段:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>htmlunit-driver</artifactId>
    <version>2.29.0</version> <!-- 这个版本和Selenium 3.4兼容性很好 -->
</dependency>

要是手动导jar包,得确保htmlunit-driver-xxx.jar和htmlunit-xxx.jar这些相关依赖都加了,而且版本要和Selenium 3.4匹配上。

2. 指定和你Chrome版本匹配的BrowserVersion

你本地Chrome是64.0.3282.119,但HtmlUnit自带的BrowserVersion.CHROME可能对应旧版本的Chrome,这会导致兼容性问题。咱们手动创建一个更匹配的版本实例:

把你代码里初始化driver的部分改成这样:

// 手动构建匹配Chrome 64.0的BrowserVersion
BrowserVersion chrome64 = new BrowserVersion.BrowserVersionBuilder(BrowserVersion.CHROME)
        .setBrowserVersionString("64.0.3282.119")
        .setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36")
        .build();
driver = new HtmlUnitDriver(chrome64);

3. 别忘了启用JavaScript支持

HtmlUnitDriver默认是禁用JS的,现在大多数网站都依赖JS才能正常运行,这很可能是启动或页面加载失败的原因。记得开启JS:

// 初始化时直接启用JS
driver = new HtmlUnitDriver(chrome64, true);

或者初始化之后再设置:

((HtmlUnitDriver) driver).setJavascriptEnabled(true);

4. 移除不必要的依赖干扰

我看到你代码里导入了PhantomJSDriver相关的类,如果没实际用到PhantomJS,建议把对应的依赖删掉,避免依赖冲突影响HtmlUnitDriver的运行。

额外方案:如果你的真实需求是启动本地Chrome浏览器

要是你本来就想启动自己安装的Chrome 64.0,那别用HtmlUnitDriver了,改用ChromeDriver才对,给你个代码示例:

package eclipse;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class Unit {
    public static void main(String[] args){
        // 设置ChromeDriver的路径,换成你自己的chromedriver.exe所在路径
        System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
        
        // 配置Chrome选项,比如Chrome不在默认安装路径的话,指定一下
        ChromeOptions options = new ChromeOptions();
        options.setBinary("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
        
        WebDriver driver = new ChromeDriver(options);
        driver.get("http://www.google.com");
        System.out.println(driver.getTitle());
        driver.quit(); // 记得关闭浏览器
    }
}

这里要注意:ChromeDriver的版本必须和你的Chrome版本对应,Chrome 64.0对应的ChromeDriver版本是2.37,你得下载对应版本的chromedriver才行。

内容的提问来源于stack exchange,提问作者Naveen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:59:56