首页 > 解决方案 > Selenium WebDriver 不能在 IIS 10 上启动,但如果应用程序托管在 InProcess 上,则可以正常工作

问题描述

我有一个ASP.NET MVC CORE 3.0应用程序,我的要求是SeleniumIIS 10. 当我托管我的应用程序InProcess时,它可以工作,一旦我切换到IIS它就会停止工作(没有任何错误消息并且无论应用程序池配置文件如何)。我有以下代码,但我相信该代码与这个特定问题无关。

public void OpenOrReuseDriver(bool headlessMode = false, bool reuse = true)
{
    if (!_driver.IsClosed()) return;
    if (reuse && _drivers.Any() && _drivers.Last().IsOpen())
        _driver = _drivers.Last();
    else
    {
        var chromeService = ChromeDriverService.CreateDefaultService($@"{AppDomain.CurrentDomain.BaseDirectory}"); // Directory.GetCurrentDirectory() // AppDomain.CurrentDomain.BaseDirectory // Directory.GetCurrentDirectory()}\wwwroot
        var chromeOptions = new ChromeOptions
        {
            BinaryLocation = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
        };
        if (headlessMode)
        {
            chromeOptions.AddArguments(new List<string>
            {
                "--silent-launch",
                "--no-startup-window",
                "no-sandbox",
                "headless"
            });
            chromeService.HideCommandPromptWindow = true;
        }

        _driver = new ChromeDriver(chromeService, chromeOptions);
        var size = new Size(1240, 720);
        _driver.Manage().Window.Size = size;
        _driver.Manage().Window.Position = PointUtils.CenteredWindowTopLeft(size).ToDrawingPoint();
        _driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(60);
        _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);
        _drivers.Add(_driver);
    }
}

我想知道可以使用的Selenium步骤IIS

标签: c#seleniumasp.net-core-mvc

解决方案


推荐阅读