我已经看到了关于这个主题的一些答案,但是几年前,答案围绕着使用localhost和/或使用selenium服务器,我也没有。
我正在为自动化项目使用SpecFlow,Selenium和NUnit的组合。我使用运行SpecFlow场景的ReSharper Unit Test Explorer。
我目前的测试场景是填写文本字段并保存条目。
在执行Driver.Quit()的每个场景之后都会运行一个AfterScenario,并且看起来该实例已被销毁,然后在下一个场景运行时重新初始化。
我可以单独运行场景,它们运行得非常好。当我尝试将场景作为集合运行时,就会出现这种情况。运行的测试是相同的文本输入方案,第一个方案成功运行,但是当第二个方案到达第一个文本输入字段时,会发生此错误。
(注意:我没有在本地主机上运行这些测试,它们是在开发环境中运行的)
其他信息:意外错误。 System.Net.WebException:无法连接到远程服务器---> System.Net.Sockets.SocketException:无法建立连接,因为目标计算机主动拒绝它[:: 1]:63961
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,SocketAddress socketAddress)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,Socket s4,Socket s6,Socket& socket,IPAddress& address,ConnectSocketState state,IAsyncResult asyncResult,Exception& exception)
代码:
class EliteLoginSteps
public EliteTest newTest;
[BeforeScenario()]
public void Setup()
{
if (newTest == null)
{
newTest = new EliteTest();
newTest.Init();
}
else
{
newTest.Cleanup();
}
}
[AfterScenario()]
public void PostTestTearDown()
{
newTest.Cleanup();
Console.WriteLine("Test Complete");
}
EliteTest class
public void Init()
{
//init driver
Driver.Initialize();
}
public void Cleanup()
{
Driver.Close()
}
Driver class
public static IWebDriver Instance { get; set; }
public static void Initialize()
{
//set browser driver type
switch (TestManager.EnvironmentBrowserType.ToLower())
{
case ("chrome"):
Instance = new ChromeDriver();
break;
case ("ie"):
Instance = new InternetExplorerDriver();
break;
case ("firefox"):
Instance = new FirefoxDriver();
break;
default:
Instance = new FirefoxDriver();
break;
}
}
public static void Close()
{
Instance.Quit();
}