c# - C# OpenQA.Selenium.WebDriverException:“未知错误:无法创建 Chrome 进程。”
问题描述
信息
你好伙伴!几天前,我遇到了Selenium的问题,这正是标题中的错误。几天来,我一直在尝试自己解决这个问题,但一点运气都没有。Chrome 正在从外部文件运行,当我尝试手动打开时,它可以工作。如果我尝试从默认位置运行驱动程序,它可以工作。我尝试过不同版本的 Selenium,但没有运气,也尝试过不同版本的 Chrome。
预期成绩
ChromeDriver将执行 chrome.exe。
实际结果
ChromeDriver因未知原因 无法启动 chrome.exe 。CLI 图片
代码
ChromeDriver driver = new ChromeDriver(new ChromeOptions { BinaryLocation = Path.Combine(Environment.CurrentDirectory, @"GoogleChromePortable") });
异常详情
OpenQA.Selenium.WebDriverException
HResult=0x80131500
Message=unknown error: Failed to create Chrome process.
Source=WebDriver
StackTrace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeOptions options)
at Self_Contained.Program.Main(String[] args) in *:\*\*\SFC\Program.cs:line 11
解决方案
经过数小时的研究,我发现排除chrome.exe 可能会导致此问题。我将 chrome.exe 添加到二进制路径中,瞧,它正在工作。
推荐阅读
- laravel - Laravel - 如何将变量传递给控制器和路由的 url 名称
- reactjs - 如何在反应原生 UI Kitten 工具包中自定义选定日期的视图
- android - SessionManager.endCurrentSession(false) 停止投射
- typescript - 在nestjs中使用类验证器验证环境变量?
- java - 响应不包含值时的 JSON 解析问题
- python - 如何在 Python 中显示 SVG 图像
- spring - 在一个 Spring 应用程序上下文中配置两个不同的作业存储库。这样做是否正确?
- typescript - 打字稿接口泛型:仅当 T 是联合类型 'A | 时才允许泛型 T 乙'
- gitlab - 如何使用标签设置作业工件以永不过期 Gitlab CI
- debugging - 是否有在调试应用程序之间切换的热键