有没有办法使用Webdriver(Selenium)使用Xunit在同一浏览器中运行多个测试,目前xunit为每个新测试启动新的浏览器,下面是示例代码
public class Class1
{
private FirefoxDriver driver;
public Class1()
{
driver = new FirefoxDriver();
}
[Fact]
public void Test()
{
driver.Navigate().GoToUrl("http://google.com");
driver.FindElementById("gbqfq").SendKeys("Testing");
}
[Fact]
public void Test2()
{
driver.Navigate().GoToUrl("http://google.com");
driver.FindElementById("gbqfq").SendKeys("Testing again");
}
}
虽然我不了解 Selenium,但我确实知道 xUnit.net 为每个测试方法创建了一个测试类的新实例,因此这可能解释了为什么您会看到所报告的行为:driver
对于每个测试方法都会重新初始化字段,因为每次都会调用构造函数。
为了重复使用单个FirefoxDriver
例如,您可以使用 xUnit.net 的IUseFixture<T>
界面:
public class Class1 : IUseFixture<FirefoxDriver>
{
private FirefoxDriver driver;
public void SetFixture(FirefoxDriver data)
{
driver = data;
}
[Fact]
public void Test()
{
driver.Navigate().GoToUrl("http://google.com");
driver.FindElementById("gbqfq").SendKeys("Testing");
}
[Fact]
public void Test2()
{
driver.Navigate().GoToUrl("http://google.com");
driver.FindElementById("gbqfq").SendKeys("Testing again");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)