Selenium C# 튜토리얼: NUnit 프레임워크 예제

⚡ 스마트 요약

Selenium WebDriver는 IWebDriver 인터페이스를 통해 C#에서 브라우저를 제어하고, NUnit은 이러한 브라우저 단계를 반복 가능한 자동화 테스트로 변환하는 테스트 속성, 어설션 및 테스트 탐색기 보고 기능을 제공합니다.

  • 🔘 툴체인: 비주얼 스튜디오 플러스 Selenium WebDriver, NUnit 및 NUnit 테스트 어댑터 NuGet 패키지.
  • ☑️ 프로젝트 설정: 출력 유형은 콘솔 애플리케이션이 아닌 클래스 라이브러리여야 합니다. 그렇지 않으면 빌드가 실패합니다.
  • NUnit 속성: SetUp은 브라우저를 열고, Test는 작업을 수행하며, TearDown은 브라우저를 닫습니다.
  • 🧪 명령 그룹: 브라우저 명령, WebElement 명령 및 SelectElement를 통한 드롭다운 명령.
  • 🛠️ 위치: FindElement는 모든 요소 상호 작용에 대해 XPath 및 CSS 선택자 전략을 지원합니다.
  • 실행: Test Explorer는 클래스를 실행하고 각 결과를 통과 또는 실패로 보고합니다.

Selenium NUnit 테스트 프레임워크를 사용한 C# 자동화

Selenium 회사 개요

Selenium 오픈 소스 웹입니다. 자동화 테스트 여러 브라우저와 여러 운영 체제를 지원하는 도구입니다. 테스터가 다음과 같은 여러 프로그래밍 언어를 사용할 수 있습니다. Java, C#, Python자동화 테스트 코딩을 위한 Ruby, PHP 및 Perl을 제공합니다. 이 도구를 처음 사용하는 경우 다음부터 시작하세요. Selenium 지도 시간 그리고 WebDriver와 비교 Selenium RC 비교.

Selenium 브라우저 컨트롤을 제공하고, 해당 컨트롤을 구동하는 데 사용하는 언어가 구조를 제공합니다.

C# 개요

C#은 C#에서 파생된 객체지향 프로그래밍 언어입니다. C++ JavaC#은 개발자가 Visual Studio를 사용하여 .NET 플랫폼에서 애플리케이션을 구축할 수 있도록 해줍니다. 다음은 C#의 주요 기능입니다. C#.

  1. 객체지향 프로그래밍 언어이다.
  2. 콘솔, 윈도우 및 웹 기반 애플리케이션 개발을 지원합니다.
  3. 캡슐화, 상속, 다형성과 같은 기능을 제공합니다.

배선하기 전에 Selenium 이를 통해 일반적인 C# 프로그램의 형태를 파악하는 데 도움이 됩니다.

C#의 기본 구문

C# 프로그램은 다음 섹션들을 포함해야 합니다.

  1. 네임스페이스 선언
  2. 클래스
  3. 클래스 속성 및 메서드
  4. 주요 방법
  5. 프로그램 설명

예-

아래는 샘플입니다 Selenium C# 예제 프로그램으로 텍스트를 출력합니다.Guru시스템 콘솔에 99'라고 표시됩니다.

using System;
namespace FirstProgram {
class DemoPrint {
static void main(){
    Console.WriteLine("Guru99");
	}
  }
}

설명 :

  • 위의 네임스페이스 Selenium C# 예제는 여러 클래스의 컬렉션입니다. 각 네임스페이스는 'using' 키워드를 사용하여 선언해야 합니다.
  • 코드의 첫 번째 문에는 프로그램에 'System' 네임스페이스가 포함되어 있습니다. 시스템 네임스페이스는 C#에서 사용되는 기본 클래스와 이벤트를 정의합니다. 사용되는 네임스페이스는 프로그램 요구 사항에 따라 다릅니다.
  • 두 번째 문은 "DemoPrint" 클래스에 대한 네임스페이스 "FirstProgram"을 선언합니다. AC# 파일은 동일한 네임스페이스 내에 여러 클래스를 포함할 수 있습니다.
  • 세 번째 문에는 클래스 선언이 포함됩니다. 클래스에는 여러 속성과 메서드가 포함될 수 있습니다.
  • 네 번째 문에는 Main 메서드 선언이 포함되어 있습니다. 주요 메소드는 각 클래스의 실행 진입점입니다.
  • 마지막 문장은 콘솔에 문장을 출력하는 데 사용되는 C# 구문입니다. WriteLine은 메서드입니다. Console 클래스. 참고로 진입점은 철자가 틀렸습니다. Main 실제 C#에서는 대문자 M을 사용합니다. 소문자 M은 main 위 예시에서는 해당 부분이 진입점으로 인식되지 않습니다.

구문이 명확해졌으니, 다음 단계는 해당 테스트를 컴파일하고 실행하는 도구를 설치하는 것입니다.

Selenium C# 설정으로

Visual Studio를 설정하는 방법 Selenium 웹드라이버:

이제 이것에서 Selenium C# 튜토리얼, Visual Studio를 설정하는 단계별 프로세스를 알아보겠습니다. Selenium 웹드라이버:

Visual Studio는 개발자가 여러 플랫폼에서 애플리케이션을 빌드하는 데 사용하는 통합 개발 환경(IDE)입니다. Windows, Android, iOS 및 클라우드 기반 애플리케이션.

단계 1) 로 이동 URL

https://visualstudio.microsoft.com/downloads/ 그리고 '무료 다운로드' Visual Studio 커뮤니티 탭에 표시된 버튼

Visual Studio 다운로드 페이지에서 커뮤니티 에디션 무료 다운로드 버튼을 찾을 수 있습니다.

단계 2) 다운로드한 exe를 엽니다. 관리자 권한을 묻는 메시지가 나타나면 '예'를 클릭하세요.

Visual Studio 설치 프로그램에서 관리자 권한을 요청합니다.

단계 3) 아래 팝업이 나타납니다. '계속' 버튼을 클릭하세요.

Visual Studio 설치 프로그램 시작 팝업 창(계속 버튼 포함)

아래 팝업과 같이 파일이 다운로드됩니다.

Visual Studio 설치 프로그램이 구성 요소 파일을 다운로드합니다.

단계 4) 다음 화면에서

확인란을 선택하세요

  • 보편적 인 Windows 플랫폼 개발
  • .NET 데스크톱 개발

'설치'를 클릭하세요.

Universal을 사용한 Visual Studio 작업 부하 화면 Windows 플랫폼 및 .NET 데스크톱 개발 체크 완료

각 구성 요소의 설치가 완료될 때까지 기다립니다. 파일 크기는 16GB이며 시간이 걸립니다.

선택한 각 구성 요소에 대한 Visual Studio 설치 프로그램 진행률 표시줄

단계 5) 아래 팝업이 표시됩니다. '다시 시작' 버튼을 클릭하세요.

Visual Studio 설치 프로그램이 컴퓨터 재시작을 요청하는 메시지

단계 6) 머신이 재시작되면 시작 메뉴에서 "Visual Studio"를 검색하고 검색 결과를 클릭합니다. 다음 팝업이 나타납니다. 기존 계정이 없으면 "지금은 안 됨, 나중에" 링크를 클릭합니다.

Visual Studio 로그인 팝업 창에 "지금은 아니지만 나중에" 링크가 표시됩니다.

단계 7) 다음 화면에서

  • 원하는 색상 테마를 선택하세요.
  • "Visual Studio 시작" 버튼을 클릭하세요.

Visual Studio 첫 실행 화면에서 색상 테마를 선택하는 모습입니다.

단계 8) Visual Studio '시작하기' 화면이 나타납니다.

설치가 완료된 후 Visual Studio 시작 화면

Visual Studio에서 새 프로젝트를 만듭니다.

단계 1) 파일 메뉴에서 새로 만들기 > 프로젝트를 클릭합니다.

Visual Studio의 파일 메뉴에서 새로 만들기 및 프로젝트가 선택된 상태

단계 2) 다음 화면에서

  1. 'Visual C#' 옵션을 선택하세요.
  2. 콘솔 앱(.Net Framework)을 클릭하세요.
  3. 이름을 "로 입력하세요Guru99 "
  4. 확인을 클릭하십시오.

Visual C# 콘솔 앱이라는 이름의 새 프로젝트 대화 상자가 나타납니다. Guru99

단계 3) 프로젝트가 성공적으로 생성되면 아래 화면이 표시됩니다.

Visual Studio 편집기에서 새로 생성된 항목을 보여줍니다. Guru99 콘솔 프로젝트

Visual Studio를 설정하세요 Selenium 웹드라이버:

단계 1) 도구 -> N으로 이동하세요.uGet 패키지 관리자 -> N 관리uGet 솔루션용 패키지

도구 메뉴에서 N으로 이동하는 경로uGet 패키지 관리자 및 N 관리uGet 솔루션용 패키지

단계 2) 다음 화면에서

  1. 에 대한 검색 Selenium 결과 화면에서
  2. 첫 번째 검색 결과 선택
  3. 프로젝트 체크박스를 체크하세요
  4. '설치'를 클릭합니다.

NuGet 패키지 관리자 Selenium 검색 결과 및 프로젝트 확인란이 선택됨

단계 3) 팝업 화면에서 '확인' 버튼을 클릭하세요.

NuGet 확인 팝업이 표시되기 전에 Selenium 패키지가 설치되었습니다

단계 4) 패키지가 성공적으로 설치되면 아래 메시지가 표시됩니다.

NuGet 출력 확인 Selenium WebDriver가 성공적으로 설치되었습니다.

Selenium 이제 브라우저를 열 수는 있지만, 테스트 통과 여부를 알려줄 수는 없습니다. 이는 단위 테스트 프레임워크의 역할입니다.

NUnit 프레임워크: 개요

NUnit은 단위 테스트 Visual Studio에서 지원하는 프레임워크 Selenium WebDriver. NUnit은 .NET 애플리케이션에 가장 널리 사용되는 단위 테스트 프레임워크입니다. NUnit은 테스트 결과를 읽기 쉬운 형식으로 제공하며 테스터가 자동화된 테스트를 디버깅할 수 있도록 해줍니다.

NUnit을 사용하려면 Visual Studio에 NUnit 프레임워크와 NUnit 테스트 어댑터를 설치해야 합니다.

NUnit 프레임워크 설치 단계

이제 이것에서 Selenium C# 튜토리얼을 통해 NUnit 프레임워크를 설치하는 과정을 배워보겠습니다.

단계 1) 도구 -> N으로 이동하세요.uGet 패키지 관리자 -> N 관리uGet 솔루션용 패키지

N에서 도구 메뉴가 다시 열렸습니다.uGet NUnit 설치용 패키지 관리자

단계 2) 다음 창에서

  1. NUnit 검색
  2. 검색결과를 선택하세요
  3. 프로젝트 선택
  4. 설치를 클릭하십시오.

NuGet NUnit 검색 결과가 설치 대상으로 선택된 패키지 관리자

단계 3) 아래 팝업이 나타납니다. '확인' 버튼을 클릭하세요.

NuGet NUnit 프레임워크 설치 전 확인 팝업

단계 4) 설치가 완료되면 아래 메시지가 나타납니다.

NuGet NUnit 프레임워크 설치가 완료되었음을 확인하는 메시지입니다.

NUnit 테스트 어댑터를 다운로드하는 단계

이제 이 NUnit 튜토리얼에서는 NUnit 테스트 어댑터를 다운로드하는 단계를 설명합니다.

아래 단계는 32비트 머신에서만 작동합니다. 64비트 머신의 경우 아래에 언급된 것과 동일한 프로세스를 따라 'NUnit3 테스트 어댑터'를 다운로드해야 합니다.

현재 패키지: 현대적인 프로젝트 설치 NUnit3 테스트 어댑터 와 함께 Microsoft.NET.테스트.SDK그리고 더 나이 든 NUnitTestAdapter 해당 패키지는 더 이상 유지 관리되지 않습니다. .NET (Core)에서는 전체 프로젝트를 다음 방법으로 스캐폴딩할 수 있습니다. dotnet new nunit그러면 세 가지 패키지가 모두 추가됩니다.

단계 1) 도구 ->N으로 이동합니다.uGet 패키지 관리자 -> N 관리uGet 솔루션용 패키지. 그 화면에서는

  1. NUnitTestAdapter 검색
  2. 검색결과 클릭
  3. 프로젝트 선택
  4. 설치를 클릭하십시오.

NuGet 선택된 프로젝트에서 NUnitTestAdapter를 찾는 패키지 관리자

단계 2) 확인 팝업에서 확인을 클릭합니다. 설치가 완료되면 다음 메시지가 표시됩니다.

NuGet NUnit 테스트 어댑터 설치가 완료되었음을 확인하는 메시지입니다.

두 부분 모두 설치가 완료되었으므로 다음 단계는 이들을 하나의 테스트 클래스로 결합하는 것입니다.

Selenium 및 NUnit 프레임워크

셀레늄을 NUnit 프레임워크와 통합하면 테스터가 다양한 테스트 클래스를 구별할 수 있습니다. NUnit은 또한 테스터가 SetUp, Test, TearDown과 같은 주석을 사용하여 테스트를 실행하기 전과 후에 작업을 수행할 수 있도록 합니다.

NUnit 프레임워크는 다음과 통합될 수 있습니다. Selenium NUnit 테스트 클래스를 생성하고 NUnit 프레임워크를 사용하여 테스트 클래스를 실행함으로써 이를 검증할 수 있습니다. Java 이 패턴과 동일한 내용은 다음에서 다룹니다. JUnit 프레임워크 튜토리얼또한 Visual Studio 내에서 NUnit을 대체할 수 있는 .NET 버전에 대해서도 함께 논의합니다. TestNG 을 통한 Selenium.

아래 단계 Selenium NUnit 프레임워크를 사용하여 테스트 클래스를 만들고 실행하려면 C# 프레임워크 자습서가 필요합니다.

NUnit 테스트 클래스를 생성하는 단계 Selenium:

단계 1) 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭 > 추가 > 클래스를 선택합니다.

솔루션 탐색기 컨텍스트 메뉴에서 '추가' 및 '클래스'가 선택되어 있습니다.

단계 2) 클래스 생성 창이 나타납니다.

  1. 클래스에 이름 제공
  2. 추가 버튼을 클릭하세요

새 NUnit 테스트 클래스의 이름을 지정하는 데 사용되는 '새 항목 추가' 대화 상자입니다.

단계 3) 아래 화면이 나타납니다.

Visual Studio 편집기에서 생성된 빈 C# 클래스 파일

단계 4) 생성된 클래스에 다음 코드를 추가하세요. 크롬 드라이버 초기화 시 'chromedriver.exe' 파일의 위치를 ​​지정해야 한다는 점에 유의하세요. Selenium 4.6 버전 이상 함선 Selenium 매니저그러면 일치하는 드라이버를 자동으로 찾아줍니다. new ChromeDriver() 경로 인수가 없는 것이 현재 형식입니다. 아래 경로는 스크린샷과 일치하므로 유지됩니다.

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class Guru99Demo						
    {
        IWebDriver driver;

        [SetUp]
		public void startBrowser()
        {
            driver = new ChromeDriver("D:\\3rdparty\\chrome");
        }

        [Test]
		public void test()
        {
            driver.Url = "http://www.google.co.in";
        }

        [TearDown]
		public void closeBrowser()
        {
            driver.Close();
        }

    }
}

단계 4) '빌드' -> '솔루션 빌드'를 클릭하세요.

Visual Studio에서 "솔루션 빌드"가 선택된 빌드 메뉴

알림: 빌드할 때 "진입점에 적합한 정적 '기본' 메서드가 포함되어 있지 않습니다."와 같은 오류가 발생할 수 있습니다.

진입점으로 적합한 정적 main 메서드가 없다는 빌드 오류 보고

이 문제를 해결하려면 프로젝트 > 속성으로 이동하여 출력 형식을 "클래스 라이브러리"로 변경하십시오. 기본값은 "콘솔 애플리케이션"입니다.

출력 유형을 클래스 라이브러리로 변경한 프로젝트 속성

단계 5) 빌드가 성공하면 테스트 탐색기 창을 열어야 합니다. 테스트를 클릭하세요 -> Windows -> 테스트 탐색기

테스트 메뉴 경로 Windows 및 테스트 탐색기

단계 6) 사용 가능한 테스트 목록이 포함된 테스트 탐색기 창이 열립니다. 테스트 탐색기를 마우스 오른쪽 버튼으로 클릭하고 선택한 테스트 실행을 선택합니다.

테스트 탐색기에서 사용 가능한 테스트 목록을 표시하고 선택한 테스트를 실행합니다.

단계 7) Selenium 지정된 설정으로 브라우저를 열어야 합니다. URL 브라우저를 닫으세요. 테스트 탐색기 창에서 테스트 케이스 상태가 '통과'로 변경됩니다.

Test Explorer에서 NUnit 테스트 결과가 통과로 표시된 것을 볼 수 있습니다.

시험을 통과하면 배관이 제대로 작동한다는 것을 증명하는 것입니다. 다음은 실제로 시험 문제를 출제할 때 사용하게 될 어휘입니다.

Selenium C#의 WebDriver 명령

C#은 브라우저 상호작용을 위해 인터페이스 'IWebDriver'를 사용합니다. 다음은 사용 가능한 명령 범주입니다. Selenium C #에서.

  1. 브라우저 명령
  2. 웹 요소 명령
  3. 드롭다운 명령

이제 이것에서 Selenium C# 튜토리얼, 함께 공부해 봅시다. Selenium WebDriver 명령어를 하나씩 실행합니다. Java 이 부분에서 대응되는 것들이 나타납니다. 첫 번째 WebDriver 스크립트 연습.

아래 명령어는 여전히 현재 사용 중입니다. IWebDriver 표면 Selenium 4이므로 구문은 변경되지 않고 그대로 유지됩니다.

브라우저 명령:

다음은 C#에서 사용 가능한 브라우저 명령 목록입니다. Selenium.

명령 이름 기술설명 통사론
URL 명령 이 명령어는 지정된 파일을 열기 위해 사용됩니다. URL 브라우저에서.
driver.Url = "https://www.guru99.com"
제목 명령 이 명령은 현재 열려 있는 웹 페이지의 페이지 제목을 검색하는 데 사용됩니다.
String title = driver.Title
페이지소스 명령 이 명령은 현재 열려 있는 웹 페이지의 소스 코드를 검색하는 데 사용됩니다.
String pageSource = driver.PageSource
닫기 명령 이 명령은 최근에 열린 브라우저 인스턴스를 닫는 데 사용됩니다.
driver.Close();
종료 명령 이 명령은 열려 있는 모든 브라우저 인스턴스를 닫는 데 사용됩니다.
driver.Quit();
뒤로 명령 이 명령은 브라우저 기록의 이전 페이지로 이동하는 데 사용됩니다.
driver.Navigate().Back();
앞으로 명령 이 명령은 브라우저 기록의 다음 페이지로 이동하는 데 사용됩니다.
driver.Navigate().Forward()
새로 고침 명령 이 명령은 브라우저 새로 고침을 수행하는 데 사용됩니다.
driver.Navigate().Refresh()

브라우저 명령은 창에 작용하고, 다음 그룹은 창 안의 내용에 작용합니다.

웹 요소 명령

웹 요소는 웹 페이지의 모든 요소를 ​​나타냅니다. 이러한 요소는 HTML 태그로 표현됩니다. 버튼, 텍스트 상자, 링크, 이미지, 표, 프레임 등이 모두 웹 요소입니다. Opera해당 요소들에 대한 반응은 다음을 통해 시작됩니다. IWebElement 인터페이스. 웹 요소와 상호 작용하려면 먼저 요소를 찾으세요 페이지에서 해당 항목을 선택한 다음 작업을 수행합니다. 사용 가능한 전략은 다음과 같습니다. 위치 지정자 Selenium브라우저 개발자 도구 또는 아래 스크린샷 이전에 사용되었던 Firebug 및 Firepath 추가 기능을 사용하여 다음을 식별할 수 있습니다. xpath 웹 요소의 일부입니다.

다음은 C#에서 사용할 수 있는 WebElement 명령입니다.

명령 이름 기술설명 통사론
클릭 명령 이 명령은 웹 요소를 클릭하는 데 사용됩니다. 요소를 클릭할 수 있으려면 요소가 웹페이지에 표시되어야 합니다. 이 명령은 체크박스 및 라디오 버튼 작업에도 사용됩니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.Click();
지우기 명령 이 명령은 특히 텍스트 상자의 기존 내용을 지우는 데 사용됩니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.Clear();
SendKeys 명령 이 명령은 텍스트 상자에 값을 입력하는 데 사용됩니다. 입력할 값은 매개변수로 전달되어야 합니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
element.SendKeys("guru99");
표시된 명령 이 명령은 특정 요소가 웹페이지에 표시되는지 여부를 식별하는 데 사용됩니다. 이 명령은 부울 값을 반환합니다. 웹 요소의 가시성에 따라 true 또는 false입니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Displayed;
활성화된 명령 이 명령은 웹 페이지에서 특정 웹 요소가 활성화되어 있는지 식별하는 데 사용됩니다. 이 명령은 부울 값을 반환합니다. 결과적으로 참 또는 거짓.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Enabled;
선택한 명령 이 명령어는 특정 웹 요소가 선택되었는지 여부를 확인하는 데 사용됩니다. 체크박스, 라디오 버튼 및 선택 작업에 ​​사용됩니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
Boolean status = element.Selected;
제출 명령: 이 명령은 클릭 명령과 유사합니다. 차이점은 HTML 양식에 제출 유형의 버튼이 있는지 여부에 있습니다. click 명령이 임의의 버튼을 클릭하는 동안 submit 명령은 submit 유형의 버튼만 클릭합니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  element.submit();
텍스트 명령 이 명령은 Webelement의 내부 텍스트를 반환합니다. 이 명령은 결과로 문자열 값을 반환합니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String text=element.Text;
태그이름 명령 이 명령은 웹 요소의 HTML 태그를 반환합니다. 결과로 문자열 값을 반환합니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));  String tagName = element.TagName;
GetCSS값 명령: 이 메소드는 웹 요소의 색상을 rgba 문자열(Red, Green, Blue 및 Alpha) 형식으로 반환하는 데 사용됩니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
String color = element.getCSSValue;

산출– 요소의 색상이 빨간색인 경우 출력은 rgba(255,0,0,1)입니다.

위 샘플에 대한 참고 사항: 이 표는 원래 구문을 재현합니다. 현재 Selenium .NET 멤버는 파스칼 형식으로 저장됩니다. element.Submit() element.GetCssValue("color") - 및 GetCssValue CSS 속성 이름을 인수로 받습니다.

드롭다운 명령:

C#에서 드롭다운 작업은 SelectElement 클래스를 사용하여 구현할 수 있습니다.

다음은 C#에서 사용할 수 있는 다양한 드롭다운 작업입니다.

명령 이름 기술설명 통사론
SelectByText 명령 이 명령은 옵션 텍스트를 기반으로 드롭다운 옵션을 선택합니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByText("Guru99");
SelectByIndex 명령 이 명령은 해당 인덱스를 기반으로 옵션을 선택하는 데 사용됩니다. 드롭다운 인덱스는 0부터 시작합니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByIndex("4");
SelectByValue 명령 이 명령은 옵션 값을 기준으로 옵션을 선택하는 데 사용됩니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.SelectByValue("Guru99");
옵션 명령 이 명령은 드롭다운에 표시된 옵션 목록을 검색하는 데 사용됩니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
List<IWebelement> options = select. Options;
int size = options.Count;
for(int i=0;i<options.size();i++)
{
String value = size.elementAt(i).Text;
Console.writeLine(value);
}

위의 코드는 드롭다운 내의 콘솔에 모든 옵션을 인쇄합니다.

IsMultiple 명령 이 명령은 드롭다운 메뉴가 다중 선택 드롭다운인지 여부를 확인하는 데 사용됩니다. 다중 선택 드롭다운을 사용하면 사용자가 한 번에 두 개 이상의 옵션을 선택할 수 있습니다. 이 명령은 부울 값을 반환합니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
Boolean status = select.IsMultiple();
DeSelectAll 명령 이 명령은 다중 선택 드롭다운에서 사용됩니다. 이미 선택된 옵션이 지워집니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectAll();
DeSelectByIndex 명령 이 명령은 해당 색인을 사용하여 이미 선택된 값을 선택 취소합니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByIndex("4");
DeSelectByValue 명령 이 명령은 해당 값을 사용하여 이미 선택한 값을 선택 취소합니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByValue("Guru99");
DeSelectByText 명령 이 명령은 해당 텍스트를 사용하여 이미 선택한 값을 선택 취소합니다.
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); 
SelectElement select = new SelectElement(element);
select.DeSelectByText("Guru99");

아래 네 개의 스크립트는 위의 명령어를 실행에 옮깁니다. Guru99개의 데모 사이트가 있습니다. 각각은 완벽하게 실행 가능한 NUnit 테스트 클래스입니다.

Code 견본

예 1: XPATH Locator를 사용하여 링크를 클릭합니다.

테스트 시나리오 :

  1. 데모 페이지로 이동 Guru99 웹페이지 – https://demo.guru99.com/test/guru99home/
  2. 창 최대화
  3. '테스트' 메뉴를 클릭하세요.
  4. 브라우저를 닫습니다
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("D:\\3rdparty\\chrome");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();
            IWebelement link = m_driver.FindElement(By.XPath(".//*[@id='rt-header']//div[2]/div/ul/li[2]/a"));
            link.Click();
            m_driver.Close();
        }
    }
}

예 2: 텍스트에 데이터 입력Box XPATH 로케이터를 사용하여 버튼을 클릭하십시오.

테스트 시나리오 :

  1. 로 이동 Guru99 데모 페이지 – https://demo.guru99.com/test/guru99home/
  2. 이메일 텍스트 상자에 데이터를 입력하세요
  3. 회원가입 버튼을 클릭하세요
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

             
			// Store locator values of email text box and sign up button				
            IWebElement emailTextBox = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-email']"));
            IWebElement signUpButton = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-submit']"));

            emailTextBox.SendKeys("test123@gmail.com");
            signUpButton.Click();
                        
        }
    }
}			

예 3: 텍스트에 데이터 입력Box CSS 로케이터를 사용하여 버튼을 클릭합니다.

테스트 시나리오 :

  1. 로 이동 Guru99 데모 페이지 – https://demo.guru99.com/test/guru99home/
  2. 이메일 텍스트 상자에 데이터를 입력하세요
  3. 회원가입 버튼을 클릭하세요
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Guru99Demo
{
	class CSS						
    {
        IWebDriver m_driver;

        [Test]
		public void cssDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

             
			// Store locator values of email text box and sign up button				
            IWebElement emailTextBox = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-email]"));
            IWebElement signUpButton = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-submit]"));

            emailTextBox.SendKeys("test123@gmail.com");
            signUpButton.Click();

             
        }
    }
}

예 4: 드롭다운에서 값을 선택합니다.

테스트 시나리오 :

  1. 로 이동 Guru99 데모 페이지 – https://demo.guru99.com/test/guru99home/
  2. 를 클릭하십시오 SAP 링크
  3. 이름과 이메일 텍스트 상자에 데이터를 입력하세요
  4. 강좌 드롭다운에서 값을 선택하세요.
  5. 브라우저를 닫습니다
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;


namespace Guru99Demo
{
	class TestSelect						
    {
        IWebDriver m_driver;

        [Test]
		public void selectDemo()
        {
            m_driver = new ChromeDriver("G:\\");
            m_driver.Url = "https://demo.guru99.com/test/guru99home/";
            m_driver.Manage().Window.Maximize();

            IWebElement course = m_driver.FindElement(By.XPath(".//*[@id='awf_field-91977689']"));

			var selectTest = new SelectElement(course);
			// Select a value from the dropdown				
            selectTest.SelectByValue("sap-abap");
                        
        }
    }
}

자주 묻는 질문

Selenium.WebDriver 4.x와 NUnit 3.14 또는 NUnit 4, 그리고 NUnit3TestAdapter를 함께 사용하세요. Microsoft.NET.Test.Sdk. NUnit 4는 .NET Framework 4.6.2 또는 .NET 6 이상을 대상으로 하므로 위에 표시된 패키지에서 업그레이드하기 전에 프로젝트 대상 버전을 확인하십시오.

그렇지 않습니다. Selenium 4.6 년 도입 Selenium 런타임에 브라우저 드라이버를 다운로드하고 일치시키는 관리자입니다. ChromeDriver 생성자에 드라이버 폴더를 전달하는 방식은 여전히 ​​작동하지만, 특정 드라이버 빌드를 고정해야 하는 경우에만 필요합니다.

암시적 대기는 IWebDriver 인스턴스의 수명 동안 모든 요소 조회에 단일 타임아웃을 적용합니다. 명시적 대기는 클릭 가능 또는 표시 여부와 같은 하나의 요소와 하나의 조건을 대상으로 하므로 더 빨리 실패하고 의도를 더 정확하게 설명합니다.

예. 어셈블리에 Parallelizable을 표시하면 NUnit이 픽스처를 동시에 실행합니다. 각 테스트는 자체 IWebDriver 인스턴스를 소유해야 하므로 정적 필드를 공유하는 대신 SetUp에서 드라이버를 생성해야 합니다. 그렇지 않으면 동일한 브라우저에서 병렬 테스트가 충돌할 수 있습니다.

NUnit과 MSTest는 모두 속성을 사용하고 TestFixture 또는 TestClass를 사용하여 테스트를 그룹화합니다. xUnit은 클래스 속성이 필요하지 않으며 병렬 처리에 중점을 두고 설계되었습니다. 세 가지 모두 Test Explorer에서 실행할 수 있으며, NUnit이 여전히 가장 일반적인 선택입니다. Selenium C#으로 작업합니다.

AI 도구는 페이지 스냅샷에서 로케이터를 제안하고, UI 변경 후 손상된 셀렉터를 수정하며, 작성된 테스트 케이스를 NUnit 메서드 초안으로 변환합니다. 모든 제안은 초안으로 간주하고 커밋하기 전에 어설션을 검토하세요.

예. 시나리오를 설명하는 주석이 있으면 Copilot은 SetUp, Test 및 TearDown 멤버를 작성하고 주변 코드에서 FindElement 호출을 제안합니다. 생성된 선택자는 검사하는 것이 아니라 추론되므로 실제 페이지에서 로케이터를 확인해야 합니다.

Selenium NUnit은 가장 폭넓은 그리드, 클라우드 및 언어 지원을 제공하며 매우 방대한 기존 테스트 환경을 갖추고 있어 관련 기술의 활용도가 높습니다. Playwright는 더 빠른 실행 속도와 내장 대기 기능을 제공합니다. 많은 .NET 팀에서 두 도구를 모두 사용하며 동일한 NUnit 실행기와 보고서를 공유합니다.

이 게시물을 요약하면 다음과 같습니다.