Webdriver(selenium 2.0) + NUnit+ C# (2)

namespace SeleniumTests
{
    [TestFixture]
    public class Login
    {
        private IWebDriver driver;
        private StringBuilder verificationErrors;
        private string baseURL;
        private bool acceptNextAlert = true;
        
        [SetUp]
        public void SetupTest()
        {
            driver = new FirefoxDriver();
            baseURL = "URL";
            verificationErrors = new StringBuilder();
        }
        
        [TearDown]
        public void TeardownTest()
        {
            try
            {
                driver.Quit();
            }
            catch (Exception)
            {
                // Ignore errors if unable to close the browser
            }
            Assert.AreEqual("", verificationErrors.ToString());
        }
        
        [Test]
        public void TheLoginTest()
        {
            driver.Navigate().GoToUrl(baseURL + "/login");
            driver.FindElement(By.Name("username")).Clear();
            driver.FindElement(By.Name("username")).SendKeys("USERNAME");
            driver.FindElement(By.Name("password")).Clear();
            driver.FindElement(By.Name("password")).SendKeys("PASSWORD");
            driver.FindElement(By.XPath("//button[@type='submit']")).Click();
        }
     }
  }

위에는selenium ide로 녹음된 페이지의 로그인 조작 코드가 있습니다.사용자 이름과 비밀번호를 입력하는 코드처럼 번거롭다면 SendKeys라는 방법(clear와sendkeys 동작 포함)을 봉인할 수 있다. 매번 이 요소를 찾을 필요가 없다. 먼저clear를 찾은 다음에 이 요소를 다시 찾고sendkeys를 다시 찾을 수 있다.이와 같은 일반적인 조작은 모두 봉인해서 하나의 Common 클래스 (Common 프로젝트) 에 놓고, 일부 조작case는 다른 프로젝트에 놓을 수 있다.다음은 상술한 예에 대해 봉인 조작을 진행하는 것이다.
namespace TestSelenium.Test
{
    [TestFixture]
    class Test
    {
        TestSelenium.Common.Common Testcorde = new Common.Common();
        [SetUp]
        public void Setup()
        {
            Testcorde.SetupTest();
        }
        [TearDown]
        public void TearDown()
        {
            Testcorde.TeardownTest();
        }
        [Test]
        public void Test01()
        {     
          Testcorde.TheLoginTest("URL","USERNAME","PASSWORD" );            
        }
    }
}

위 Test01은 로그인 작업의case이고 TheLoginTest(string baseurl,string username,string password)는 전체 로그인 작업의 방법입니다.Setup Test, Teardown Test, Send Keys, 클릭, The Login Test 등은 모두 아래의 Common 클래스에 놓여 있다.
namespace TestSelenium.Common
{
    public class Common
    {
        public IWebDriver driver;
        public void SetupTest()
        {
            driver = new InternetExplorerDriver(@"C:/AUTO");
            driver.Manage().Window.Maximize();
        }
        public void TeardownTest()
        {
            driver.Quit();
        }
        public void SendKeys(By by, string Message)
        {
            driver.FindElement(by).Clear();
            driver.FindElement(by).SendKeys(Message);
        }
        public void Click(By by)
        {
            driver.FindElement(by).Click();
        }
        public void TheLoginTest(string baseurl, string username, string password)
        {
            driver.Navigate().GoToUrl(baseurl + "/login");  
            SendKeys(By.Name("username"),username);      
            SendKeys(By.Name("password"), password);
            Click(By.XPath("//button[@type='submit']"));
        }
    }
}

ps. Common 프로젝트는 라이브러리 출력 형식입니다.case 프로젝트는 Common 프로젝트를 인용하고 ANYCPU로 생성되어야 합니다.

좋은 웹페이지 즐겨찾기