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

OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally while executing tests through Selenium start on linux(OpenQA.Selenium.WebDriverException:未知错误:Chrome 无法启动:在 Linux 上通过 Selenium start 执行测试时异常退出) - IT屋-程序员软件开发技术分享社
本文介绍了OpenQA.Selenium.WebDriverException:未知错误:Chrome 无法启动:在 Linux 上通过 Selenium start 执行测试时异常退出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

公开课程序{公共静态异步任务 Main(string[] args){//chrome的设置var chromeOpts = new ChromeOptions();chromeOpts.AddArgument("headless");chromeOpts.AddArgument("no-sandbox");//获取chrome驱动所在的汇编路径字符串 codeBase = Assembly.GetExecutingAssembly().CodeBase;UriBuilder uri = new UriBuilder(codeBase);字符串路径 = Uri.UnescapeDataString(uri.Path);路径 = Path.GetDirectoryName(路径);var driver = new ChromeDriver(path, chromeOpts, TimeSpan.FromSeconds(180));}}

如您所见,我使用 Chrome 作为驱动程序,我下载了它

似乎 Selenium 无法启动应用程序.查看我得到的异常:

<块引用>

找不到 Chrome 二进制文件

很遗憾,我在网上没有找到类似的东西,有人可以帮助我吗?

提前致谢.

更新

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

OpenQA.Selenium.WebDriverException:未知错误:Chrome 无法启动:异常退出(驱动程序信息:chromedriver=2.9.248304,platform=Linux 4.4.0-130-generic x86_64)在 OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(响应错误响应)在 OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串 driverCommandToExecute,Dictionary`2 参数)在 OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)在 OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor,ICapabilities desiredCapabilities)在 OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService 服务,ChromeOptions 选项,TimeSpan 命令超时)在 OpenQA.Selenium.Chrome.ChromeDriver..ctor(String chromeDriverDirectory, ChromeOptions options, TimeSpan commandTimeout) 在 ODS.Program.Main(String[] args)

解决方案

这个错误信息...

OpenQA.Selenium.WebDriverException:未知错误:Chrome 启动失败:异常退出

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

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

  • 您使用的是非常古老的 chromedriver=2.9.

所以 ChromeDriver 版本 (v2.33) 和最近的 Chrome 浏览器 版本 (vVersion68.0)

解决方案

  • ChromeDriver 升级到当前的 ChromeDriverv2.41 级别.
  • Chrome 版本保持在 Chrome v67-69 级别之间.(根据 ChromeDriver v2.41 发行说明)
  • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖.
  • 如果您的基础 Web Client 版本太旧,请通过 卸载它Revo Uninstaller 并安装最新的 GA 和发布版本的 Web Client.
  • 执行你的 @Test.
<小时>

参考文献

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

  • WebDriverException:消息:未知错误:Chrome 无法启动:在 debian 服务器上使用 ChromeDriver Chrome 和 Selenium 异常退出
  • 消息:未知错误:Chrome 无法启动:在 AWS Cloud9 上使用 Linux 4.9.85-38.58.amzn1.x86_64 x86_64 异常退出
  • WebDriverException:消息:未知错误:Chrome 无法启动:在 VPS 上通过 Python 使用 ChromeDriver Chrome 和 Selenium 异常退出

I created an application that use Selenium using .NetCore for use it on Linux, actually this is my code implementation:

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));
    }
}

as you can see I am using as driver Chrome, I downloaded it here, I also added the driver inside the folder of the assembly, in this way the ChromeDriver knows already where to search it.

On linux I changed the folder permission using chmod -R 777, but when I run my Dotnet application I get this:

Seems that Selenium cannot start the application. Looking at the Exception I get:

Cannot find Chrome binary

Unfortunately I didn't find anything similar on the web, someone could help me?

Thanks in advance.

UPDATE

I Just reinstalled Chrome on my linux machine and now the error above went away, but there is another problem now, infact I get this error:

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)

解决方案

This error message...

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

...implies that the ChromeDriver was unable to initiate/spawn a new WebBrowser i.e. Chrome Browser session.

Your main issue is the incompatibility between the version of the binaries you are using as follows:

  • You are using chromedriver=2.9 which is pretty ancient.

So there is a clear mismatch between the ChromeDriver version (v2.33) and the recent Chrome Browser version (vVersion 68.0)

Solution

  • Upgrade ChromeDriver to current ChromeDriver v2.41 level.
  • Keep Chrome version between Chrome v67-69 levels. (as per ChromeDriver v2.41 release notes)
  • Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
  • If your base Web Client version is too old, then uninstall it through Revo Uninstaller and install a recent GA and released version of Web Client.
  • Execute your @Test.

References

You can find a couple of relevant discussions in:

  • WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally with ChromeDriver Chrome and Selenium on debian server
  • Message: unknown error: Chrome failed to start: exited abnormally on AWS Cloud9 with Linux 4.9.85-38.58.amzn1.x86_64 x86_64
  • WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally with ChromeDriver Chrome and Selenium through Python on VPS

这篇关于OpenQA.Selenium.WebDriverException:未知错误:Chrome 无法启动:在 Linux 上通过 Selenium start 执行测试时异常退出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)