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

使用Selenium Java与ChromeDriver访问网站时遭遇Access Denied权限拒绝问题

解决Selenium ChromeDriver访问网站出现Access Denied的问题

问题描述

使用Selenium搭配Chrome浏览器访问某网站时,持续收到错误提示:

Access Denied You don't have permission to access "website" on this server

常规Chrome浏览器可正常访问该网站,但通过Selenium启动的Chrome实例会触发此错误。相关环境信息:

  • Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
  • System info: host: 'CHL130688', ip: '10.100.40.93', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '19.0.1'
  • Driver info: org.openqa.selenium.chrome.ChromeDriver

解决方法

1. 配置ChromeOptions隐藏自动化特征

网站通常会检测浏览器是否由自动化工具驱动,通过以下参数伪装成正常浏览器:

ChromeOptions options = new ChromeOptions();
// 禁用自动化识别特征
options.addArguments("--disable-blink-features=AutomationControlled");
// 关闭自动化提示条
options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
options.setExperimentalOption("useAutomationExtension", false);
// 设置与正常浏览器一致的用户代理(可从Chrome开发者工具的请求头中复制)
options.addArguments("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36");
// 禁用扩展、最大化窗口
options.addArguments("--disable-extensions");
options.addArguments("--start-maximized");

WebDriver driver = new ChromeDriver(options);

2. 匹配ChromeDriver与Chrome浏览器版本

Selenium 3.141.59属于旧版本,必须确保ChromeDriver版本与本地安装的Chrome浏览器主版本号完全一致。比如Chrome版本为118.x,就下载对应版本的ChromeDriver,避免版本不兼容导致的网站识别异常。

3. 加载本地Chrome用户配置文件

直接使用日常访问该网站的Chrome用户数据,让Selenium启动的浏览器继承已有的登录状态和环境:

ChromeOptions options = new ChromeOptions();
// 替换为你的Chrome用户数据路径,Windows下示例:C:\\Users\\你的用户名\\AppData\\Local\\Google\\Chrome\\User Data
options.addArguments("user-data-dir=C:\\Users\\XXX\\AppData\\Local\\Google\\Chrome\\User Data");
// 指定使用默认配置文件
options.addArguments("--profile-directory=Default");

WebDriver driver = new ChromeDriver(options);

4. 补充自定义请求头(可选)

如果网站对请求头校验严格,可通过DevTools协议添加额外请求头:

ChromeDriver driver = new ChromeDriver(options);
driver.executeCdpCommand("Network.setExtraHTTPHeaders", 
    ImmutableMap.of("headers", ImmutableMap.of("Accept-Language", "zh-CN,zh;q=0.9")));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:20:18