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로 생성되어야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#에서 xUnit 프레임워크용 Selenium WebDriver 설정진행 중인 'Selenium xUnit 테스트 자습서' 시리즈에서는 이전에 Visual Studio에서 xUnit 프레임워크를 설정하는 방법을 살펴보았습니다. Selenium WebDriver for xUnit을 설...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.