【问题标题】:OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally while executing tests through Selenium start on linuxOpenQA.Selenium.WebDriverException:未知错误:Chrome 无法启动:在 Linux 上通过 Selenium start 执行测试时异常退出
【发布时间】:2019-01-14 04:14:29
【问题描述】:

我创建了一个使用 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 作为驱动程序,我下载了它here,我还在程序集的文件夹中添加了驱动程序,这样 ChromeDriver 已经知道在哪里搜索它。

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

似乎 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)

【问题讨论】:

  • 使用基于 text 的错误跟踪日志更新问题
  • @DebanjanB 我添加了它

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


【解决方案1】:

此错误消息...

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 级别之间。 (as per ChromeDriver v2.41 release notes)
  • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
  • 如果您的基础 Web Client 版本太旧,请通过 Revo Uninstaller 卸载它并安装最新的 GA 和发布版本的 Web Client
  • 执行您的@Test

参考文献

您可以在以下位置找到一些相关讨论:

【讨论】:

  • 我不敢相信,这个工作,我错了在这里:chromedriver.storage.googleapis.com/index.html 事实上我下载了 2.9 版(我虽然数字最大的版本是最近的版本)。无论如何,在你链接到我的网站上,最近是 2.41,所以这真的很奇怪。你怎么看待这件事?无论如何,感谢这个解决方案,你帮了我很多,祝你有美好的一天!
猜你喜欢
  • 2021-04-19
  • 1970-01-01
  • 2014-04-20
  • 1970-01-01
  • 2023-01-07
  • 1970-01-01
  • 2016-10-08
  • 2018-09-17
相关资源
最近更新 更多