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

时间:2018-08-07 06:52:47

标签: c# google-chrome selenium selenium-webdriver selenium-chromedriver

我使用.NetCore创建了一个使用 Selenium 的应用程序,以便在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作为驱动程序,我下载了here,还将该驱动程序添加到了程序集的文件夹中,这样ChromeDriver便知道了要在哪里搜索它。

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

enter image description here

似乎 Selenium 无法启动该应用程序。 查看异常,我得到:

  

找不到Chrome二进制文件

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

谢谢。

更新

我刚刚在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)

1 个答案:

答案 0 :(得分:2)

此错误消息...

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

...表示 ChromeDriver 无法启动/产生新的 WebBrowser ,即 Chrome浏览器会话。

您的主要问题是所使用的二进制版本之间的不兼容性

  • 您使用的是 chromedriver = 2.9 ,它非常古老。

因此 ChromeDriver 版本( v2.33 )与最新的 Chrome浏览器版本( vVersion 68.0

解决方案

  • ChromeDriver 升级到当前的ChromeDriver v2.41级别。
  • Chrome 版本保持在 Chrome v67-69 级别之间。 (as per ChromeDriver v2.41 release notes
  • 通过您的 IDE
  • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
  • 如果您的基本 Web客户端版本过旧,请通过Revo Uninstaller进行卸载,并安装最新版本的 Web客户端。 li>
  • 执行您的@Test