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

C#使用Selenium传参启动Electron应用不生效问题咨询

问题现象

启动Electron应用时,需传入index.js路径、--startServer作为启动参数才能加载Electron对应的HTML内容。实际运行时配置的ChromeOptions未识别传入的参数,仅打开了默认的electron.exe程序,未加载预期页面。
问题运行截图

原实现代码
ChromeOptions electronOption = new ChromeOptions();  
electronOption.AddArguments("C:\Program Files\src\index.js", "--startServer");  
var service = ChromeDriverService.CreateDefaultService("path to chromedriver.exe", "path to electron.exe");  
driver = new ChromeDriver(service, electronOption);
错误原因
  • C#普通字符串中反斜杠为转义字符,原代码中"C:\Program Files\src\index.js"未做转义处理,会被解析为非法路径,导致参数传递失效。
  • Electron程序路径配置位置错误:ChromeDriverService.CreateDefaultService的第二个参数为ChromeDriver服务自身的可执行文件名,并非待启动的Electron程序路径,传入Electron路径会导致驱动服务无法正确关联目标程序。
  • 未显式指定ChromeOptions的二进制程序路径,驱动会默认查找系统安装的Chrome/默认Electron程序,无法加载指定的应用配置。
修正后代码
ChromeOptions electronOption = new ChromeOptions();
// 指定Electron可执行文件的完整路径
electronOption.BinaryLocation = @"C:\Your\Actual\Path\To\electron.exe";
// 逐次传入启动参数,使用@逐字字符串避免路径转义问题
electronOption.AddArgument(@"C:\Program Files\src\index.js");
electronOption.AddArgument("--startServer");
// 第一个参数传入chromedriver.exe所在目录即可,无需传入Electron路径
var service = ChromeDriverService.CreateDefaultService(@"C:\Your\Actual\Path\To\chromedriver\directory");
driver = new ChromeDriver(service, electronOption);

注意:如果index.js路径包含空格,不需要额外加引号,Selenium的AddArgument方法会自动处理参数拼接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:45:31