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

如何使用Selenium与PowerShell禁用Chrome中所有网站的定位功能?

解决Selenium + PowerShell禁用Chrome定位及capability冲突问题

错误原因

你遇到的AddAdditionalCapability报错,是因为ChromeOptions对象本身就对应goog:chromeOptions capability,手动调用AddAdditionalCapability添加这个capability会导致重复配置,触发错误。

修正后的代码

删除冲突的AddAdditionalCapability相关代码,保留正确的定位禁用配置即可:

$Chrome = New-Object -TypeName "OpenQA.Selenium.Chrome.ChromeOptions"
# 禁用定位的命令行参数
$Chrome.AddArguments('--disable-geolocation')
# 其他你需要的参数
$Chrome.AddArguments('disable-blink-features=AutomationControlled')
$Chrome.AddArguments('mute-audio')
$Chrome.AddArguments('--disable-features=UseMediaEngagementBypass')
$Chrome.AddArguments('start-maximized')

# 禁用WebRTC相关的定位泄露
$Chrome.AddUserProfilePreference("webrtc.ip_handling_policy", "disable_non_proxied_udp")
$Chrome.AddUserProfilePreference("webrtc.multiple_routes_enabled", $false)
$Chrome.AddUserProfilePreference("webrtc.nonproxied_udp_enabled", $false)

# 通过用户偏好直接设置定位权限为拒绝(2=拒绝,1=允许,0=默认)
$Chrome.AddUserProfilePreference("profile.default_content_settings.geolocation", 2)

$Chrome.BinaryLocation = $customChromePath
# 修正ChromeDriver实例化的错误写法
$Driver = New-Object -TypeName "OpenQA.Selenium.Chrome.ChromeDriver" -ArgumentList $Chrome

关键说明

  • --disable-geolocation:通过命令行参数直接禁用Chrome的定位功能
  • profile.default_content_settings.geolocation=2:通过用户配置文件强制设置定位权限为拒绝,确保网站请求定位时直接被拦截
  • 原代码中New-Object -TypeName "OpenQA.Selenium.Chrome.ChromeDriver($Chrome)"是错误写法,需去掉TypeName里的括号,直接传入$Chrome作为参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:53:39