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

首个Selenium+Java脚本无法运行,页面空白且报403错误求助

问题排查与解决方案

环境信息

  • IDE:Eclipse
  • Java版本:17
  • Selenium版本:4.8.1
  • ChromeDriver版本:111.0.5563.64
  • Chrome浏览器版本:111.0.5563.65
  • 系统环境变量:
    • C:\Program Files\Java\jdk-19\bin
    • C:\az\Chrome
    • C:\az\Selenium
  • Eclipse构建路径:
    • Modulepath:JRE System Library[Java 17]
    • Classpath:
      • chromedriver.exe(路径:C:\az\Chrome)
      • selenium-java-4.8.1.jar(路径:C:\az\Selenium)
      • selenium-server-4.8.1.jar(路径:C:\az\Selenium)

问题现象

运行Selenium脚本后,Chrome浏览器显示空白页面,控制台输出403 Forbidden警告:

Starting ChromeDriver 111.0.5563.64 (c710e93d5b63b7095afe8c2c17df34408078439d-refs/branch-heads/5563@{#995}) on port 40083

Only local connections are allowed.

Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.

ChromeDriver was started successfully.

Mar 19, 2023 12:46:58 PM org.openqa.selenium.remote.http.WebSocket$Listener onError

WARNING: Invalid Status code=403 text=Forbidden

问题原因

  1. ChromeOptions未传入ChromeDriver实例:代码中配置了--remote-allow-origins=*参数以规避跨域限制,但未将配置对象传递给ChromeDriver构造方法,导致安全限制生效,触发403错误。
  2. ChromeDriver与Chrome版本不匹配:两者主版本一致但小版本号差1(64 vs 65),可能存在兼容性问题。
  3. 不必要的Classpath配置:chromedriver.exe作为可执行文件无需加入Java类路径,该配置无意义且可能引发混淆。
  4. 过时的驱动配置方式:Selenium 4.6+已支持自动驱动管理,手动设置webdriver.chrome.driver并非最优解。

解决方案

1. 修复ChromeOptions传递问题

修改代码,将配置好的ChromeOptions传入ChromeDriver构造方法,同时移除不必要的--whitelisted-ips参数(本地运行无需该配置):

package chromepackage;

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

public class ChromeClass {
    public static void main(String[] args) {
        ChromeOptions ops = new ChromeOptions();
        ops.addArguments("--remote-allow-origins=*");
        
        // 传入配置对象初始化ChromeDriver
        WebDriver driver = new ChromeDriver(ops);
        driver.get("https://www.google.com/");
    }
}

2. 匹配ChromeDriver与Chrome版本

下载与Chrome浏览器版本(111.0.5563.65)完全一致的ChromeDriver,替换C:\az\Chrome目录下的旧驱动文件。

3. 启用Selenium自动驱动管理(推荐)

Selenium 4.6+内置Selenium Manager,可自动下载、匹配并管理驱动,无需手动设置路径:

  • 删除代码中的System.setProperty("webdriver.chrome.driver", "...")行
  • 确保项目依赖的selenium-java-4.8.1.jar已包含Selenium Manager(默认已包含)
  • 使用步骤1中的简化代码即可

4. 清理Eclipse构建路径

从Classpath中移除chromedriver.exe条目,驱动文件无需加入Java类路径,仅需保证路径可被Selenium Manager识别或手动配置正确即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:23:15