OpenQA.Selenium.WebDriverException:未知错误:Chrome无法启动:在Linux上通过Selenium执行测试时exception退出

我创建了一个使用Selenium的应用程序,使用.NetCore在Linux上使用它,实际上这是我的代码实现:

public class Program { public static async Task Main(string[] args) { //Settings for chrome var chromeOpts = new ChromeOptions(); chromeOpts.AddArgument("headless"); chromeOpts.AddArgument("no-sandbox"); //Get assembly path where chrome driver is located string codeBase = Assembly.GetExecutingAssembly().CodeBase; UriBuilder uri = new UriBuilder(codeBase); string path = Uri.UnescapeDataString(uri.Path); path = Path.GetDirectoryName(path); var driver = new ChromeDriver(path, chromeOpts, TimeSpan.FromSeconds(180)); } } 

你可以看到我用作驱动程序Chrome,我在这里下载了它,我还在程序集文件夹中添加了驱动程序,这样ChromeDriver就知道在哪里搜索它。

在linux上我使用chmod -R 777更改了文件夹权限,但是当我运行我的Dotnet应用程序时,我得到了这个:

在此处输入图像描述

似乎Selenium无法启动应用程序。 看看我得到的例外情况:

找不到Chrome二进制文件

不幸的是我没有在网上找到类似的东西,有人可以帮助我吗?

提前致谢。

UPDATE

我刚刚在我的linux机器上重新安装了Chrome ,现在上面的错误消失了,但是现在还有另外一个问题,实际上我得到了这个错误:

 OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally (Driver info: chromedriver=2.9.248304,platform=Linux 4.4.0-130-generic x86_64) 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(String chromeDriverDirectory, ChromeOptions options, TimeSpan commandTimeout)\ at ODS.Program.Main(String[] args) 

此错误消息…

 OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally 

…暗示ChromeDriver无法启动/生成新的WebBrowserChrome浏览器会话。

您的主要问题是您使用的二进制文件版本之间的不兼容性如下:

  • 你正在使用chromedriver = 2.9这是非常古老的。

因此, ChromeDriver版本( v2.33 )与最近的Chrome浏览器版本( vVersion 68.0 )之间存在明显的不匹配

  • ChromeDriver升级到当前的ChromeDriver v2.41级别。
  • Chrome版本保持在Chrome v67-69级别之间。 ( 根据ChromeDriver v2.41发行说明 )
  • 通过IDE 清理 Project Workspace ,并仅使用所需的依赖项重建项目。
  • 如果您的基本Web客户端版本太旧,请通过Revo Uninstaller将其卸载并安装最新的GA和已发布的Web客户端版本。
  • 执行你的@Test