gpt4 book ai didi

c# - 在 C# 中保留 WebDriver 的单个实例

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:33 25 4
gpt4 key购买 nike

我在 VB2015 中使用最新版本的 NUnit 3 和 Selenium 3。我目前有一个只创建驱动程序的类,一个进行设置和拆卸的基类,以及一些实际执行测试的类。我希望能够只创建驱动程序的一个实例,并在几个不同的类“客户、发票、估算等”中携带它,因为我根据它们的功能对测试进行分组。最后我只需单击以运行一个实例webdriver,它涵盖了一切。

但是,我不断为我运行的每个类(在本例中为 2)获取 webdriver 的新实例。以下是我的样本:

我的驱动程序创建者:

public class DriverObject
{

protected static IWebDriver Driver { get; } = new ChromeDriver(options());

public static ChromeOptions options()
{
ChromeOptions info = new ChromeOptions();
info.AddArgument("--start-maximized");
return info;
}
}

我收集驱动程序的安装类:

[TestFixture]
public class SetupTestC : Release.DriverObject
{

[OneTimeSetUp]
public void SetupTest()
{
Driver.Navigate().GoToUrl("https://www.yahoo.com");
}

[OneTimeTearDown]
public void TearDown()
{
Driver.Quit();
}
}

其中一个测试类:

public partial class Client : TestStructure.SetupTestC
{

[Test]
public void test1()
{
By searchBtn = By.Id("uh-search-box");
Driver.FindElement(searchBtn).Click();
Driver.FindElement(searchBtn).SendKeys("This is a test search");
Thread.Sleep(2000);

}
}

我的另一个测试类:

class Invoices : TestStructure.SetupTestC
{
[Test]
public void test2()
{
Assert.True(false);
}
}

我尝试为 NUnit 3 使用类别标签,但这似乎并不重要。

最佳答案

Nunit 默认在单独的应用程序域中运行来自一个程序集的所有测试。如果您从两个程序集运行两个测试,您的静态成员也将被初始化两次。

关于c# - 在 C# 中保留 WebDriver 的单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43213771/

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