使用ChromeDriver v2.22.0

时间:2016-06-23 17:42:35

标签: c# selenium selenium-webdriver server

我已经看到了关于这个主题的一些答案,但是几年前,答案围绕着使用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();
            }

0 个答案:

没有答案