繁体   English   中英

C# - Google chrome 在 docker Z0F4137ED1502B5045D2BAA8CZ 上运行 selenium 测试时崩溃

[英]C# - Google chrome is getting crashed when running selenium tests on docker windows

在 docker Z0F4137ED1502B5055D6083AA258 上运行 selenium c# 测试时出现以下错误。 谁能帮我解决这个问题。 我真的很难解决它。

我得到的错误如下所示:

OpenQA.Selenium.WebDriverException : unknown error: Chrome failed to start: crashed.
(chrome not reachable)
(The process started from chrome location C:\Program Files\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
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 SeleniumCore.Core.Chrome.Initialize() in C:\src\SeleniumCore\Core\Chrome.cs:line 58

初始化 chrome 的代码如下所示:

public class Chrome : IBrowser
{
public RemoteWebDriver MainDriver { get; private set; }

private readonly bool Headless;

    public Chrome(AppConfigContext context)
    {
        Headless = context.Headless;
    }

    /// <summary>
    /// Initialize Chrome Browser Instance.
    /// </summary>
    public void Initialize()
    {
        ChromeOptions options = new ChromeOptions();

        if (Headless)            
            options.AddArgument("headless");
            options.AddArgument("--disable-gpu");
            options.AddArgument("--no-sandbox");
            options.AddArguments("--disable-dev-shm-usage");

        var downloadPath = Controls.DataFilePath + @"Downloads";

        Controls.CreateDirectory(downloadPath);

        options.AddUserProfilePreference("download.default_directory", downloadPath);
        options.AddUserProfilePreference("download.prompt_for_download", false);
        options.AddUserProfilePreference("disable-popup-blocking", "true");



        RemoteWebDriver driver = new ChromeDriver(@"C:\Chromedrivers\new",options);
        MainDriver = driver;

我正在使用的 docker 信息:

客户:

上下文:默认

调试模式:假

插件:

buildx:Docker Buildx(Docker Inc.,v0.7.1)

撰写:Docker 撰写(Docker Inc.,v2.2.1)

扫描:Docker 扫描(Docker Inc.,v0.14.0)

服务器:

容器:5

运行:0

暂停:0

停止:5

图片:50

服务器版本:20.10.11

存储驱动程序:windowsfilter

Windows:

日志记录驱动程序:json 文件

插件:

音量:本地

Kernel 版本:10.0 19042 (19041.1.amd64fre.vb_release.191206-1406)

操作系统:Windows 10 Pro 版本 2009(操作系统内部版本 19042.1466)

操作系统类型:windows

架构:x86_64

中央处理器:4

总 Memory:7.886GiB

姓名:

标签:

实验:错误

不安全的注册表:

127.0.0.0/8

启用实时恢复:假

产品许可证:社区引擎

请对此作出答复。 谢谢

如果您的用例是连接到RemoteWebDriver ,而不是:

RemoteWebDriver driver = new ChromeDriver(@"C:\Chromedrivers\new",options);

你必须:

var MainDriver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), DesiredCapabilities.Chrome()); // replace this url with the url of your remote hub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM