Attempting to run multiple Selenium Webdriver tests using Nunit fails

冷暖自知 提交于 2020-01-11 07:37:30

问题


I was wondering if anyone could help me here. I'm using selenium Webdriver with C# and Nunit, and when I'm attempting to run multiple tests, I'm getting the following error:

OpenQA.Selenium.WebDriverException : Unexpected error. System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:7055 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)

When I run these tests as individuals they are running and passing fine.

Any help or pointer would be great.

Below is a sample of my Code and my driver class

Driver Class

using System;
using System.Configuration;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;

namespace SMT.Web.FunctionalTests.Drivers
{
   public class Driver
{
    private static IWebDriver _driver;

    protected static IWebDriver GetWebDriver
    {
        get
        {
            if (_driver == null)
            {
                string driverConfig = ConfigurationManager.AppSettings["browser"];
                if (!String.IsNullOrEmpty(driverConfig))
                {
                    switch (ConfigurationManager.AppSettings["browser"])
                    {
                        case "Chrome":
                            _driver = new ChromeDriver();
                            ConfigureDriver();
                            break;
                        case "Firefox":
                            _driver = new FirefoxDriver();
                            ConfigureDriver();
                            break;
                        case "IE":
                            _driver = new InternetExplorerDriver();
                            ConfigureDriver();
                            break;
                        default:
                            Console.WriteLine("App.config key error");
                            Console.WriteLine("Defaulting to FireFox");
                            _driver = new FirefoxDriver();
                            ConfigureDriver();
                            break;
                    }
                }
                else
                {
                    Console.WriteLine("* * * * DEFAULT MODE * * * *");
                    Console.WriteLine("Defaulting to Firefox");
                    _driver = new FirefoxDriver();
                    ConfigureDriver();

                }
            }
            return _driver;
        }
    }

    internal static void ConfigureDriver(string page = "")
    {
        string url = ConfigurationManager.AppSettings["URL"];
        _driver.Manage().Timeouts().ImplicitlyWait(new TimeSpan(0, 0, 30));
        _driver.Manage().Cookies.DeleteAllCookies();
        _driver.Manage().Window.Maximize();
        _driver.Navigate().GoToUrl(string.Concat(url, page));
    }

    public static void Close()
    {
        _driver.Close();
    }
}

}

Test Class

public class LoginRegressionTests : Driver
{
    public static IWebDriver WebDriver { get; set; }
    public AjaxHelpers AjaxHelpers;
    public DatabaseHelpers DatabaseHelpers;

    [SetUp]
    public void Setup()
    {
        DatabaseHelpers = new DatabaseHelpers();
        DatabaseHelpers.DatabaseSetUpClearDown();
        WebDriver = GetWebDriver;
        AjaxHelpers = new AjaxHelpers(WebDriver);
    }

    [TearDown]
    public void Teardown()
    {
        WebDriver.Close();
    }

    [Test]
    public void LoginWithIncorrectUserNamePasswordTest()
    {
        // Create an Instance of Header Banner Page Object
        var headerBannerPage = new HeaderBannerPage(WebDriver);
        headerBannerPage.ClickSigninLink();


        // Create an Instance of Login Page Object
        var loginPage = new LoginPage(WebDriver);
        loginPage.EnterCustomerUsername("someoneemail@email.com");
        loginPage.EnterCustomerPassword("*&^%£$£");
        loginPage.ClickLoginCustomerButton();

        AjaxHelpers.WaitForAjax();

        String usernameRequiredBorderBottom = WebDriver.FindElement(By.CssSelector("#login-username")).GetCssValue("border-bottom-color");
        String usernameRequiredBorderLeft = WebDriver.FindElement(By.CssSelector("#login-username")).GetCssValue("border-left-color");
        String usernameRequiredBorderRight = WebDriver.FindElement(By.CssSelector("#login-username")).GetCssValue("border-right-color");
        String usernameRequiredBorderTop = WebDriver.FindElement(By.CssSelector("#login-username")).GetCssValue("border-top-color");
        Assert.AreEqual(usernameRequiredBorderBottom, "rgba(181, 79, 80, 1)");
        Assert.AreEqual(usernameRequiredBorderLeft, "rgba(181, 79, 80, 1)");
        Assert.AreEqual(usernameRequiredBorderRight, "rgba(181, 79, 80, 1)");
        Assert.AreEqual(usernameRequiredBorderTop, "rgba(181, 79, 80, 1)");


        String passwordrequiredBorderBottom = WebDriver.FindElement(By.CssSelector("#login-password")).GetCssValue("border-bottom-color");
        String passwordrequiredBorderLeft = WebDriver.FindElement(By.CssSelector("#login-password")).GetCssValue("border-left-color");
        String passwordrequiredBorderRight = WebDriver.FindElement(By.CssSelector("#login-password")).GetCssValue("border-right-color");
        String passwordrequiredBorderTop = WebDriver.FindElement(By.CssSelector("#login-password")).GetCssValue("border-top-color");
        Assert.AreEqual(passwordrequiredBorderBottom, "rgba(181, 79, 80, 1)");
        Assert.AreEqual(passwordrequiredBorderLeft, "rgba(181, 79, 80, 1)");
        Assert.AreEqual(passwordrequiredBorderRight, "rgba(181, 79, 80, 1)");
        Assert.AreEqual(passwordrequiredBorderTop, "rgba(181, 79, 80, 1)");

    }
}

来源:https://stackoverflow.com/questions/28539625/attempting-to-run-multiple-selenium-webdriver-tests-using-nunit-fails

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!