NUNIT 3.10.1 C# 硒

NUNIT 3.10.1 C# Selenium

我只能执行第一个测试方法。即使代码正确,所有后续测试方法都无法执行。有关错误消息,请参见附图。使用 test.sdk(15.8.0)、NUNIT(3.10.1)、Selenium.WebDriver(3.13.0)、Selenium.IEDriverServer.win64(3.9.0)、Selenium.InternetExplorer.WebDriver(3.3 .0)

using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.IE;
using System;
using OpenQA.Selenium.Interactions;
using System.Threading;

namespace Tests
{
    public class LandingPage
    {
        IWebDriver driver = new InternetExplorerDriver("C:\Users\M\Desktop\SL\SLAutomation\Core\CoreLandingPage\CoreLandingPage\CoreLandingPage\Drivers\");

        [SetUp]
        public void Initialize()
        {
            driver.Navigate().GoToUrl("http://www.google.com");
            Console.WriteLine("Opened URL");
        }

        [Test]
        public void TestCase1()
        {
            Assert.That(2+2, Is.EqualTo(4));
            Console.WriteLine("Test case 1");
        }


        [Test]
        public void TestCase2()
        {
            Assert.That(2 * 2, Is.EqualTo(4));
            Console.WriteLine("Test case 2");
        }


        [TearDown]    
        public void CleanUp()
        {
            driver.Close();
            Console.WriteLine("Closed Browser");
        }
    }
}

您需要在带有 [SetUp] 标记的方法 Initialize() 中实例化驱动程序。发生错误是因为在 TestCase1() 结束时,调用 CleanUp() 并关闭了驱动程序。然后 TestCase2() 出现并调用 Initialize() 但驱动程序不再存在。您可以通过注释掉 CleanUp().

中的 driver.Close(); 行来验证这一点

您的代码应该更像

public class LandingPage
{
    IWebDriver driver;

    [SetUp]
    public void Initialize()
    {
        driver = new InternetExplorerDriver("C:\Users\M\Desktop\SL\SLAutomation\Core\CoreLandingPage\CoreLandingPage\CoreLandingPage\Drivers\");
        driver.Navigate().GoToUrl("http://www.google.com");
        Console.WriteLine("Opened URL");
    }
    ...