C# Selenium ChromeDriver 无效 --log-level 值。无法初始化日志记录

C# Selenium ChromeDriver Invalid --log-level value. Unable to initialize logging

以下代码无效:

ChromeOptions op = new ChromeOptions {
    BinaryLocation = "./chromedriver.exe"
};
op.AddArguments("--disable-logging", "--headless", "--disable-gpu", "--no-sandbox", "--disable-dev-shm-usage");
ChromeDriver driver = new ChromeDriver(op);

错误:

OpenQA.Selenium.WebDriverException HResult=0x80131500 Message=unknown error: Chrome failed to start: was killed. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location ./chromedriver.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.) 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 WebScraper.Utility.GetChromeBrowser(String binaryLocation) in C:\Users\AB\Documents\Code\CSharp\WebScraper\WebScraper\WebScraper\Utility.cs:line 20 at WebScraper.Program.d__0.MoveNext() in C:\Users\AB\Documents\Code\CSharp\WebScraper\WebScraper\WebScraper\Systems\Program.cs:line 7

最后一个控制台输出:

Invalid --log-level value. Unable to initialize logging. Exiting...

我已经尝试了网上的其他答案,现在已经在这个问题上卡了两天了。我添加的参数(不包括 --headless)是我试图让 WebDriver 开始工作但无济于事的参数。 以下是 .exe 文件所在的目录:

我试过使用参数禁用日志记录,但仍然没有用。它说它需要一个“DevToolsActivePort”文件,但我不确定如何获取该文件或将它放在哪里。是否可以为我的 selenium 应用程序使用单独的浏览器,而不是使用计算机上已安装的浏览器?应用程序是否独立而不依赖于外部安装? 任何建议都将非常有帮助!

我明白了。我需要两个 .exe 文件,一个是 Chrome driver,另一个是 Chrome browser.

安装Chrome,然后到安装的路径(通常是“C:\ProgramFiles\Google”),复制整个“Chrome”文件夹并粘贴进入应用程序目录。这是Chrome浏览器

然后,将 ChromeOptionsBinaryLocation 设为您粘贴的“Chrome”文件夹中“chrome.exe”的路径。我的是:“./Chrome/Application/chrome.exe” 现在,“BinaryLocation”指向 浏览器

然后,使用 ChromeDriverService.CreateDefaultService 静态方法创建一个 ChromeDriverService。将其指向包含“chromedriver.exe”、驱动程序 的文件夹。它必须指向 驱动程序而不是浏览器

ChromeOptionsChromeDriverService 送入 ChromeDriver 构造函数,一切就绪!