gpt4 book ai didi

selenium - 为并行执行设置 selenium webdriver

转载 作者:行者123 更新时间:2023-11-28 20:40:46 25 4
gpt4 key购买 nike

我正在尝试通过 xUnit 控制台运行程序并行执行大量 selenium 测试。

这些已经执行,我看到打开了 3 个 chrome 窗口,但是第一个发送键命令只对一个窗口执行了 3 次,导致测试失败。

在每个场景之前,我已经在对象容器中注册了我的驱动程序,如下所示:

[Binding]
public class WebDriverSupport
{
private readonly IObjectContainer _objectContainer;

public WebDriverSupport(IObjectContainer objectContainer)
{
_objectContainer = objectContainer;
}

[BeforeScenario]
public void InitializeWebDriver()
{
var driver = GetWebDriverFromAppConfig();
_objectContainer.RegisterInstanceAs<IWebDriver>(driver);
}

然后在我的 specflow 步骤定义中将驱动程序调用为:

_driver =   (IWebDriver)ScenarioContext.Current.GetBindingInstance(typeof(IWebDriver));
ScenarioContext.Current.Add("Driver", _driver);

然而,这没有任何区别,而且我的测试似乎正在尝试对一个驱动程序执行所有命令。

谁能告诉我哪里出错了?

最佳答案

您不应该在并行执行上下文中使用 ScenarioContext.Current。如果您通过 _objectContainer.RegisterInstanceAs 注入(inject)驱动程序,您将通过在步骤类的构造函数中注入(inject)构造函数来接收它,如下所示:

public MyScenarioSteps(IWebDriver driver)
{
_driver = driver;
}

更多信息:

在我看来,这非常困惑。

关于selenium - 为并行执行设置 selenium webdriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33917050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com