我当前的设计如下: Web驱动程序是每个测试套件(在本例中为Chrome)的每个设置的一部分
public void SetUp()
{
driver = new ChromeDriver();
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
}
为了能够在每个测试套件中使用全局变量,我创建了:
class Globals
{
//drivers
public static IWebDriver driverChrome = new ChromeDriver();
//ImplicitWait
public static double ImplicitWaitGlobal = 20;
}
因此将我的SetUp()更改为调用全局变量:
public void SetUp()
{
driver = Globals.driverChrome;
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
}
以上所有方法都非常有效,但每次打开其他Chrome窗口 我进行测试(由于在Globals类下创建了一个新的Chrome驱动程序实例)。
该类如下:
public class Some_Tests
{
private IWebDriver driver;
private IWebElement element;
[SetUp]
public void SetUp()
{
driver = new Globals.driverChrome;
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
}
[Test]
[Description("myTest1")]
public void Test_1()
{
Navigate.LogIn_SideBar(Enviroment.Env, Users.user1, driver);
}
[Test]
[Description("myTest2")]
public void Test_2()
{
Navigate.LogIn_SideBar(Enviroment.Env, Users.user1, driver);
}
[TearDown]
public void TearDown()
{
driver.Close();
driver.Quit();
}
}
有没有一种方法可以使驾驶员以更“优雅”的方式通过而不会发生这种情况?
谢谢。
答案 0 :(得分:0)
您想改用OneTimeSetup
。 Setup
每个测试方法运行一次。 OneTimeSetup
在运行任何测试之前运行一次。看看Setup And Teardown Docs