如何访问AfterTestRun钩子中的页面

问题描述 投票:0回答:1

我想在测试运行后创建 rook 以在运行后清理数据。 对于 AfterScenario 挂钩,我使用来自注入的 ScenarioContext:

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

稍后我可以在场景挂钩中调用页面:

var creditPage = _scenarioContext.ScenarioContainer.Resolve<CreditPage>();

但是我不知道如何访问 AfterTestRun 内的页面,该页面必须是静态的。

playwright specflow playwright-dotnet playwright-sharp
1个回答
0
投票

您可以创建一个自定义变量 _Page 并在测试开始时通过 hooks 的构造函数将页面对象提供给它

  [Binding]
  public class HooksForTest
   {
    public readonly ScenarioContext _scenarioContext;
    public IPage _Page;

    public HooksForTest (ScenarioContext scenarioContext)
    {
        _scenarioContext = scenarioContext;
        _Page = CurrentPage;
    }
 }

当前页面是页面初始化后的页面。现在_Page 将保持活动状态,您可以在测试后访问它

创建自己的页面对象比从 PageTest 获取的页面对象更好

© www.soinside.com 2019 - 2024. All rights reserved.