C# Selenium Webdriver 异常 | 此版本的 ChromeDriver 仅支持 Chrome 版本 85

ru4*_*ert 10 c# selenium selenium-chromedriver selenium-webdriver

MyChrome驱动程序

我的谷歌浏览器版本:88.0.4324.150

我找到了一些解决方案,但对我不起作用。我想打开 Google Chrome 并抛出 Selenium,但它还不起作用。

错误

System.InvalidOperationException
  HResult=0x80131509
  Message=session not created: This version of ChromeDriver only supports Chrome version 85 (SessionNotCreated)
  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 RSelenium.start_Browser() in C:\Users\ruper\source\repos\T\T\RSelenium.cs:line 30
   at T.Form1.btn_selenium_Click(Object sender, EventArgs e) in C:\Users\ruper\source\repos\T\T\Form1.cs:line 61
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at T.Program.Main() in C:\Users\ruper\source\repos\T\T\Program.cs:line 47

Run Code Online (Sandbox Code Playgroud)

代码

System.Environment.SetEnvironmentVariable("webdriver.chrome.driver", @"C:\Program Files\Google\Chrome\Application\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.AddArguments("start-maximized");
options.AddArguments("disable-infobars");
options.AddArguments("--disable-extensions");
options.AddArguments("--disable-gpu");
options.AddArguments("--disable-dev-shm-usage");
options.AddArguments("--no-sandbox");
IWebDriver driver = new ChromeDriver(options);
Run Code Online (Sandbox Code Playgroud)

PDH*_*ide 10

http://chromedriver.chromium.org/downloads?tmpl=%2Fsystem%2Fapp%2Ftemplates%2Fprint%2F&showPrintDialog=1

从这里下载 chrome 驱动程序 88

https://www.selenium.dev/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Chrome_ChromeDriver.htm

你可以看到构造函数接受可执行文件的路径

所以使用

IWebDriver driver = new ChromeDriver("c:/DownloadeddirectoryPath",options);
Run Code Online (Sandbox Code Playgroud)

注意:路径应该是包含 chromedriver.exe 的目录的 PATH,而不是 chromedriver.exe 本身