首页 > 解决方案 > ScenarioContext.Current 是使用上下文注入的过时错误

问题描述

我一直在关注一个旧的 selenium 教程,但由于这个错误,我无法执行该程序。这是我的代码:

namespace ProductAutomation.Utils.Hooks
{
    [Binding]
    public class ScenarioHooks
    {
        private readonly ScenarioContext _scenarioContext;

        public ScenarioHooks(ScenarioContext scenarioContext)
        {
            _scenarioContext = scenarioContext;
        }
        

        [BeforeScenario]
        public void StartWebDriver()
        {
            if (_scenarioContext.Current.ScenarioInfo.Tags.Contains("Chrome"))
            {
                DriverController.Instance.StartChrome("--disable-extensions");
            }
        }
    }
}

我收到以下错误:

ScenarioContext.Current 已过时。请通过上下文注入获取 ScenarioContext。

ScenarioContext.Current 不能通过实例引用访问;改为使用类型名称来限定它

标签: c#seleniumselenium-webdriver

解决方案


您需要更换:

if (_scenarioContext.Current.ScenarioInfo.Tags.Contains("Chrome"))

和:

if (_scenarioContext.ScenarioInfo.Tags.Contains("Chrome"))

我还建议通过 ContextInjection 获取 DriverContext。


参考

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


tl; 博士

您可以在ScenarioContext中找到详细的文档


推荐阅读