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

Selenium C# 登录Google遇浏览器不安全及ChromeDriver启动报错求助

Selenium C# 登录Google账号解决方案

问题背景

手动导航至Google登录页时弹出报错:Couldn't sign you in, This browser or app may not be secure, Try using a different browser.
初始代码:

var driver = new ChromeDriver();

driver.Navigate().GoToUrl("https://google.com/");

优先采用C#方案解决,暂不考虑第三方undetected selenium仓库。

尝试过的代码及报错

执行以下代码时,Chrome标签页无法打开,第4行报错终止:

System.ComponentModel.Win32Exception: 'An error occurred trying to start process 'C:\Users\name\source\repos\event_submitter\event_submitter\bin\Debug\net6.0\chromedriver.exe' with working directory 'C:\Users\name\source\repos\event_submitter\event_submitter\bin\Debug\net6.0'. The system cannot find the file specified.'

代码片段:

1) var options = new ChromeOptions();
2) options.AddArguments(@"user-data-dir=c:\Users\{username}\AppData\Local\Google\Chrome\User Data\");
3) IWebDriver driver = new ChromeDriver();
4) driver = new ChromeDriver(Directory.GetCurrentDirectory(), options);
5) driver.Navigate().GoToUrl("https://google.com/");

无效尝试

添加自定义User-Agent头后无效果:

options.AddArgument("--user-agent=Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25");

解决方案

1. 修复Chromedriver找不到的问题

  • 确保已通过NuGet安装Selenium.WebDriver和Selenium.WebDriver.ChromeDriver包,后者会自动匹配Chrome版本并将chromedriver部署到输出目录。
  • 移除重复的ChromeDriver初始化代码,合并实例化逻辑:
    var options = new ChromeOptions();
    // 替换{你的用户名}为系统实际用户名,或用Environment.GetFolderPath动态获取路径
    options.AddArguments(@"user-data-dir=c:\Users\{你的用户名}\AppData\Local\Google\Chrome\User Data\");
    // 无需手动指定目录,NuGet包已处理路径映射
    IWebDriver driver = new ChromeDriver(options);
    driver.Navigate().GoToUrl("https://google.com/");
    

2. 规避Google浏览器检测

Google会识别Selenium的自动化特征,需添加以下参数模拟真实浏览器环境:

var options = new ChromeOptions();
// 复用已登录的Chrome用户数据目录(需提前在Chrome中登录Google账号)
options.AddArguments(@"user-data-dir=c:\Users\{你的用户名}\AppData\Local\Google\Chrome\User Data\");
// 关闭自动化相关提示与扩展
options.AddArguments("--disable-extensions");
options.AddArguments("--disable-infobars");
options.AddArguments("--disable-blink-features=AutomationControlled");
// 移除Selenium标识
options.AddExcludedArgument("enable-automation");
options.AddAdditionalChromeOption("useAutomationExtension", false);
// 使用当前Chrome真实UA(可在chrome://version/中查看)
options.AddArgument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36");

IWebDriver driver = new ChromeDriver(options);
// 进一步移除navigator.webdriver属性
driver.ExecuteScript(@"Object.defineProperty(navigator, 'webdriver', {get: () => undefined})");
driver.Navigate().GoToUrl("https://google.com/");

补充提示

  • 使用用户数据目录时,需确保Chrome未在后台运行,否则会出现进程冲突。
  • 若仍无法登录,可创建新的Chrome用户配置文件,登录Google账号后,指定该配置文件路径:user-data-dir=c:\Users\{你的用户名}\AppData\Local\Google\Chrome\User Data\Profile 1(替换为实际新配置文件名)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:35:20